2075 Commits

Author SHA1 Message Date
ljacqu
2f7ebc0ecb Remove static PlayerCache#getInstance 2017-04-18 21:57:20 +02:00
ljacqu
b0c05afaa7 Create util method to check if email is empty
- Create method to check if email is empty or the default AuthMe email (avoids repetition)
- Check that input email has '@' inside text (relates to #1105)
2017-04-18 21:24:33 +02:00
ljacqu
b99cc3bada #1127 Create DataSource#getEmail 2017-04-18 21:07:31 +02:00
ljacqu
2a747c7d01 #1034 Create permissions for debug sections
- Add an individual permission for each debug section (including wildcard perm)
- Create test for DebugCommand
- Refactor tests for the enum permission nodes to use the same abstract class
- Update related project files (plugin.yml, permission docs, command docs)
2017-04-14 19:54:17 +02:00
ljacqu
cbec5427f2 #1162 New API class: implement ignored review remarks 2017-04-14 18:11:47 +02:00
Gabriele C
bf38782790 Implement ARGON2 hash (#1165)
* Implement ARGON2 hash

#1150

* Fix argon hash verify

* Add argon2 test

* #1150 Account for Argon2 managing salts internally
2017-04-14 18:03:27 +02:00
Gabriele C
5a93ed32f1 Fix API test package
#1162
2017-04-14 14:03:40 +02:00
Gabriele C
8ecdd1f4d3 Remove old v1 API, deprecate v2 API, add v3 API 2017-04-14 01:01:30 +02:00
Gabriele C
e775e415f2 Incrase connectPlayer delay #1133 2017-03-31 21:47:30 +02:00
Gabriele C
9381d024cd Schedule connectPlayer action
Thanks to @Dimatert9
2017-03-31 20:27:04 +02:00
ljacqu
20ab161406 Merge branch '1147-limbo-improve-persistence' of https://github.com/AuthMe/AuthMeReloaded 2017-03-31 19:57:23 +02:00
games647
4e364c13a3
Schedule a new sync thread based on thread compare rather than the async setting
(Fixes #1151)
2017-03-31 09:03:03 +02:00
ljacqu
2ecdc57277 #1147 Rename limbo segment configurations / remove inaccurate comments 2017-03-28 21:49:28 +02:00
ljacqu
adb007108d #1147 Drop SingleFilePersistenceHandler in favor of DistributedFilesPersistenceHandler
- Remove SingleFilePersistenceHandler: DistributedFilesPersistenceHandler with segment size 1 can be used instead
- Rename  SegmentFilesPersistenceHolder to DistributedFilesPersistenceHandler
- Rename SeparateFilePersistenceHandler to IndividualFilesPersistenceHandler to match LimboPersistenceType entry
- Add link to limbo page on Wiki in the settings
2017-03-28 21:42:01 +02:00
ljacqu
a764598f88 Adjust repo links in code 2017-03-28 08:11:00 +02:00
ljacqu
2070f22968 Security - if any Throwable is thrown on initialization AuthMe should shut down
- Found via #1149
2017-03-27 21:41:35 +02:00
Gabriele C
49aeb4308d Fix #1145 2017-03-26 16:51:34 +02:00
Gabriele C
fc47a0a74f Force US decimal format 2017-03-26 16:12:53 +02:00
ljacqu
75f84945fc Misc code householding
- Checkstyle config: allow todo comments with issue number
- Create consistency tests across all classes, ensuring: unique class names, users of expiring collectors implement HasCleanup, non-private fields are only constants
- Fix tag replacement in PlayerListener for {DISPLAYNAME}
2017-03-26 13:20:40 +02:00
ljacqu
8cf7983027 #1034 Add debug sections for spawn and input validation 2017-03-26 12:10:51 +02:00
ljacqu
c54231b255 #1138 Show warning for hashes that will be deprecated in 5.4
- Introduce Usage.DEPRECATED to mark the hash algorithms accordingly
- Log warning when such a deprecated hash algorithm is used
- Update hash algorithms doc page
2017-03-25 00:23:54 +01:00
ljacqu
a2d62ea6d9 #1116 #1117 Add command usage hints and remove unused message keys
- Add usage message on argument mismatch where available
- Remove unused message keys
- Create tool task to search for a message key's usages and to find unused keys
2017-03-24 23:03:10 +01:00
ljacqu
2f90a45f43 #1036 Remove 'allowSpeed' option
- Option is no longer needed as the plugin user can configure how/if the speeds should be restored now
2017-03-24 21:26:34 +01:00
ljacqu
32a664ef59 Update checkstyle config and CodeClimate exclusions
- Add new checkstyle checks: require Javadoc on large private methods, default in switch, declaration order & others
- Update path exclusions in CodeClimate config to match newly renamed classes (e.g. PHPBB -> PhpBB)
  - Create consistency check testing that excluded paths exist as classes
- Fix some trivial violations
2017-03-23 10:34:28 +01:00
ljacqu
e77828b228 Update docs / update recovery code command in email message
- Update docs to reflect new commands, configurations (account recovery, limbo handling) and messages
- Change message for the recovery code email to contain the new command
2017-03-22 23:14:02 +01:00
EbonJaguar
ce40b3798b Add logging for when a player changes their password or has a new one generated 2017-03-22 17:54:30 -04:00
EbonJaguar
4053a0e328 If recovery code is required, dont send new password 2017-03-22 17:11:18 -04:00
EbonJaguar
46dd588923 Merge branches 'master' and 'passwd_recovery_process' of https://github.com/AuthMe/AuthMeReloaded into passwd_recovery_process 2017-03-22 17:08:05 -04:00
ljacqu
7dbf5551c9 Cleanup: avoid injecting Injector directly
- Inject SingletonStore to restrict the possible functions
- Refactor PasswordSecurityTest to correspond to the usual way of testing
2017-03-21 22:59:21 +01:00
Gnat008
4e54fa4a4e Restrict changing password after recovery to the same username 2017-03-21 17:38:53 -04:00
Gnat008
9d21eefc74 Merge branches 'master' and 'passwd_recovery_process' of https://github.com/AuthMe/AuthMeReloaded into passwd_recovery_process
# Conflicts:
#	docs/config.md
#	src/main/resources/messages/messages_bg.yml
#	src/main/resources/messages/messages_es.yml
#	src/main/resources/messages/messages_pt.yml
#	src/main/resources/messages/messages_zhcn.yml
2017-03-21 17:26:29 -04:00
ljacqu
d19748fe5b #1034 Debug commands: permission checker + data statistics
- Create debug command to check if a player has the given permission
- Create debug command that outputs the size of various caches / DB info / number of saved instances in injector
2017-03-21 22:00:21 +01:00
ljacqu
3c45ca8425 #1100 Check that auth exists for /email show
- This case should never happen, but better to be safe
2017-03-20 20:57:09 +01:00
ljacqu
6eaa91278e Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into limbo
# Conflicts:
#	.checkstyle.xml
2017-03-20 08:23:52 +01:00
ljacqu
9a9d0974f8 #1037 Improve architecture of registration methods (#236)
* #1037 Improve architecture of registration methods
- Introduce parameters classes for each registration method
- RegistrationMethod has constants with the required parameters class -> no longer need to have a RegistrationExecutorProvider class that needs to be injected everywhere, let AsyncRegister be the only one to worry about which class will perform the registration
- Fix inheritance of password registration types - previously two-factor auth registration inherited from password registration directly

* Create matcher which checks for equality via reflections
- Allow to perform equality check on objects with default equals() method
2017-03-20 08:19:52 +01:00
ljacqu
8f197bbebf #1128 Rename converter classes to start with uppercase letter 2017-03-17 19:28:40 +01:00
ljacqu
6bd0b7c4e0 #1128 Rename files to match new case of Java classes 2017-03-17 19:21:20 +01:00
ljacqu
8ebb3c6b5a Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into 1128-camel-case-rename 2017-03-17 18:50:57 +01:00
ljacqu
731d085ccd #1128 Rename to camel case (PR #235)
* rename classes according to cammel case and make code reflect these updates

* rename according to cammel case

* rename to camel case more accuratley

* rename to camel case try 3; fix Ipb4 java doc

* retry rename camel case

* rename to camel case
2017-03-17 18:49:30 +01:00
Gabriele C
17415493f5 Fix wrong logic in the java version check 2017-03-17 14:34:24 +01:00
Gabriele C
45f02f6a31 Check java version on initialize
#1096
2017-03-15 18:01:00 +01:00
ljacqu
42f46b51d3 Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into limbo
# Conflicts:
#	src/main/java/fr/xephi/authme/process/join/AsynchronousJoin.java
#	src/test/java/fr/xephi/authme/settings/SettingsConsistencyTest.java
2017-03-15 08:28:15 +01:00
ljacqu
457c07b53f Consistency test: check that all values are mentioned for enum properties 2017-03-15 08:24:40 +01:00
Gnat008
2214fa5839 Implement /email setpassword 2017-03-14 18:26:32 -04:00
ljacqu
1da74cb987 #1005 Improve restricted user feature (performance, error handling)
- Move check for restricted user into validation service
- Keep restrictions in a map by name for fast lookup, avoid splitting Strings on every call
- Gracefully handle case when entry does not have the expected ';' and log exception
2017-03-14 22:26:19 +01:00
ljacqu
84acc4557a #1125 Limbo persistence: convert old segments, add tests
- On startup / reload the playerdata folder is scanned for old segment files, whose data is migrated before they are deleted
- Add tests for segment files persistence holder
2017-03-14 20:46:28 +01:00
ljacqu
9c3baa7f14 #1125 Create persistence of LimboPlayers in segment files (work in progress)
- Instead of one huge file or a file for each player, allow the user to define how many files he wants to distribute the LimboPlayers over. This is based on a function that creates a String (segment ID) based on the player's UUID.
2017-03-13 20:29:08 +01:00
ljacqu
710198833c #1125 Create SingleFilePersistenceHandler + extract (de)serializer for LimboPlayer 2017-03-13 18:30:52 +01:00
ljacqu
8557621c02 #1125 Create infrastructure for Limbo persistence + restore 5.2 JSON storage
- Introduce configurable storage mechanism
  - LimboPersistence wraps a LimboPersistenceHandler, of which there are multiple implementations
  - Outside of the limbo.persistence package, classes only talk to LimboPersistence
  - Restore the way of persisting to JSON from 5.2 (SeparateFilePersistenceHandler)

- Add handling for stored limbo players
  - Merge any existing LimboPlayers together with the goal of only keeping one version of a LimboPlayer: there is no way for a player to be online without triggering the creation of a LimboPlayer first, so we can guarantee that the in-memory LimboPlayer is the most up-to-date, i.e. when restoring limbo data we don't have to check against the disk.
  - Create and delete LimboPlayers at the same time when LimboPlayers are added or removed from the in-memory map

- Catch all exceptions in LimboPersistence so a handler throwing an unexpected exception does not stop the limbo process (#1070)

- Extend debug command /authme debug limbo to show LimboPlayer information on disk, too
2017-03-12 18:43:37 +01:00
ljacqu
1678901e02 #1113 Attempt to merge new LimboPlayer with an existing one
- Extract some logic into LimboServiceHelper to keep LimboService slim
- Create LimboServiceHelper#merge to merge two LimboPlayers associated with a Player. E.g. if an admin unregisters an online player that has not logged in, the creation of a LimboPlayer is triggered while there already is one in LimboService
2017-03-12 15:56:08 +01:00