Commit Graph
100 Commits
Author SHA1 Message Date
ljacqu 43b2375e2a Fix failing test 2017-04-01 22:01:54 +02:00
ljacqu 20ab161406 Merge branch '1147-limbo-improve-persistence' of https://github.com/AuthMe/AuthMeReloaded 2017-03-31 19:57:23 +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
ljacqu 6be6e8e851 Exclude jacoco fields from consistency test
- Fix wrong condition check :)
2017-03-26 14:53:52 +02:00
ljacqu dbd0e04a2e Exclude jacoco fields from consistency test
- The Jacoco plugin adds fields "$jacocoData" to the classes which make the test fail
2017-03-26 14:47:39 +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 b7901c6b59 Simplify exclusion of enum properties in SettingsConsistencyTest
- Allow enum values to be absent if they are deprecated
2017-03-24 23:23:40 +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 3e95d30c6b Improve dependency graph task
- Simplify logic for converting a dependency description to its display name
- Add new common supertypes
2017-03-23 23:15:04 +01:00
ljacqu dfd81b069a Fix titles in readme 2017-03-23 10:43:29 +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
ljacquandGitHub da8b33f1bc Make Travis update JDK 8 version
cf. https://github.com/travis-ci/travis-ci/issues/3259
2017-03-22 08:55:18 +01: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
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
ljacquandGitHub 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 7f16e80442 Add EqualsHashCode check to checkstyle config
- Enables checkstyle verification that hashCode() is overridden if equals(Object) is overridden (and vice versa)
2017-03-18 20:24:25 +01:00
ljacqu 603217f894 Minor - add DS_Store to gitignore 2017-03-17 19:48:42 +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
ljacquandGitHub 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
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
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 62368b1cda Fix inverse tags in messages_pt; update translations doc page 2017-03-13 20:34:55 +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
ljacqu 689e5eeccc Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into limbo
# Conflicts:
#	src/main/java/fr/xephi/authme/command/executable/authme/debug/DebugCommand.java
2017-03-12 14:54:25 +01:00
ljacqu 10d8f00c92 Various minor changes
- AsynchronousLogin: call common permission methods through CommonService instead of PermissionsManager
- CommandManager: remove superfluous replacement of %p (handled by lazy tag replacer)
- Remove unused method in CommonService
- Create DebugSectionConsistencyTest
- SendMailSSL: Enable debug output if AuthMe log level is set to debug
- Add Utils#logAndSendMessage and replace existing, separate implementations
2017-03-12 14:04:39 +01:00
ljacqu c766b5c259 #1036 Add restoration options for Limbo allowFlight / fly speed / walk speed
- Introduce options to define how allow flight, fly & walk speed should be restored from LimboPlayer
- Create consistency tests for line length in SectionComments methods and to ensure that all SettingsHolder classes are part of the returned ConfigurationData
2017-03-12 13:51:03 +01:00
ljacqu c79ba49ca8 #1113 Don't restore OP to unregistered player; add tests for LimboService 2017-03-11 08:47:58 +01:00
ljacqu e788da87d4 #1034 #1131 Create debug section for country info / restrictions 2017-03-09 22:25:52 +01:00
ljacqu ed55c77706 #1131 Correct quote type in debug statement
- Java util Logger does not escape placeholders if they are in normal single quotes
2017-03-09 08:04:47 +01:00
ljacqu 3b70492bb9 #1131 Add debug statement for country protection 2017-03-09 08:02:37 +01:00
ljacqu e43f6364ed Remove forgotten TODO in messages_bg.yml 2017-03-09 07:56:36 +01:00
ljacquandGitHub 1a445272be Merge pull request #228 from Krokit/master
IPB4 Improves
2017-03-08 19:38:37 +01:00
ljacqu 7eadb7f7f9 #1034 Add debug sections for viewing DB data and Limbo data 2017-03-07 22:08:04 +01:00
ljacqu 4bb10c5d6d #1113 Handle LimboPlayer tasks via LimboService
- Add methods to LimboService for handling messages to make it the only relevant Limbo class for outside classes
  - Move LimboPlayerTaskManager to limbo package and make it package-private
- Create MessageTask and TimeoutTask immediately when LimboPlayer is created
- #1112 MessageTask: improve efficiency by keeping reference to Player
2017-03-07 20:35:48 +01:00
ljacqu 021497b9e6 #1113 Handle LimboPlayers within LimboService (remove LimboCache) (work in progress)
- Delete LimboCache and LimboPlayerStorage: LimboService now handles all LimboPlayer actions
- Revoke player rights when creating a LimboPlayer, within the LimboService
- Various fixes and improvements
2017-03-05 21:47:46 +01:00
ljacqu 22ccf582b8 #1113 Create LimboService (work in progress)
- Introduce new LimboService with a higher level abstraction for outside classes to trigger LimboPlayer actions
- Add methods to LimboPlayerTaskManager for muting the MessagesTask safely
2017-03-05 19:25:35 +01:00
ljacqu 6db778387d Don't make CommandDescription final as to allow mocks
- Construction of a CommandDescription requires a lot of fields to be set. In most tests we only care about one or two fields -> having to set a lot of fields to dummy values is not very nice.
2017-03-05 11:08:43 +01:00
ljacqu 8aa573b9ed Minor fixes as found by Checkstyle 2017-03-05 10:58:29 +01:00
ljacqu ed9c5ef8a7 Readme: replace metrics with bstats, add code climate badge 2017-03-05 10:19:11 +01:00
ljacqu a64f758ee9 Add config files for Code Climate - https://codeclimate.com
- Includes customized Checkstyle configuration for AuthMe
2017-03-04 20:49:11 +01:00
ljacqu 009d82c0a9 #1120 Use empty "realname" when converting from flatfile
- FlatFile doesn't store the "realname" - all names are always in all-lowercase. Converting from flatfile to other data source should therefore not take over an auth's realname
- Adjust sample flatfile file to only have all-lowercase usernames
2017-03-04 17:52:08 +01:00
ljacqu d450d7d828 #1114 Update Turkish texts by @smt287 2017-02-28 19:27:14 +01:00
ljacqu 7185206718 Minor - use replace instead of replaceAll for non-regex replacements 2017-02-27 22:45:46 +01:00
ljacquandGitHub 57903f1c08 Merge pull request #220 from AuthMe/1073-email-cooldown
Configurable cooldown for /email recovery
2017-02-26 22:44:39 +01:00
ljacqu 8a7c8c36f2 List all subcommands if debug section is unknown 2017-02-26 14:18:18 +01:00
ljacqu a847deac16 #1075 Mail sender - allow to turn off TLS for port 25 2017-02-26 14:12:51 +01:00
ljacqu a2b8ca683d Add tests for lazy tag replacement 2017-02-25 23:37:15 +01:00
ljacqu 33c4a4690f #1073 Email recovery delay: update project files following new messages & config 2017-02-25 22:42:23 +01:00
ljacqu c197a330f3 #1073 Add delay to email recovery command
- Add configurable cooldown period after sending an email for /email recovery
- Change ExpiringMap to remove expired entries (like ExpiringSet)
- Create method to translate durations via the messages file
2017-02-25 22:41:49 +01:00
ljacqu a4b440bcca Separate email preparation and email sending into separate classes
- SendMailSSL keeps on handling the technical details for sending mails, while EmailService offers methods to other classes and worries about generating the correct email content
2017-02-25 20:14:58 +01:00
ljacqu 72c5cfac68 Create Duration class and ExpiringSet#getExpiration (prep for #1073)
- Move expiring collections to util.expiring package
- Change ExpiringSet to remove expired entries during normal calls
2017-02-25 17:25:25 +01:00
ljacqu 4edb4e68c2 #1104 Whitelist sensitive commands also when used with "authme:" prefix 2017-02-21 22:51:45 +01:00
ljacqu ee51bb3971 Minor cleanups
- Remove forgotten test assertion
- Make utils class final
- Change RandomString to use char array
2017-02-20 22:20:48 +01:00
ljacqu 922101d755 #1104 Filter all sensitive command aliases in console filters 2017-02-20 22:09:36 +01:00
ljacqu 18d8186804 #1026 List all available tags for commands.yml in comment 2017-02-20 21:18:13 +01:00
ljacqu 57ca81f2ba #1102 commands.yml file should not have any commands by default 2017-02-20 21:11:57 +01:00
ljacqu 39395836b4 #949 Add configurable timeout for captcha count 2017-02-19 11:50:06 +01:00
ljacqu 510826d268 Add manifest file to gitignore 2017-02-19 11:34:56 +01:00
ljacqu ca708e23cd #949 Create ExpiringSet, integrate into SessionManager 2017-02-19 09:06:15 +01:00
ljacqu 7b3bd3f4ea Make the Travis build great again
Curious that only TravisCI has issues with some lambda code creating a map. Both CircleCI and our project Jenkins are happy with it. The same JDK is configured for TravisCI and CircleCI, too...
2017-02-18 23:00:19 +01:00
ljacqu 152d1dc216 #949 Created TimedCounter + implement it in TempbanManager 2017-02-18 22:50:30 +01:00
ljacqu ef1d006cdf #949 Create expiring map type + integrate it into recovery code service 2017-02-18 21:31:37 +01:00
ljacqu 6937dd37fb #1034 Create subcommand to send test email
- Add test email feature
- Change debug command to lazily instantiate its subcommands
2017-02-18 17:53:34 +01:00
ljacqu c9b66183de Fix command mapping for /authme:unregister etc. 2017-02-18 15:56:08 +01:00
ljacqu e3426cd731 Display hint when legacy jar should be used (cf. #1099) 2017-02-18 15:13:26 +01:00
ljacqu 7c1a9062ba #761 Simplify auth group handling 2017-02-15 20:05:14 +01:00
ljacqu d2fccdeb80 Update Injector and create injectable object factory
- Using e.g. Factory<Converter> instead of the injector directly makes its purpose more specific and disallows any future abuse of the injector's functions
2017-02-05 16:52:35 +01:00
ljacqu 8ae06ed480 Minor improvements to config layout
- Change placement and comment of settings.restrictions.banUnsafedIP to make it clear that it only bans unknown IPs using a restricted username
- Move "MySQL use SSL" option outside of the column options
2017-02-05 13:48:24 +01:00
ljacqu 3eab42ae68 Remove obsolete "session expires on IP change" config
- Session always expire on IP change; the config only controlled whether an error message was shown or not
2017-02-05 13:40:11 +01:00
ljacqu 2b1a97e959 #761 Fix removal and restoration of primary permission group
- Improve how a player is being switched between permission groups (add new group before removing old one)
- Remove group handling logic from LimboCache: AuthGroupHandler is now solely responsible for changing the player's permission group
2017-02-05 13:12:04 +01:00
ljacqu 49f7e47645 Add more debug log flavors to ConsoleLogger 2017-02-05 13:09:38 +01:00
ljacqu f6c560cbbe Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into 761-permission-groups 2017-02-04 23:05:31 +01:00
ljacqu 20cd9e9588 #1085 Improve of help translation files
- Avoid logging an error if a help_{lang}.yml file does not exist in the JAR
- No longer suggest /authme messages for updating the help translation
- Create consistency test to ensure that all help_{lang}.yml files in the JAR have entries for all help sections / messages / default permissions
2017-02-04 22:00:53 +01:00
ljacqu 5ad528d5d9 Fix Javadoc errors (as seen in Jenkins build) 2017-02-04 11:35:43 +01:00
ljacqu f6b08ece68 Trivial code householding
- Convert field to local variable
- Remove unused constructor parameter
- Move limbo class into limbo package
2017-01-30 21:53:00 +01:00
ljacqu 24162ad94b #1034 Create debug command structure + utility to see permission groups
- Relevant to current work... :)
2017-01-29 19:47:14 +01:00
ljacqu 350ef9b5e6 PermissionHandlers: add default methods for trivial duplications
- Add easy default methods on PermissionHandler interface (override whenever there's a better way!)
- Change getGroups() signature to return a Collection instead of a List
2017-01-29 18:16:17 +01:00
ljacqu 95945ffd22 #761 Improve permissions group support
- Drop one auth group type in favor of three: logged in, registered but not logged in, and unregistered
- Move  properties to same parent path
2017-01-29 17:44:06 +01:00
ljacqu bba35944b9 Merge branch '5.3-DEV' of https://github.com/AuthMe-Team/AuthMeReloaded
Conflicts:
	pom.xml
2017-01-29 14:45:42 +01:00
ljacquandGabriele C 89c70ff447 #1026 Add more tags for forced commands (lazily replaced) (#214)
* #1026 Add more tags for forced commands (lazily replaced)
- Extract lazy replacement of tags to its own class
- Implement wrapper to replace a String property within an object
  - Use wrapper in command manager and add new tags

* Make argument type generic in lazy tags util
2017-01-29 13:54:37 +01:00
ljacqu 12566f03ef Fix country code link in config comment 2017-01-29 12:40:20 +01:00
ljacqu 7578247085 Write tests for BukkitService 2017-01-24 21:39:01 +01:00
ljacqu 56017c81d0 Minor - don't perform registration settings migration if old path doesn't exist
- Migration was otherwise performed if config.yml was blank, which produces confusing output
2017-01-22 13:14:26 +01:00
ljacqu e17b1f0fdf #1019 Web integration demo: fix username and realname assignments
- username column is all lowercase, realname column has the proper casing
2017-01-22 12:34:32 +01:00