From a5952de23750d162e5bfe5a32877c384a3105cfb Mon Sep 17 00:00:00 2001 From: Maxetto Date: Sun, 5 Jul 2015 03:50:41 +0200 Subject: [PATCH 1/9] Enhanced Password Regex We are now allowing every ASCII character except for space (0x20 - 32). Those are the characters allowed in passwords. --- src/main/resources/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index d2147b1f..d362a4e6 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -165,7 +165,7 @@ settings: # AuthMe will NEVER teleport players ! noTeleport: false # Regex sintax for allowed Chars in passwords. - allowedPasswordCharacters: '[a-zA-Z0-9_?!@+&-]*' + allowedPasswordCharacters: '[\x21-\x7E]*' GameMode: # ForceSurvivalMode to player when join ? ForceSurvivalMode: false @@ -422,4 +422,4 @@ Protection: antiBotDuration: 10 VeryGames: # These features are only available on VeryGames Server Provider - enableIpCheck: false \ No newline at end of file + enableIpCheck: false From c0e631fff9f2559fef9608eb70f5272d93f2e0c7 Mon Sep 17 00:00:00 2001 From: The Gitter Badger Date: Sun, 5 Jul 2015 11:20:48 +0000 Subject: [PATCH 2/9] Added Gitter badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bdaacf90..05c1edf2 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@
#####Development tools: +[![Join the chat at https://gitter.im/Xephi/AuthMeReloaded](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Xephi/AuthMeReloaded?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + - Build status: [![Build Status](https://travis-ci.org/Xephi/AuthMeReloaded.svg?branch=master)](https://travis-ci.org/Xephi/AuthMeReloaded) - Build Server: Jenkins From 017a55ae137ba58bcd90bb7c98ae8f09d5d82e0b Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Sun, 5 Jul 2015 17:03:05 +0200 Subject: [PATCH 3/9] email fix --- src/main/java/fr/xephi/authme/SendMailSSL.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/fr/xephi/authme/SendMailSSL.java b/src/main/java/fr/xephi/authme/SendMailSSL.java index 29e56cba..5dbe98f2 100644 --- a/src/main/java/fr/xephi/authme/SendMailSSL.java +++ b/src/main/java/fr/xephi/authme/SendMailSSL.java @@ -6,7 +6,6 @@ import java.util.Properties; import javax.mail.BodyPart; import javax.mail.Message; -import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; @@ -73,14 +72,14 @@ public class SendMailSSL { multipart.addBodyPart(messageBodyPart); message.setContent(multipart); final Transport transport = session.getTransport("smtp"); - transport.connect(Settings.getmailSMTP, Settings.getmailAccount, Settings.getmailPassword); Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() { @Override public void run() { try { + transport.connect(Settings.getmailSMTP, Settings.getmailAccount, Settings.getmailPassword); transport.sendMessage(message, message.getAllRecipients()); - } catch (MessagingException e) { + } catch (Exception e) { System.out.println("Some error occured while trying to send a mail to " + auth.getEmail()); } } From 4ca92dda598b2a122c2609553c2244f15064fdd7 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Sun, 5 Jul 2015 17:48:40 +0200 Subject: [PATCH 4/9] Do mail full async --- .../java/fr/xephi/authme/SendMailSSL.java | 87 ++++++++++--------- 1 file changed, 45 insertions(+), 42 deletions(-) diff --git a/src/main/java/fr/xephi/authme/SendMailSSL.java b/src/main/java/fr/xephi/authme/SendMailSSL.java index 5dbe98f2..4d379379 100644 --- a/src/main/java/fr/xephi/authme/SendMailSSL.java +++ b/src/main/java/fr/xephi/authme/SendMailSSL.java @@ -40,53 +40,56 @@ public class SendMailSSL { sendername = Settings.getmailSenderName; } - String port = String.valueOf(Settings.getMailPort); - Properties props = new Properties(); - props.put("mail.smtp.host", Settings.getmailSMTP); - props.put("mail.smtp.auth", "true"); - props.put("mail.smtp.port", port); - props.put("mail.smtp.starttls.enable", true); + final String sender = sendername; + final String port = String.valueOf(Settings.getMailPort); + final String acc = Settings.getmailAccount; + final String subject = Settings.getMailSubject; + final String smtp = Settings.getmailSMTP; + final String password = Settings.getmailPassword; + final String mailText = Settings.getMailText; + final String mail = auth.getEmail(); - try { - Session session = Session.getInstance(props, null); + Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() { - final Message message = new MimeMessage(session); - try { - message.setFrom(new InternetAddress(Settings.getmailAccount, sendername)); - } catch (UnsupportedEncodingException uee) { - message.setFrom(new InternetAddress(Settings.getmailAccount)); - } - message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(auth.getEmail())); - message.setSubject(Settings.getMailSubject); - message.setSentDate(new Date()); - BodyPart messageBodyPart = new MimeBodyPart(); - String text = Settings.getMailText; - messageBodyPart.setText(text); + @Override + public void run() { + try { + Properties props = new Properties(); + props.put("mail.smtp.host", smtp); + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.port", port); + props.put("mail.smtp.starttls.enable", true); + Session session = Session.getInstance(props, null); - Multipart multipart = new MimeMultipart(); - - multipart.addBodyPart(messageBodyPart); - - messageBodyPart = new MimeBodyPart(); - - multipart.addBodyPart(messageBodyPart); - message.setContent(multipart); - final Transport transport = session.getTransport("smtp"); - Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() { - - @Override - public void run() { + Message message = new MimeMessage(session); try { - transport.connect(Settings.getmailSMTP, Settings.getmailAccount, Settings.getmailPassword); - transport.sendMessage(message, message.getAllRecipients()); - } catch (Exception e) { - System.out.println("Some error occured while trying to send a mail to " + auth.getEmail()); + message.setFrom(new InternetAddress(acc, sender)); + } catch (UnsupportedEncodingException uee) { + message.setFrom(new InternetAddress(acc)); } - } + message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mail)); + message.setSubject(subject); + message.setSentDate(new Date()); + BodyPart messageBodyPart = new MimeBodyPart(); + messageBodyPart.setText(mailText); - }); - } catch (Exception e) { - System.out.println("Some error occured while trying to send a mail to " + auth.getEmail()); - } + Multipart multipart = new MimeMultipart(); + + multipart.addBodyPart(messageBodyPart); + + messageBodyPart = new MimeBodyPart(); + + multipart.addBodyPart(messageBodyPart); + message.setContent(multipart); + Transport transport = session.getTransport("smtp"); + transport.connect(smtp, acc, password); + transport.sendMessage(message, message.getAllRecipients()); + + } catch (Exception e) { + System.out.println("Some error occured while trying to send a mail to " + mail); + } + } + + }); } } From baf89e4ec8da0a06be2ca5a43e99302b8c4c949b Mon Sep 17 00:00:00 2001 From: Alexandre Vanhecke Date: Sun, 5 Jul 2015 18:06:52 +0200 Subject: [PATCH 5/9] Add gitter to travis --- .travis.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.travis.yml b/.travis.yml index 14a4ccf3..f6b0f140 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,3 +9,11 @@ cache: script: - mvn clean install -B && mvn clean -B + +notifications: + webhooks: + urls: + - https://webhooks.gitter.im/e/952357dbd9d3cea70fd5 + on_success: change # options: [always|never|change] default: always + on_failure: always # options: [always|never|change] default: always + on_start: false # default: false From 1beab7b40b7c781e4369cfb9630bbe83d1995e80 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Sun, 5 Jul 2015 18:18:20 +0200 Subject: [PATCH 6/9] Change password regex here too --- src/main/java/fr/xephi/authme/settings/Settings.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/java/fr/xephi/authme/settings/Settings.java b/src/main/java/fr/xephi/authme/settings/Settings.java index f15529c8..e9137b18 100644 --- a/src/main/java/fr/xephi/authme/settings/Settings.java +++ b/src/main/java/fr/xephi/authme/settings/Settings.java @@ -263,7 +263,7 @@ public final class Settings extends YamlConfiguration { delayJoinMessage = configFile.getBoolean("settings.delayJoinMessage", false); noTeleport = configFile.getBoolean("settings.restrictions.noTeleport", false); crazyloginFileName = configFile.getString("Converter.CrazyLogin.fileName", "accounts.db"); - getPassRegex = configFile.getString("settings.restrictions.allowedPasswordCharacters", "[a-zA-Z0-9_?!@+&-]*"); + getPassRegex = configFile.getString("settings.restrictions.allowedPasswordCharacters", "[\\x21-\\x7E]*"); applyBlindEffect = configFile.getBoolean("settings.applyBlindEffect", false); emailBlacklist = configFile.getStringList("Email.emailBlacklisted"); emailWhitelist = configFile.getStringList("Email.emailWhitelisted"); @@ -430,7 +430,7 @@ public final class Settings extends YamlConfiguration { delayJoinMessage = configFile.getBoolean("settings.delayJoinMessage", false); noTeleport = configFile.getBoolean("settings.restrictions.noTeleport", false); crazyloginFileName = configFile.getString("Converter.CrazyLogin.fileName", "accounts.db"); - getPassRegex = configFile.getString("settings.restrictions.allowedPasswordCharacters", "[a-zA-Z0-9_?!@+&-]*"); + getPassRegex = configFile.getString("settings.restrictions.allowedPasswordCharacters", "[\\x21-\\x7E]*"); applyBlindEffect = configFile.getBoolean("settings.applyBlindEffect", false); emailBlacklist = configFile.getStringList("Email.emailBlacklisted"); emailWhitelist = configFile.getStringList("Email.emailWhitelisted"); @@ -554,7 +554,7 @@ public final class Settings extends YamlConfiguration { changes = true; } if (!contains("settings.restrictions.allowedPasswordCharacters")) { - set("settings.restrictions.allowedPasswordCharacters", "[a-zA-Z0-9_?!@+&-]*"); + set("settings.restrictions.allowedPasswordCharacters", "[\\x21-\\x7E]*"); changes = true; } if (!contains("settings.applyBlindEffect")) { @@ -579,13 +579,11 @@ public final class Settings extends YamlConfiguration { set("settings.forceRegisterCommandsAsConsole", new ArrayList()); changes = true; } - if (!contains("Hooks.customAttributes")) - { + if (!contains("Hooks.customAttributes")) { set("Hooks.customAttributes", false); changes = true; } - if (!contains("Purge.removePermissions")) - { + if (!contains("Purge.removePermissions")) { set("Purge.removePermissions", false); changes = true; } From 6234f55b96c9bc8f22487d9cbdb3b83969c36c02 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Mon, 6 Jul 2015 00:47:05 +0200 Subject: [PATCH 7/9] Fix it ? :/ --- src/main/resources/messages_it.yml | 48 +++++++++++++++--------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/main/resources/messages_it.yml b/src/main/resources/messages_it.yml index 9d45141d..7084d246 100644 --- a/src/main/resources/messages_it.yml +++ b/src/main/resources/messages_it.yml @@ -1,28 +1,28 @@ -unknown_user: "L'utente non è presente nel database." -unsafe_spawn: 'Il punto di disconnessione è attualmente ostruito o insicuro, sei stato teletrasportato al punto di rigenerazione!' -not_logged_in: "&cL'utente non ha ancora eseguito l'autenticazione!" -reg_voluntarily: 'Per eseguire la registrazione al server devi eseguire il seguente comando: "/register "' +unknown_user: 'L''utente non è presente nel database.' +unsafe_spawn: 'Il tuo punto di disconnessione risulta ostruito o insicuro, sei stato teletrasportato al punto di rigenerazione!' +not_logged_in: '&cL''utente non ha ancora eseguito l''autenticazione!' +reg_voluntarily: 'Puoi eseguire la registrazione al server con il comando: "/register "' usage_log: '&cUtilizzo: /login ' wrong_pwd: '&cPassword non corretta!' -unregistered: "&cL'utente è stato rimosso dal database con successo!" +unregistered: '&cL''utente è stato rimosso dal database con successo!' reg_disabled: '&cLa registrazione tramite i comandi del gioco è disabilitata.' -valid_session: '&cAutenticato attraverso la sessione ripresa!' +valid_session: '&cAutenticato automaticamente attraverso la sessione precedente!' login: '&cAutenticazone effettuata correttamente!' -vb_nonActiv: 'Il tuo Account non è stato ancora verificato, controlla le tue Email per scoprire come attivarlo!' -user_regged: "&cL'utente si è già registrato, impossibile eseguire nuovamente la registrazione." +vb_nonActiv: 'Il tuo account non è stato ancora verificato, controlla fra le tue email per scoprire come attivarlo!' +user_regged: '&cHai già effettuato la registrazione, non è possibile eseguirla nuovamente.' usage_reg: '&cUtilizzo: /register ' -max_reg: 'Hai raggiunto il numero massimo di registrazioni per indirizzo IP!' +max_reg: 'Hai raggiunto il numero massimo di registrazioni per questo indirizzo IP!' no_perm: '&cNon hai il permesso di eseguire questa operazione.' -login_msg: '&cPerfavore, per giocare devi effettuare l''autenticazione con il comando: "/login "' -reg_msg: '&cPerfavore, per connetterti al server devi prima registrarti con il comando: "/register "' -reg_email_msg: '&cPerfavore, per connetterti al server devi prima registrarti con il comando: "/register "' +login_msg: '&cPerfavore, effettua l''autenticazione con il comando: "/login "' +reg_msg: '&cPerfavore, esegui la registrazione con il comando: "/register "' +reg_email_msg: '&cPerfavore, esegui la registrazione con il comando: "/register "' usage_unreg: '&cUtilizzo: /unregister ' pwd_changed: '&cPassword cambiata con successo!' -user_unknown: "&cL'utente non ha ancora eseguito la registrazione." +user_unknown: '&cL''utente non ha ancora eseguito la registrazione.' password_error: 'Le Password non corrispondono!' -password_error_nick: '&fNon puoi usare il tuo nome come Password!' -password_error_unsafe: '&fNon puoi usare una Password insicura, provane un''altra!' -invalid_session: "I tuoi dati di connessione attuali non sono quelli utilizzati in precedenza. Attendere la fine della sessione attuale." +password_error_nick: 'Non puoi usare il tuo nome utente come password, scegline un''altra!' +password_error_unsafe: 'La password che hai inserito, scegline un''altra!' +invalid_session: 'I tuoi dati di connessione attuali non sono quelli utilizzati in precedenza. Attendi la fine della sessione attuale.' reg_only: 'La registrazione è effettuabile soltanto attraverso il sito web! Perfavore, vai su http://example.com per procedere!' logged_in: '&cHai già eseguito l''autenticazione!' logout: '&cDisconnessione avvenuta correttamente!' @@ -30,14 +30,14 @@ same_nick: 'Lo stesso nickname è già online sul server!' registered: '&cRegistrato correttamente!' pass_len: 'La tua password è troppo corta o troppo lunga, prova a cambiarla!' reload: 'La configurazione e il database sono stati ricaricati con successo!' -timeout: "Tempo scaduto per effettuare l'autenticazione" +timeout: 'Tempo scaduto per effettuare l''autenticazione' usage_changepassword: 'Utilizzo: /changepassword ' name_len: '&cIl tuo nickname è troppo corto o troppo lungo!' regex: '&cIl tuo nickname contiene caratteri non consentiti. I caratteri consentiti sono: REG_EX' -add_email: '&cPer poter recuperare la password in futuro, aggiungi una email al tuo account con il comando: "/email add tuaEmail confermaEmail"' -bad_database_email: 'Il comando /email è utilizzabile solo con database MySQL o SQLite, riporta questo errore ad un Admin!' +add_email: '&cPer poter recuperare la password in futuro, aggiungi una email al tuo account con il comando: "/email add "' +bad_database_email: 'Il comando /email è utilizzabile solo con un database MySQL o SQLite, riporta questo errore ad un Admin!' recovery_email: '&cHai dimenticato la tua password? Puoi recuperarla eseguendo il comando: "/email recovery "' -usage_captcha: '&cUtilizzo: /captcha ' +usage_captcha: '&cUtilizzo: /captcha THE_CAPTCHA' wrong_captcha: '&cCodice captcha sbagliato, perfavore riprova eseguendo il comando: "/captcha THE_CAPTCHA"' valid_captcha: '&cIl tuo captcha è valido!' kick_forvip: '&cUn utente VIP è entrato mentre il server era pieno!' @@ -47,12 +47,12 @@ usage_email_change: '&fUtilizzo: /email change ' usage_email_recovery: '&fUtilizzo: /email recovery ' new_email_invalid: 'La nuova Email non è valida!' old_email_invalid: 'La vecchia Email non è valida!' -email_invalid: "L'Email non è valida" +email_invalid: 'L''Email non è valida' email_added: 'Email aggiunta correttamente!' email_confirm: 'Conferma la tua Email!' email_changed: 'Email cambiata correttamente!' -email_send: 'Email di recupero inviata al tuo indirizzo!' +email_send: 'Email di recupero inviata al tuo indirizzo email!' email_exists: 'Il tuo account ha già una Email configurata. Se vuoi, puoi cambiarla con il seguente comando:' -country_banned: 'Il tuo paese è bandito su questo server!' +country_banned: 'Il tuo paese è bandito da questo server!' antibot_auto_enabled: 'Il servizio di AntiBot è stato automaticamente abilitato a seguito delle numerose connessioni!' -antibot_auto_disabled: "Il servizio di AntiBot è stato automaticamente disabilitato dopo %m Minuti, sperando che l'attacco sia finito!" +antibot_auto_disabled: "Il servizio di AntiBot è stato automaticamente disabilitato dopo %m Minuti, sperando che l'attacco sia finito!" \ No newline at end of file From 53590cf02918140d965330ebb9ddd32780315c46 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Mon, 6 Jul 2015 02:43:12 +0200 Subject: [PATCH 8/9] Change from flatfile to sqlite by default --- src/main/java/fr/xephi/authme/settings/Settings.java | 4 ++-- src/main/resources/config.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/fr/xephi/authme/settings/Settings.java b/src/main/java/fr/xephi/authme/settings/Settings.java index e9137b18..115405d1 100644 --- a/src/main/java/fr/xephi/authme/settings/Settings.java +++ b/src/main/java/fr/xephi/authme/settings/Settings.java @@ -610,10 +610,10 @@ public final class Settings extends YamlConfiguration { private static DataSourceType getDataSource() { String key = "DataSource.backend"; try { - return DataSource.DataSourceType.valueOf(configFile.getString(key).toUpperCase()); + return DataSource.DataSourceType.valueOf(configFile.getString(key, "sqlite").toUpperCase()); } catch (IllegalArgumentException ex) { ConsoleLogger.showError("Unknown database backend; defaulting to file database"); - return DataSource.DataSourceType.FILE; + return DataSource.DataSourceType.SQLITE; } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index d362a4e6..aac7285b 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -6,7 +6,7 @@ DataSource: # Username about Database Connection Infos mySQLUsername: authme # Can be set to : file, sqlite, mysql - backend: file + backend: sqlite # Column for storing players lastlogins mySQLColumnLastLogin: lastlogin # Database Name, use with converters or as SQLITE database name From e021a32f1fe0902676c04469dbeb5a4a77ba466d Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Mon, 6 Jul 2015 02:43:51 +0200 Subject: [PATCH 9/9] also change message --- src/main/java/fr/xephi/authme/settings/Settings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/fr/xephi/authme/settings/Settings.java b/src/main/java/fr/xephi/authme/settings/Settings.java index 115405d1..2f6af800 100644 --- a/src/main/java/fr/xephi/authme/settings/Settings.java +++ b/src/main/java/fr/xephi/authme/settings/Settings.java @@ -612,7 +612,7 @@ public final class Settings extends YamlConfiguration { try { return DataSource.DataSourceType.valueOf(configFile.getString(key, "sqlite").toUpperCase()); } catch (IllegalArgumentException ex) { - ConsoleLogger.showError("Unknown database backend; defaulting to file database"); + ConsoleLogger.showError("Unknown database backend; defaulting to sqlite database"); return DataSource.DataSourceType.SQLITE; } }