93 Commits

Author SHA1 Message Date
ljacqu
f7911edd60
#1448 Create AuthMePlayer to get player data from API with (#2000)
* #1448 Create AuthMePlayer to get player data from API with

* #1448 Add tests for new API method & AuthMePlayer

* #1448 Create AuthMePlayer to get player data from API with
- Use Optional for all values that may be null

* #1448 Add comment that AuthMePlayer data does not update itself
2020-02-12 20:06:42 +01:00
Drc-DEV
8fb21c5fb4 Add method to get the registration date to the API (#1993)
* Add method to get the registration date to the API

* Removed unnecessary check

* Add method to get the registration IP to the API
2020-01-24 23:09:28 +01:00
Gabriele C
09c3e7bf22 Drop deprecated v2 API 2018-09-17 20:21:09 +02:00
Gabriele C
da7e7edc37
Fix messaging [WIP] (#1614)
* Fix messaging [WIP]

* Make codeclimate happy

* Codeclimate, pls

* got it, i hope

* Improvements

* Remove duplicated checks, other improvements, make login/logout broadcasts

* Optimize project imports

* Make codeclimate happy again
2018-08-26 15:29:47 +02:00
games647
be55437287
Use the correct javadoc deprecated tag for the lastlogin method 2018-01-27 22:56:42 +01:00
Adam Harrison
6f52449d49
Deprecate getLastLogin, replace with java 8 getLastLoginTime
(Resolves #1421)
2017-12-17 11:42:25 +01:00
ljacqu
2c6181d150 Add missing tests for API package 2017-10-28 23:15:53 +02:00
ljacqu
4e8deec258 Move #isNpc method to PlayerUtils
- After dropping our hook to CombatTagPlus it is not relevant for it to be in PluginHooksService anymore
2017-10-21 12:08:23 +02:00
ljacqu
1df5308e56 #792 #814 Create command to remove NOT NULL constraints
- Create command under /authme debug that allows to change the 'nullable' status of MySQL columns (currently last date and email only)
   - We need to offer a default value for forum integrations that have a NOT NULL email column. Offering a command avoids us from force-migrating existing databases while still offering migrations in both directions
- Change in default value handling: lack of values are not handled by setting default values to the PlayerAuth anymore, and reading a default value from the database into a PlayerAuth will be translated into null by the PlayerAuth builder
- When a new database is created, email and lastlogin are now nullable and lack a default a value

Open points:
- Finish MySqlDefaultChangerTest
- Revise purging logic (#792)
- Allow to have more columns nullable (#814)
2017-10-15 12:56:13 +02:00
ljacqu
52d6476058 #792 Add columns for registration IP and registration date
- Add columns for reg date and IP
- Rename "ip" to "last IP"
2017-10-14 17:37:34 +02:00
sgdc3
e268c3a624 Start working on the changepassword api method
TODO: fix unit testing
2017-10-04 20:12:53 +02:00
sgdc3
920e65c4f4 Codestyle cleanup 2017-09-27 15:16:33 +02:00
ljacqu
bd7d84a6d2 Small docs cleanup
- NewAPI class will be removed in 5.5, not 5.4
- Add entry for "Deprecated" recommendation in hash algorithms page
- Mention possibility of wildcards for restricted user rules
2017-09-17 11:33:24 +02:00
Gabriele C
7e957cb8c7 Add missing api methods #1304 2017-08-01 16:41:00 +02:00
ljacqu
1f8307c8f6 Fix minor checkstyle issues
- Add JavaDoc where checkstyle expects it
- Fix line too long issues
- ...
2017-05-07 11:59:01 +02:00
Gabriele C
5dfb63c00f #1194 Add API methods to access the GeoIpAPI 2017-05-04 16:34:38 +02:00
ljacqu
e56a3c0ab6 #815 Save yaw & pitch for last login in SQL data sources 2017-04-22 13:30:03 +02:00
ljacqu
cbec5427f2 #1162 New API class: implement ignored review remarks 2017-04-14 18:11:47 +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
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
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
8aa573b9ed Minor fixes as found by Checkstyle 2017-03-05 10:58:29 +01:00
ljacqu
398fa4d38d #830 Refactor registration process
- Introduce registration executors: one for each registration variant; each extending class implements one registration variant and worries about that method's details only
- AsyncRegister receives the player and a registration executor
2016-12-17 21:59:34 +01:00
ljacqu
7d65d2a7c4 Fix various code issues as detected by Sonar
Mostly minor changes:
- Add deprecated javadoc tag on deprecated members
- Reduce duplication (FlatFile, BackupService, ...)
- Make methods static
- Reduce size of anonymous classes
- Replace name with displayName in PermissionsSystemType (avoids confusing with Enum name())
- Tabs to spaces
- Merge if statements

Code from third-party sources (BCryptService, BinTools, PHPBB) not modified.
2016-11-22 18:20:55 +01:00
Gabriele C
7b5a857f74 Remove useless packages 2016-10-07 19:19:12 +02:00
Gabriele C
58c42cf300 Package cleanup
- authme.cache to authme.data
- Rename PlayerData to LimboPlayer to match with LimboCache
- Move authme.converter to authme.datasource.converter
- Split output package into output and message
2016-10-05 21:10:40 +02:00
Gabriele C
42dbb27728 Service cleanup 2016-10-04 19:08:18 +02:00
ljacqu
8d64c0e5bf #830 Initialize login process with more specific methods (with password vs. force login) 2016-10-01 00:48:23 +02:00
ljacqu
405bd563d8 #950 Add unregister by name to API
- Add method to API
- Ensure that unregistering in datasource is case-insensitive
2016-09-18 14:46:02 +02:00
Gabriele C
25df3ce032 add features to our API #943
+ add getRegisteredNames() and getRegisteredRealNames() methods
+ add a new and more clear way to get the API instance
2016-09-16 20:10:57 +02:00
ljacqu
926053689a #830 Unify unregister process flavors 2016-08-13 23:46:46 +02:00
ljacqu
c9718ae86c Minor - add tests for NewAPI class 2016-07-25 16:39:49 +02:00
ljacqu
18a9fbaa26 #449 Migrate remaining non-group legacy Settings 2016-07-23 14:44:52 +02:00
ljacqu
476e0c197d #873 Save NewAPI object after construction 2016-07-23 10:23:16 +02:00
ljacqu
b671c94e0b #736 Remove service getters on AuthMe
- Remove getX() methods on AuthMe: API classes will be instantiated by injection, too. It doesn't make sense to expose the constructor for the API classes anyway; we are internally responsible for creating these objects and having them created by third-party is not intended
- Remove deprecated annotations on individual methods on API -> whole class is deprecated, annotation on the class is enough
2016-07-20 21:22:09 +02:00
ljacqu
e75cff5fb8 Remove static injections in ListenerService
- Get other classes via Inject annotation
- Remove no longer needed Utils methods (relates to #736)
- Create tests for ListenerService and AuthMeBlockListener
- Performance improvement: keep unrestricted names as Set instead of List for faster contains() method
2016-06-02 12:46:54 +02:00
ljacqu
0977558924 #736 Remove use of service getters and deprecate them 2016-05-31 11:14:03 +02:00
Gabriele C
7c52460c87 Merge branch 'pre-injector' 2016-05-04 18:03:33 +02:00
Gabriele C
1ea2f98727 Start working on #687
Next step: Future return of the async registration
2016-05-04 18:01:47 +02:00
Gabriele C
f38d3b4545 Remove deprecated method usage 2016-05-04 17:35:04 +02:00
ljacqu
02079f1f5c #432 Create custom dependency injector 2016-04-27 22:49:20 +02:00
Tim Vis'ee
558b3fd997 Added API method to gather the plugin version 2016-03-11 11:25:21 +01:00
ljacqu
b916c9b2be Fix javadoc warnings + #421 add javadoc for new API 2016-02-27 16:31:58 +01:00
Xephi59
e1a84448a2 Fix the whole Javadoc syntax 2015-12-31 01:06:09 +01:00
ljacqu
c0a393b8b3 Minor - rename EncryptedPassword to HashedPassword
- We hash passwords; we don't encrypt them
2015-12-30 22:51:59 +01:00
ljacqu
8b60c66cc8 Minor - adjust PlayerAuth builder methods
- Rename hash() to password()
- Add location(Location) builder method
- Replace usages of password(new EncryptedPassword(hash, salt)) to the more terse password(String, String) builder method
2015-12-30 18:28:06 +01:00
ljacqu
a3402d573f #358 Handle hash + salt as one "unit"
- Rename HashResult to EncryptedPassword to reflect its broader use
- Use EncryptedPassword in methods that require the hash and the salt, instead of passing them as strings separately
- Store EncryptedPassword as field in PlayerAuth; updatePassword() thus processes the entire data in the EncryptedPassword object
2015-12-30 17:56:22 +01:00
ljacqu
9c4a578bec #358 Remove old methods on PasswordSecurity, unify hash + salt
- For encryption methods with a separate salt, the hash is useless without the salt, so hash and salt should always be persisted and retrieved together
2015-12-30 15:43:25 +01:00
ljacqu
531327dd9b Minor - make AuthMe.database private
- In favor of AuthMe.getDataSource()
2015-12-29 11:55:57 +01:00