118 Commits

Author SHA1 Message Date
Gabriele C
c38e2aba28 Fix bungee message order (login -> connect) 2022-08-18 03:41:31 +02:00
Gabriele C
6f1c63e693 Add delay to bungee force-login messages 2022-08-18 03:39:40 +02:00
Gabriele C
7c8bbe6294 Remove cache-update bungee messages, always use the player in the context to send bungee messages, minor codestyle changes 2022-08-18 01:48:34 +02:00
bundabrg
80e37578b1
If a player is not registered then we send a LOGIN plugin message on join (#2275)
* If a player is not registered then we send a LOGIN plugin message on join

* Make looking up a profile optionally quiet

This prevents an issue where a forcedLogin of a player that doesn't exist occurring when an unregistered player switches a server. The first login would tell AuthBungee that the player is logged in, and subsequent switches would have AuthBungee send a performLogin back that would then send an unregistered player error message to the player.

Co-authored-by: bundabrg <bundabrg@grieve.com.au>
Co-authored-by: Gabriele C <sgdc3.mail@gmail.com>
2021-08-30 11:35:36 +02:00
Alexander Emelyanov
2eabb0d09d
Add player's IP into login logger (#2064) (#2169) 2020-08-20 00:59:17 +02:00
ljacqu
c34f00f759 #1874 Introduce individual ConsoleLogger instance per class (#1875)
* #1874 Introduce individual ConsoleLogger instance per class
- Create ConsoleLoggerFactory from which a separate logger can be created for each class
- Allows to support individual log level settings in the future

* Fix CodeStyle issue

* Replace full class name with import

* Update usages after merge from master
2019-08-06 15:15:16 +02:00
games647
0227cb3f74 Add IPv6 support for isLocal checks (#1592)
* Add IPv6 support for isLocal checks

* Replace magic values like 127.0.0.1 and use our utility
* Support for IPv6 local adresses in IPv6 only or dual stack environments
    * Loopback [::1]
    * Site-Local fc00::/7
    * Link-local fe80::/10

* Introduce extra method for loopback addresses

* Use public IP for passMaxLogin check

* Use non-local IP addresses in test after change in verification
2018-07-04 02:05:17 +02:00
ljacqu
495cfc69a9 #1141 Move TOTP code during login as separate step: /2fa code
Rough version.
- Introduces a limbo player state on the LimboPlayer, allowing us to add further mandatory actions between successful (password) authentication and the ability to play on the server
2018-03-20 23:06:08 +01:00
ljacqu
af6bee59bd Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into 1141-optional-additional-2fa-auth
# Conflicts:
#	src/main/java/fr/xephi/authme/datasource/MySQL.java
2018-03-19 22:32:16 +01:00
ljacqu
1a53cd11b2 #829 Move CommandSender / name to first argument to avoid confusion with varargs
- Overloaded method with (String, String...) as args was problematic as it could be confusing on its own and also confusing with the (CommandSender, String...) flavor
2018-03-10 16:58:30 +01:00
ljacqu
eb9cd31a65 #1141 Split TOTP permissions for add/remove, refactor TOTP services
- Split TotpService further into GenerateTotpService and TotpAuthenticator, which wraps the GoogleAuthenticator impl
- Add missing tests for the services
- Change GenerateTotpService's interface to behave like a collection for more intuitive method behavior
2018-03-10 16:21:53 +01:00
ljacqu
e72d5d5e81 #1141 Require TOTP code to be passed with /login (temporary)
- Temporarily require the TOTP code to be provided with /login
- Future implementation should require it as a second step
2018-03-09 18:37:01 +01:00
Maxetto
00de15016a Follow remarks
#1509
2018-03-05 19:38:24 +01:00
ljacqu
d9c1af4311 #1454 Run other accounts command in sync mode 2018-01-08 23:08:37 +01:00
ljacqu
180bbbf0be #930 Refactor captcha managers to have a crude captcha storage class instead of inheritance
- Remove abstract captcha manager in favor of a primitive captcha code storage (composition over inheritance)
- Supply player when checking captcha code for further usage (fixes open point from previous commit)
2018-01-05 01:26:25 +01:00
ljacqu
33904c09e9 #930 Create registration captcha manager
- Introduce registration captcha manager, rename login captcha manager accordingly
- Integrate reg. captcha manager into /register command

Open points:
- Refactor common captcha functionality into abstract superclass
- If captcha before /register necessary, show appropriate message to player immediately
- Unit tests
2017-12-01 21:12:35 +01:00
ljacqu
f1c1848985 #1046 Add onFirstLogin to commands.yml
- Allow to configure commands run on player's first login (login of player with a previously null lastlogin date)
2017-11-28 21:41:30 +01:00
Gabriele C
b7c3d4b42e
Implement AuthMeBungee autologin (#1402)
* Implement AuthMeBungee autologin

There is a failing test due to cyclic dependency injection, @ljacqu could you take a quick look at this?

* Try to fix recursive dependency injection

* Fix codestyle

* Fix the subchannel name, again...

* Split BungeeService into BungeeSender and BungeeReceiver
2017-11-09 11:19:24 +01:00
Gabriele C
273c318e96 Cleanup 2017-11-02 11:24:17 +01:00
Gabriele C
2d2eb740e3 Implement bungee messaging, CacheDataSource sync 2017-10-30 10:38:13 +01:00
ljacqu
90073ef95d Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into 792-registration-date-and-ip
Conflicts:
	src/main/java/fr/xephi/authme/command/executable/authme/RegisterAdminCommand.java
	src/main/java/fr/xephi/authme/datasource/Columns.java
	src/main/java/fr/xephi/authme/datasource/SQLite.java
	src/main/java/fr/xephi/authme/process/join/AsynchronousJoin.java
	src/main/java/fr/xephi/authme/service/SessionService.java
	src/main/java/fr/xephi/authme/settings/properties/DatabaseSettings.java
	src/test/java/fr/xephi/authme/service/SessionServiceTest.java
	src/test/resources/fr/xephi/authme/datasource/sql-initialize.sql
2017-10-15 23:45:41 +02:00
Gabriele C
22e95493de #1031 Introduce hasSession field in datasource (#1351)
* Introduce hasSession field in datasource

That makes isLogged more consistent as it will be '1' only when the player is online.

* Fixes

* Fix unit testing

* Update config doc

* Create SessionService

* Create test for SessionService, avoid DB operations if sessions are disabled

* Cleanup: remove outdated warning for session timeout = 0
- Remove outdated warning
- Encapsulate session enabled check in SessionService

* Fix failing SessionServiceTest, add data source integration tests for session methods
2017-10-15 18:32:51 +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
3d26357df6 Use Utils.isEmailEmpty #1329 2017-09-16 14:02:16 +02:00
Gabriele C
e1466425a1 Print the "Forgot your password? ..." message only if the user has set the recovery email address #1329 2017-09-14 18:24:14 +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
ljacqu
d65556d893 #857 Create event for failed authentication 2017-04-29 14:46:06 +02:00
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
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
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
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
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
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
7185206718 Minor - use replace instead of replaceAll for non-regex replacements 2017-02-27 22:45:46 +01:00
ljacqu
cc0d16c7e1 Remove redundant and unused message
- Remove 'reg_voluntarily'
- Remove 'user_unknown' in favor of 'unknown_user' - but move text from old 'user_unknown' to 'unknown_user'

Found by @Twonox
2017-01-09 21:16:53 +01:00
Alexandre Vanhecke
fae7286776 Merge branch 'master' into 745-captcha-login-message 2016-12-12 17:58:37 +01:00
ljacqu
c325d0db41 Merge CommandService and ProcessService to CommonService
- Replace CommandService and ProcessService with CommonService: a service that offers our typical needs to work with settings, messages and permissions
- Remove validation methods from CommonService: inject ValidationService directly. Validation methods are not used very frequently and therefore don't belong in CommonService. Their presence was a relict from our architecture before injection was used.
2016-12-03 12:10:30 +01:00
Gabriele C
3362cf7b95 Fix wrong logic #459 2016-11-13 13:36:50 +01:00
Gabriele C
cf04ec6082 Fix wrong config description for #459 2016-11-13 13:35:19 +01:00
Gabriele C
2651786456 #459 Add other accounts command + Update config docs 2016-10-30 13:01:27 +01:00
Gabriele C
1b60b07f60 Mute the message task when the player has to solve a captcha 2016-10-23 15:14:16 +02:00
ljacqu
71f3b86383 Minor - fix checkTestMocks task and rename PlayerDataTaskManager
- Fix tool task to scan test folder
- Rename PlayerDataTaskManager to LimboPlayerTaskManager to match its test class
2016-10-06 20:29:50 +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
f688eb4574 #937 Fix auto login after register not working in sync mode
- Need a small delay to allow the database to store the PlayerAuth object in the registration process
2016-09-18 22:51:24 +02:00
ljacqu
4eab258993 #937 Add option for AuthMe to run in sync
- Create BukkitService#runTaskOptionallyAsync and BukkitService#scheduleSyncTaskFromOptionallyAsyncTask whose behavior depends on a new setting
- Use the new methods where applicable
- Declare events async or sync depending on the new setting
2016-09-18 21:58:14 +02:00
ljacqu
2417bf4c3f #876 Keep track of wrong logins by (ip, username) and implement threshold 2016-08-27 21:28:11 +02:00