78 Commits

Author SHA1 Message Date
Gabriele C.
90be2af901 Update usage of deprecated org.junit.Assert.assertThat 2024-04-26 02:06:39 +02:00
ljacqu
51260fd22d Disable regular Hikari log statements during test execution
- Also use mock logger instead of a real one in a few select tests to reduce the log output during tests
2019-11-03 17:38:14 +01:00
ljacqu
39fbb4ac05 Remove tests calling hidden constructor of util classes
- Newer versions of JaCoCo now ignore hidden constructors out of the box so we don't need the dummy method that calls the constructor for coverage anymore
2019-11-03 11:27:18 +01:00
ljacqu
2673eb0f8e Mockito: Replace deprecated verifyZeroInteractions with verifyNoInteractions 2019-10-26 21:56:54 +02:00
ljacqu
80647c04f4 Merge branch '5.5.0' of https://github.com/AuthMe/AuthMeReloaded 2018-12-04 19:05:14 +01:00
ljacqu
f431325516 #1650 Fix users with capitals not having their session saved 2018-12-04 19:04:25 +01:00
Gabriele C
650a97647a Drop FlatFile storage converter
It's time...
2018-11-30 15:29:30 +01:00
Alan Gomes
4be174f083 Add PostgreSQL support (#1620)
* Add PostgreSQL support

* Fix code issues and create integration tests

* Fix identation

* Test Postgres data source in postgres integration test

* Relocated the postgres driver
2018-09-02 12:12:35 +02:00
ljacqu
2bf78dd186 Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into 1141-optional-additional-2fa-auth 2018-04-02 23:44:19 +02:00
ljacqu
4595a14191 #1539 Add support for columns that are not on player auth (is_logged, has_session) 2018-03-25 11:52:40 +02:00
ljacqu
137fc3d505 #1539 Use columns handler in more datasource methods; fix case-insensitivity for SQLite 2018-03-24 22:53:30 +01:00
ljacqu
5a58f2c44f #1539 Integrate data source columns library
- Create wrapper around SqlColumnsHandler for AuthMe-specific behavior
- Integrate columns handler into first SQLite and MySQL method implementations
2018-03-24 12:24:43 +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
fddb3bf265 Fix minor Checkstyle violations
- Mostly missing JavaDoc, some line lengths
2018-03-11 19:08:21 +01:00
ljacqu
9954c82cb6 #1141 Add TOTP key field to database and PlayerAuth
- Add new field for storing TOTP key
- Implement data source methods for manipulation of its value
2018-03-05 19:50:58 +01:00
ljacqu
50dbbb8d87 #1254 Create command to see recently logged in players
- Create datasource method to fetch most recent players by last login date
- Add command to view last logged in players
2017-11-28 21:07:10 +01:00
ljacqu
c7ba06e2b9 Fix test / use new DataSource method / add space before keywords 2017-11-03 19:57:40 +01:00
ljacqu
d6e2369f36 #792 Force migration of SQLite when necessary (#1371)
- Detect if a migration is necessary
- Create a backup
- Perform the migration
2017-10-22 09:16:48 +02:00
ljacqu
1651a61063 #792 #814 Implement SQLite migration, allow last IP to be nullable in MySQL
- Old SQLite setups have the last IP column as NOT NULL but without a default value. With the new concept (where we don't set a last IP on player registration) it fails.
  - Create an /authme debug child that allows to migrate SQLite (tricky because SQLite does not support dropping or modifying columns)
  - Allow last IP column to be NOT NULL in MySQL as well (extend MySQL /authme debug child)
- Add TODO comments with follow-up issue to extend our commands with new registration IP field
2017-10-21 10:45:48 +02:00
ljacqu
a425eacf2d #792 Add missing tests / fix CodeClimate issues 2017-10-20 17:49:30 +02: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
ea58e20c3d #792 Include registration date into purging logic
- Take MAX(reg_date, login_date) as timestamp to compare against
- Remove the second "all" parameter to include entries with 0 registration date -> we expect registration date to always be set to the current date, so the parameter becomes obsolete
2017-10-15 18:29:01 +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
718c38aa24 Fix failing LoginSecurityConverterTest: allow tolerance for java.sql.Date to millis conversion 2017-10-14 19:51:26 +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
ljacqu
027d0fc775 Create TestHelper method to make Settings mock return defaults 2017-07-23 18:00:51 +02:00
ljacqu
efc06ef2a6 #1255 Create resource-closing tests for the MySQL extensions
- Remove test runs with different hash algorithms in the abstract super class
- Create resource-closing tests for the new extension classes
2017-07-23 17:29:36 +02:00
ljacqu
cbc794ba20 #1255 Extract forum-specific data source actions into separate extension classes 2017-07-23 14:19:28 +02:00
Gabriele C
00699ed7fb Use guava 21, add 1.12 support 2017-05-29 23:40:44 +02:00
ljacqu
e5bfbf6304 #1023 LoginSecurity converter: fix last login conversion, extend test 2017-05-13 09:37:36 +02:00
ljacqu
2021113732 #1023 Create LoginSecurity converter 2017-05-10 19:45:20 +02:00
ljacqu
82d74ca0a7 Move close methods out of sql datasource utils class
As noticed by @Gnat008
- We need two different implementations for MySQL and SQLite because SQLite uses an older version where #isClosed is not implemented
2017-04-29 08:18:43 +02:00
ljacqu
e56a3c0ab6 #815 Save yaw & pitch for last login in SQL data sources 2017-04-22 13:30:03 +02:00
ljacqu
07633a89c8 Create SQL data source utils class
- Extract logic used in SQLite and MySQL for logging and closing SQL objects
    - Decided to leave buildAuthFromResultSet methods individually as this might be more implementation-specific
- Rename DataSource#close to DataSource#closeConnection to fix conflict with static import
2017-04-18 22:55:39 +02:00
ljacqu
04ca36fe53 Use more specific query to get logged in players without email
- Reduces the amount of data returned from the DB and the work required to build objects
2017-04-18 22:30:54 +02:00
ljacqu
b99cc3bada #1127 Create DataSource#getEmail 2017-04-18 21:07:31 +02: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
5f8a19223f Update ConfigMe and Mockito version 2016-12-23 23:22:05 +01:00
ljacqu
4214c6dc80 #411 Forced commands: initial implementation 2016-11-17 21:02:01 +01:00
Gabriele C
e9f274aa89 Cleanup 2016-11-15 19:00:00 +01:00
ljacqu
5cce7e1fae Update version of ConfigMe, Mockito and sqlite-jdbc 2016-10-30 14:05:22 +01: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
ljacqu
ff9f50f63f #886 Do not include players with lastlogin = 0 in autopurge or default purge 2016-09-18 16:49:34 +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
ljacqu
e30d7220bd #472 Store recovery codes in memory instead of in data source 2016-09-16 21:42:16 +02:00
ljacqu
c5f5c0d2fd #472 Require recovery code before resetting password
- /email recovery generates recovery code and resets password only if recovery code is also given
- Change data source method to return email and recovery code
2016-09-10 14:27:26 +02:00
ljacqu
0aac8928af #472 Create recovery code/expiration columns and methods in data source 2016-09-10 09:13:17 +02:00
ljacqu
c7bb7b460e #927 Integrate ConfigMe into AuthMe (work in progress)
- Replace own code with ConfigMe
2016-08-30 15:28:07 +02:00
ljacqu
19de5a0525 Close #449 Rename NewSetting class to Settings :) 2016-07-23 15:50:40 +02:00