Use injection in and for LimboCache, migrate some legacy settings, remove setGroup from Utils
- New injector method allows to retrieve services if they've already been instantiated -> useful for onDisable() which might be run after aborted initialization - Deprecate various methods that need to be removed
This commit is contained in:
parent
347d7bcf46
commit
d6e1fd5ceb
@ -47,6 +47,7 @@ import fr.xephi.authme.settings.properties.HooksSettings;
|
|||||||
import fr.xephi.authme.settings.properties.PluginSettings;
|
import fr.xephi.authme.settings.properties.PluginSettings;
|
||||||
import fr.xephi.authme.settings.properties.PurgeSettings;
|
import fr.xephi.authme.settings.properties.PurgeSettings;
|
||||||
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
||||||
|
import fr.xephi.authme.settings.properties.SecuritySettings;
|
||||||
import fr.xephi.authme.settings.properties.SettingsFieldRetriever;
|
import fr.xephi.authme.settings.properties.SettingsFieldRetriever;
|
||||||
import fr.xephi.authme.settings.propertymap.PropertyMap;
|
import fr.xephi.authme.settings.propertymap.PropertyMap;
|
||||||
import fr.xephi.authme.task.PurgeTask;
|
import fr.xephi.authme.task.PurgeTask;
|
||||||
@ -113,7 +114,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
public DataManager dataManager;
|
public DataManager dataManager;
|
||||||
/*
|
/*
|
||||||
* Private instances
|
* Private instances
|
||||||
* TODO #432: Move instantiation and management of these services
|
|
||||||
*/
|
*/
|
||||||
// TODO #604: Encapsulate ProtocolLib members
|
// TODO #604: Encapsulate ProtocolLib members
|
||||||
public AuthMeInventoryPacketAdapter inventoryProtector;
|
public AuthMeInventoryPacketAdapter inventoryProtector;
|
||||||
@ -131,12 +131,14 @@ public class AuthMe extends JavaPlugin {
|
|||||||
private SpawnLoader spawnLoader;
|
private SpawnLoader spawnLoader;
|
||||||
private boolean autoPurging;
|
private boolean autoPurging;
|
||||||
private BukkitService bukkitService;
|
private BukkitService bukkitService;
|
||||||
|
private AuthMeServiceInitializer initializer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the plugin's instance.
|
* Get the plugin's instance.
|
||||||
*
|
*
|
||||||
* @return AuthMe
|
* @return AuthMe
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static AuthMe getInstance() {
|
public static AuthMe getInstance() {
|
||||||
return plugin;
|
return plugin;
|
||||||
}
|
}
|
||||||
@ -168,24 +170,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
return pluginBuildNumber;
|
return pluginBuildNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the Messages instance.
|
|
||||||
*
|
|
||||||
* @return Plugin's messages.
|
|
||||||
*/
|
|
||||||
public Messages getMessages() {
|
|
||||||
return messages;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the plugin's NewSetting instance.
|
|
||||||
*
|
|
||||||
* @return NewSetting.
|
|
||||||
*/
|
|
||||||
public NewSetting getSettings() {
|
|
||||||
return newSettings;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get version and build number of the plugin
|
// Get version and build number of the plugin
|
||||||
private void setPluginInfos() {
|
private void setPluginInfos() {
|
||||||
String versionRaw = this.getDescription().getVersion();
|
String versionRaw = this.getDescription().getVersion();
|
||||||
@ -240,7 +224,7 @@ public class AuthMe extends JavaPlugin {
|
|||||||
MigrationService.changePlainTextToSha256(newSettings, database, new SHA256());
|
MigrationService.changePlainTextToSha256(newSettings, database, new SHA256());
|
||||||
|
|
||||||
|
|
||||||
AuthMeServiceInitializer initializer = new AuthMeServiceInitializer("fr.xephi.authme");
|
initializer = new AuthMeServiceInitializer("fr.xephi.authme");
|
||||||
// Register elements of the Bukkit / JavaPlugin environment
|
// Register elements of the Bukkit / JavaPlugin environment
|
||||||
initializer.register(AuthMe.class, this);
|
initializer.register(AuthMe.class, this);
|
||||||
initializer.register(Server.class, getServer());
|
initializer.register(Server.class, getServer());
|
||||||
@ -255,7 +239,11 @@ public class AuthMe extends JavaPlugin {
|
|||||||
|
|
||||||
// Some statically injected things
|
// Some statically injected things
|
||||||
initializer.register(PlayerCache.class, PlayerCache.getInstance());
|
initializer.register(PlayerCache.class, PlayerCache.getInstance());
|
||||||
initializer.register(LimboCache.class, LimboCache.getInstance());
|
|
||||||
|
// Note ljacqu 20160612: Instantiate LimboCache first to make sure it is instantiated
|
||||||
|
// (because sometimes it's used via LimboCache.getInstance())
|
||||||
|
// Once LimboCache#getInstance() no longer exists this can be removed!
|
||||||
|
initializer.get(LimboCache.class);
|
||||||
|
|
||||||
permsMan = initializer.get(PermissionsManager.class);
|
permsMan = initializer.get(PermissionsManager.class);
|
||||||
bukkitService = initializer.get(BukkitService.class);
|
bukkitService = initializer.get(BukkitService.class);
|
||||||
@ -431,7 +419,7 @@ public class AuthMe extends JavaPlugin {
|
|||||||
* Set up the console filter.
|
* Set up the console filter.
|
||||||
*/
|
*/
|
||||||
private void setupConsoleFilter() {
|
private void setupConsoleFilter() {
|
||||||
if (Settings.removePassword) {
|
if (newSettings.getProperty(SecuritySettings.REMOVE_PASSWORD_FROM_CONSOLE)) {
|
||||||
ConsoleFilter filter = new ConsoleFilter();
|
ConsoleFilter filter = new ConsoleFilter();
|
||||||
getLogger().setFilter(filter);
|
getLogger().setFilter(filter);
|
||||||
Bukkit.getLogger().setFilter(filter);
|
Bukkit.getLogger().setFilter(filter);
|
||||||
@ -449,10 +437,13 @@ public class AuthMe extends JavaPlugin {
|
|||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
// Save player data
|
// Save player data
|
||||||
if (bukkitService != null) {
|
BukkitService bukkitService = initializer.getIfAvailable(BukkitService.class);
|
||||||
|
LimboCache limboCache = initializer.getIfAvailable(LimboCache.class);
|
||||||
|
|
||||||
|
if (bukkitService != null && limboCache != null) {
|
||||||
Collection<? extends Player> players = bukkitService.getOnlinePlayers();
|
Collection<? extends Player> players = bukkitService.getOnlinePlayers();
|
||||||
for (Player player : players) {
|
for (Player player : players) {
|
||||||
savePlayer(player);
|
savePlayer(player, limboCache);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -495,8 +486,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
}, "AuthMe-DataSource#close").start();
|
}, "AuthMe-DataSource#close").start();
|
||||||
|
|
||||||
// Close the database
|
|
||||||
|
|
||||||
// Disabled correctly
|
// Disabled correctly
|
||||||
ConsoleLogger.info("AuthMe " + this.getDescription().getVersion() + " disabled!");
|
ConsoleLogger.info("AuthMe " + this.getDescription().getVersion() + " disabled!");
|
||||||
ConsoleLogger.close();
|
ConsoleLogger.close();
|
||||||
@ -614,7 +603,7 @@ public class AuthMe extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Save Player Data
|
// Save Player Data
|
||||||
private void savePlayer(Player player) {
|
private void savePlayer(Player player, LimboCache limboCache) {
|
||||||
if (safeIsNpc(player) || Utils.isUnrestricted(player)) {
|
if (safeIsNpc(player) || Utils.isUnrestricted(player)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -626,8 +615,8 @@ public class AuthMe extends JavaPlugin {
|
|||||||
.location(player.getLocation()).build();
|
.location(player.getLocation()).build();
|
||||||
database.updateQuitLoc(auth);
|
database.updateQuitLoc(auth);
|
||||||
}
|
}
|
||||||
if (LimboCache.getInstance().hasLimboPlayer(name)) {
|
if (limboCache.hasLimboPlayer(name)) {
|
||||||
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
|
LimboPlayer limbo = limboCache.getLimboPlayer(name);
|
||||||
if (!Settings.noTeleport) {
|
if (!Settings.noTeleport) {
|
||||||
player.teleport(limbo.getLoc());
|
player.teleport(limbo.getLoc());
|
||||||
}
|
}
|
||||||
@ -635,7 +624,7 @@ public class AuthMe extends JavaPlugin {
|
|||||||
Utils.addNormal(player, limbo.getGroup());
|
Utils.addNormal(player, limbo.getGroup());
|
||||||
player.setOp(limbo.isOperator());
|
player.setOp(limbo.isOperator());
|
||||||
limbo.getTimeoutTask().cancel();
|
limbo.getTimeoutTask().cancel();
|
||||||
LimboCache.getInstance().deleteLimboPlayer(name);
|
limboCache.deleteLimboPlayer(name);
|
||||||
if (this.playerBackup.doesCacheExist(player)) {
|
if (this.playerBackup.doesCacheExist(player)) {
|
||||||
this.playerBackup.removeCache(player);
|
this.playerBackup.removeCache(player);
|
||||||
}
|
}
|
||||||
@ -713,17 +702,7 @@ public class AuthMe extends JavaPlugin {
|
|||||||
.replace("{COUNTRY}", GeoLiteAPI.getCountryName(ipAddress));
|
.replace("{COUNTRY}", GeoLiteAPI.getCountryName(ipAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isLoggedIp(String name, String ip) {
|
|
||||||
int count = 0;
|
|
||||||
for (Player player : bukkitService.getOnlinePlayers()) {
|
|
||||||
if (ip.equalsIgnoreCase(Utils.getPlayerIp(player))
|
|
||||||
&& database.isLogged(player.getName().toLowerCase())
|
|
||||||
&& !player.getName().equalsIgnoreCase(name)) {
|
|
||||||
++count;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return count >= Settings.getMaxLoginPerIp;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle Bukkit commands.
|
* Handle Bukkit commands.
|
||||||
@ -757,6 +736,24 @@ public class AuthMe extends JavaPlugin {
|
|||||||
// Service getters (deprecated)
|
// Service getters (deprecated)
|
||||||
// Use @Inject fields instead
|
// Use @Inject fields instead
|
||||||
// -------------
|
// -------------
|
||||||
|
/**
|
||||||
|
* @return Plugin's messages.
|
||||||
|
* @deprecated should be used in API classes only (temporarily)
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public Messages getMessages() {
|
||||||
|
return messages;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return NewSetting
|
||||||
|
* @deprecated should be used in API classes only (temporarily)
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public NewSetting getSettings() {
|
||||||
|
return newSettings;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return permission manager
|
* @return permission manager
|
||||||
* @deprecated should be used in API classes only (temporarily)
|
* @deprecated should be used in API classes only (temporarily)
|
||||||
|
|||||||
@ -1,45 +1,47 @@
|
|||||||
package fr.xephi.authme.cache.limbo;
|
package fr.xephi.authme.cache.limbo;
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
|
||||||
import fr.xephi.authme.cache.backup.JsonCache;
|
import fr.xephi.authme.cache.backup.JsonCache;
|
||||||
import fr.xephi.authme.cache.backup.PlayerData;
|
import fr.xephi.authme.cache.backup.PlayerData;
|
||||||
import fr.xephi.authme.permission.PermissionsManager;
|
import fr.xephi.authme.permission.PermissionsManager;
|
||||||
|
import fr.xephi.authme.settings.SpawnLoader;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Manages all {@link LimboPlayer} instances.
|
||||||
*/
|
*/
|
||||||
public class LimboCache {
|
public class LimboCache {
|
||||||
|
|
||||||
|
@Deprecated // TODO ljacqu 20160612: Remove this field
|
||||||
private volatile static LimboCache singleton;
|
private volatile static LimboCache singleton;
|
||||||
private final ConcurrentHashMap<String, LimboPlayer> cache;
|
|
||||||
private final AuthMe plugin;
|
|
||||||
private final JsonCache jsonCache;
|
|
||||||
|
|
||||||
/**
|
private final ConcurrentHashMap<String, LimboPlayer> cache = new ConcurrentHashMap<>();
|
||||||
* Constructor for LimboCache.
|
private final JsonCache jsonCache = new JsonCache();
|
||||||
*
|
|
||||||
* @param plugin AuthMe
|
@Inject
|
||||||
*/
|
private PermissionsManager permissionsManager;
|
||||||
private LimboCache(AuthMe plugin) {
|
@Inject
|
||||||
this.plugin = plugin;
|
private SpawnLoader spawnLoader;
|
||||||
this.cache = new ConcurrentHashMap<>();
|
|
||||||
this.jsonCache = new JsonCache();
|
@Inject
|
||||||
|
LimboCache(PermissionsManager permissionsManager, SpawnLoader spawnLoader) {
|
||||||
|
this.permissionsManager = permissionsManager;
|
||||||
|
this.spawnLoader = spawnLoader;
|
||||||
|
|
||||||
|
singleton = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method getInstance.
|
* @return LimboCache instance
|
||||||
*
|
* @deprecated Inject the instance properly instead
|
||||||
* @return LimboCache
|
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static LimboCache getInstance() {
|
public static LimboCache getInstance() {
|
||||||
if (singleton == null) {
|
|
||||||
singleton = new LimboCache(AuthMe.getInstance());
|
|
||||||
}
|
|
||||||
return singleton;
|
return singleton;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,13 +52,12 @@ public class LimboCache {
|
|||||||
*/
|
*/
|
||||||
public void addLimboPlayer(Player player) {
|
public void addLimboPlayer(Player player) {
|
||||||
String name = player.getName().toLowerCase();
|
String name = player.getName().toLowerCase();
|
||||||
Location loc = player.getLocation();
|
Location location = player.isDead() ? spawnLoader.getSpawnLocation(player) : player.getLocation();
|
||||||
boolean operator = player.isOp();
|
boolean operator = player.isOp();
|
||||||
boolean flyEnabled = player.getAllowFlight();
|
boolean flyEnabled = player.getAllowFlight();
|
||||||
String playerGroup = "";
|
String playerGroup = "";
|
||||||
PermissionsManager permsMan = plugin.getPermissionsManager();
|
if (permissionsManager.hasGroupSupport()) {
|
||||||
if (permsMan.hasGroupSupport()) {
|
playerGroup = permissionsManager.getPrimaryGroup(player);
|
||||||
playerGroup = permsMan.getPrimaryGroup(player);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (jsonCache.doesCacheExist(player)) {
|
if (jsonCache.doesCacheExist(player)) {
|
||||||
@ -68,11 +69,8 @@ public class LimboCache {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.isDead()) {
|
|
||||||
loc = plugin.getSpawnLocation(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
cache.put(name, new LimboPlayer(name, loc, operator, playerGroup, flyEnabled));
|
cache.put(name, new LimboPlayer(name, location, operator, playerGroup, flyEnabled));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -8,6 +8,8 @@ import fr.xephi.authme.command.CommandService;
|
|||||||
import fr.xephi.authme.command.ExecutableCommand;
|
import fr.xephi.authme.command.ExecutableCommand;
|
||||||
import fr.xephi.authme.datasource.DataSource;
|
import fr.xephi.authme.datasource.DataSource;
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
|
import fr.xephi.authme.permission.AuthGroupType;
|
||||||
|
import fr.xephi.authme.permission.PermissionsManager;
|
||||||
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
||||||
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
||||||
import fr.xephi.authme.task.MessageTask;
|
import fr.xephi.authme.task.MessageTask;
|
||||||
@ -48,6 +50,9 @@ public class UnregisterAdminCommand implements ExecutableCommand {
|
|||||||
@Inject
|
@Inject
|
||||||
private LimboCache limboCache;
|
private LimboCache limboCache;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private PermissionsManager permissionsManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executeCommand(final CommandSender sender, List<String> arguments) {
|
public void executeCommand(final CommandSender sender, List<String> arguments) {
|
||||||
// Get the player name
|
// Get the player name
|
||||||
@ -69,7 +74,7 @@ public class UnregisterAdminCommand implements ExecutableCommand {
|
|||||||
// Unregister the player
|
// Unregister the player
|
||||||
Player target = bukkitService.getPlayerExact(playerNameLowerCase);
|
Player target = bukkitService.getPlayerExact(playerNameLowerCase);
|
||||||
playerCache.removePlayer(playerNameLowerCase);
|
playerCache.removePlayer(playerNameLowerCase);
|
||||||
Utils.setGroup(target, Utils.GroupType.UNREGISTERED);
|
permissionsManager.setGroup(target, AuthGroupType.UNREGISTERED);
|
||||||
if (target != null && target.isOnline()) {
|
if (target != null && target.isOnline()) {
|
||||||
if (commandService.getProperty(RegistrationSettings.FORCE)) {
|
if (commandService.getProperty(RegistrationSettings.FORCE)) {
|
||||||
applyUnregisteredEffectsAndTasks(target);
|
applyUnregisteredEffectsAndTasks(target);
|
||||||
|
|||||||
@ -96,8 +96,22 @@ public class AuthMeServiceInitializer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an instance of the given class or the value associated with an annotation,
|
* Returns an instance of the given class if available. This simply returns the instance if present and
|
||||||
* by retrieving it or by instantiating it if not yet present.
|
* otherwise {@code null}. Calling this method will not instantiate anything.
|
||||||
|
*
|
||||||
|
* @param clazz the class to retrieve the instance for
|
||||||
|
* @param <T> the class' type
|
||||||
|
* @return instance or null if none available
|
||||||
|
*/
|
||||||
|
public <T> T getIfAvailable(Class<T> clazz) {
|
||||||
|
if (Annotation.class.isAssignableFrom(clazz)) {
|
||||||
|
throw new UnsupportedOperationException("Annotations may not be retrieved in this way!");
|
||||||
|
}
|
||||||
|
return clazz.cast(objects.get(clazz));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an instance of the given class by retrieving it or by instantiating it if not yet present.
|
||||||
*
|
*
|
||||||
* @param clazz the class to retrieve a value for
|
* @param clazz the class to retrieve a value for
|
||||||
* @param traversedClasses the list of traversed classes
|
* @param traversedClasses the list of traversed classes
|
||||||
|
|||||||
20
src/main/java/fr/xephi/authme/permission/AuthGroupType.java
Normal file
20
src/main/java/fr/xephi/authme/permission/AuthGroupType.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package fr.xephi.authme.permission;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents the group type based on the user's auth status.
|
||||||
|
*/
|
||||||
|
public enum AuthGroupType {
|
||||||
|
|
||||||
|
/** Player does not have an account. */
|
||||||
|
UNREGISTERED,
|
||||||
|
|
||||||
|
/** Registered? */
|
||||||
|
REGISTERED, // TODO #761: Remove this or the NOT_LOGGED_IN one
|
||||||
|
|
||||||
|
/** Player is registered and not logged in. */
|
||||||
|
NOT_LOGGED_IN,
|
||||||
|
|
||||||
|
/** Player is logged in. */
|
||||||
|
LOGGED_IN
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,6 +1,8 @@
|
|||||||
package fr.xephi.authme.permission;
|
package fr.xephi.authme.permission;
|
||||||
|
|
||||||
import fr.xephi.authme.ConsoleLogger;
|
import fr.xephi.authme.ConsoleLogger;
|
||||||
|
import fr.xephi.authme.cache.limbo.LimboCache;
|
||||||
|
import fr.xephi.authme.cache.limbo.LimboPlayer;
|
||||||
import fr.xephi.authme.permission.handlers.BPermissionsHandler;
|
import fr.xephi.authme.permission.handlers.BPermissionsHandler;
|
||||||
import fr.xephi.authme.permission.handlers.GroupManagerHandler;
|
import fr.xephi.authme.permission.handlers.GroupManagerHandler;
|
||||||
import fr.xephi.authme.permission.handlers.PermissionHandler;
|
import fr.xephi.authme.permission.handlers.PermissionHandler;
|
||||||
@ -8,6 +10,7 @@ import fr.xephi.authme.permission.handlers.PermissionsBukkitHandler;
|
|||||||
import fr.xephi.authme.permission.handlers.PermissionsExHandler;
|
import fr.xephi.authme.permission.handlers.PermissionsExHandler;
|
||||||
import fr.xephi.authme.permission.handlers.VaultHandler;
|
import fr.xephi.authme.permission.handlers.VaultHandler;
|
||||||
import fr.xephi.authme.permission.handlers.ZPermissionsHandler;
|
import fr.xephi.authme.permission.handlers.ZPermissionsHandler;
|
||||||
|
import fr.xephi.authme.settings.Settings;
|
||||||
import net.milkbowl.vault.permission.Permission;
|
import net.milkbowl.vault.permission.Permission;
|
||||||
import org.anjocaido.groupmanager.GroupManager;
|
import org.anjocaido.groupmanager.GroupManager;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -23,6 +26,7 @@ import ru.tehkode.permissions.bukkit.PermissionsEx;
|
|||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -349,6 +353,61 @@ public class PermissionsManager {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the group of a player, by its AuthMe group type.
|
||||||
|
*
|
||||||
|
* @param player The player.
|
||||||
|
* @param group The group type.
|
||||||
|
*
|
||||||
|
* @return True if succeeded, false otherwise. False is also returned if groups aren't supported
|
||||||
|
* with the current permissions system.
|
||||||
|
*/
|
||||||
|
public boolean setGroup(Player player, AuthGroupType group) {
|
||||||
|
// Check whether the permissions check is enabled
|
||||||
|
if (!isEnabled() || !Settings.isPermissionCheckEnabled) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make sure group support is available
|
||||||
|
if (!handler.hasGroupSupport()) {
|
||||||
|
ConsoleLogger.showError("The current permissions system doesn't have group support, unable to set group!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (group) {
|
||||||
|
case UNREGISTERED:
|
||||||
|
// Remove the other group type groups, set the current group
|
||||||
|
removeGroups(player, Arrays.asList(Settings.getRegisteredGroup, Settings.getUnloggedinGroup));
|
||||||
|
return addGroup(player, Settings.unRegisteredGroup);
|
||||||
|
|
||||||
|
case REGISTERED:
|
||||||
|
// Remove the other group type groups, set the current group
|
||||||
|
removeGroups(player, Arrays.asList(Settings.unRegisteredGroup, Settings.getUnloggedinGroup));
|
||||||
|
return addGroup(player, Settings.getRegisteredGroup);
|
||||||
|
|
||||||
|
case NOT_LOGGED_IN:
|
||||||
|
// Remove the other group type groups, set the current group
|
||||||
|
removeGroups(player, Arrays.asList(Settings.unRegisteredGroup, Settings.getRegisteredGroup));
|
||||||
|
return addGroup(player, Settings.getUnloggedinGroup);
|
||||||
|
|
||||||
|
case LOGGED_IN:
|
||||||
|
// Get the limbo player data
|
||||||
|
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName().toLowerCase());
|
||||||
|
if (limbo == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Get the players group
|
||||||
|
String realGroup = limbo.getGroup();
|
||||||
|
|
||||||
|
// Remove the other group types groups, set the real group
|
||||||
|
removeGroups(player, Arrays.asList(Settings.unRegisteredGroup, Settings.getRegisteredGroup, Settings.getUnloggedinGroup));
|
||||||
|
return addGroup(player, realGroup);
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the permission group of a player, if supported.
|
* Remove the permission group of a player, if supported.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package fr.xephi.authme.process;
|
|||||||
|
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
import fr.xephi.authme.output.Messages;
|
import fr.xephi.authme.output.Messages;
|
||||||
|
import fr.xephi.authme.permission.AuthGroupType;
|
||||||
import fr.xephi.authme.permission.PermissionNode;
|
import fr.xephi.authme.permission.PermissionNode;
|
||||||
import fr.xephi.authme.permission.PermissionsManager;
|
import fr.xephi.authme.permission.PermissionsManager;
|
||||||
import fr.xephi.authme.settings.NewSetting;
|
import fr.xephi.authme.settings.NewSetting;
|
||||||
@ -102,4 +103,8 @@ public class ProcessService {
|
|||||||
return permissionsManager.hasPermission(player, node);
|
return permissionsManager.hasPermission(player, node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean setGroup(Player player, AuthGroupType group) {
|
||||||
|
return permissionsManager.setGroup(player, group);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,10 +10,10 @@ import fr.xephi.authme.datasource.DataSource;
|
|||||||
import fr.xephi.authme.events.ProtectInventoryEvent;
|
import fr.xephi.authme.events.ProtectInventoryEvent;
|
||||||
import fr.xephi.authme.hooks.PluginHooks;
|
import fr.xephi.authme.hooks.PluginHooks;
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
|
import fr.xephi.authme.permission.AuthGroupType;
|
||||||
import fr.xephi.authme.permission.PlayerStatePermission;
|
import fr.xephi.authme.permission.PlayerStatePermission;
|
||||||
import fr.xephi.authme.process.AsynchronousProcess;
|
import fr.xephi.authme.process.AsynchronousProcess;
|
||||||
import fr.xephi.authme.process.ProcessService;
|
import fr.xephi.authme.process.ProcessService;
|
||||||
import fr.xephi.authme.util.TeleportationService;
|
|
||||||
import fr.xephi.authme.settings.properties.HooksSettings;
|
import fr.xephi.authme.settings.properties.HooksSettings;
|
||||||
import fr.xephi.authme.settings.properties.PluginSettings;
|
import fr.xephi.authme.settings.properties.PluginSettings;
|
||||||
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
||||||
@ -22,8 +22,8 @@ import fr.xephi.authme.settings.properties.SecuritySettings;
|
|||||||
import fr.xephi.authme.task.MessageTask;
|
import fr.xephi.authme.task.MessageTask;
|
||||||
import fr.xephi.authme.task.TimeoutTask;
|
import fr.xephi.authme.task.TimeoutTask;
|
||||||
import fr.xephi.authme.util.BukkitService;
|
import fr.xephi.authme.util.BukkitService;
|
||||||
|
import fr.xephi.authme.util.TeleportationService;
|
||||||
import fr.xephi.authme.util.Utils;
|
import fr.xephi.authme.util.Utils;
|
||||||
import fr.xephi.authme.util.Utils.GroupType;
|
|
||||||
import org.apache.commons.lang.reflect.MethodUtils;
|
import org.apache.commons.lang.reflect.MethodUtils;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
@ -35,6 +35,7 @@ import org.bukkit.scheduler.BukkitTask;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import static fr.xephi.authme.settings.properties.RestrictionSettings.PROTECT_INVENTORY_BEFORE_LOGIN;
|
import static fr.xephi.authme.settings.properties.RestrictionSettings.PROTECT_INVENTORY_BEFORE_LOGIN;
|
||||||
|
import static fr.xephi.authme.util.BukkitService.TICKS_PER_SECOND;
|
||||||
|
|
||||||
|
|
||||||
public class AsynchronousJoin implements AsynchronousProcess {
|
public class AsynchronousJoin implements AsynchronousProcess {
|
||||||
@ -116,7 +117,7 @@ public class AsynchronousJoin implements AsynchronousProcess {
|
|||||||
final boolean isAuthAvailable = database.isAuthAvailable(name);
|
final boolean isAuthAvailable = database.isAuthAvailable(name);
|
||||||
|
|
||||||
if (isAuthAvailable) {
|
if (isAuthAvailable) {
|
||||||
Utils.setGroup(player, GroupType.NOTLOGGEDIN);
|
service.setGroup(player, AuthGroupType.NOT_LOGGED_IN);
|
||||||
teleportationService.teleportOnJoin(player);
|
teleportationService.teleportOnJoin(player);
|
||||||
limboCache.updateLimboPlayer(player);
|
limboCache.updateLimboPlayer(player);
|
||||||
|
|
||||||
@ -153,7 +154,7 @@ public class AsynchronousJoin implements AsynchronousProcess {
|
|||||||
// Not Registered
|
// Not Registered
|
||||||
|
|
||||||
// Groups logic
|
// Groups logic
|
||||||
Utils.setGroup(player, GroupType.UNREGISTERED);
|
service.setGroup(player, AuthGroupType.UNREGISTERED);
|
||||||
|
|
||||||
// Skip if registration is optional
|
// Skip if registration is optional
|
||||||
if (!service.getProperty(RegistrationSettings.FORCE)) {
|
if (!service.getProperty(RegistrationSettings.FORCE)) {
|
||||||
@ -168,7 +169,7 @@ public class AsynchronousJoin implements AsynchronousProcess {
|
|||||||
limboCache.addLimboPlayer(player);
|
limboCache.addLimboPlayer(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
final int registrationTimeout = service.getProperty(RestrictionSettings.TIMEOUT) * 20;
|
final int registrationTimeout = service.getProperty(RestrictionSettings.TIMEOUT) * TICKS_PER_SECOND;
|
||||||
|
|
||||||
bukkitService.scheduleSyncDelayedTask(new Runnable() {
|
bukkitService.scheduleSyncDelayedTask(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -123,7 +123,7 @@ public class AsynchronousLogin implements AsynchronousProcess {
|
|||||||
if (service.getProperty(RestrictionSettings.MAX_LOGIN_PER_IP) > 0
|
if (service.getProperty(RestrictionSettings.MAX_LOGIN_PER_IP) > 0
|
||||||
&& !permissionsManager.hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS)
|
&& !permissionsManager.hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS)
|
||||||
&& !"127.0.0.1".equalsIgnoreCase(ip) && !"localhost".equalsIgnoreCase(ip)) {
|
&& !"127.0.0.1".equalsIgnoreCase(ip) && !"localhost".equalsIgnoreCase(ip)) {
|
||||||
if (plugin.isLoggedIp(name, ip)) {
|
if (isLoggedIp(name, ip)) {
|
||||||
service.send(player, MessageKey.ALREADY_LOGGED_IN_ERROR);
|
service.send(player, MessageKey.ALREADY_LOGGED_IN_ERROR);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -254,4 +254,16 @@ public class AsynchronousLogin implements AsynchronousProcess {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isLoggedIp(String name, String ip) {
|
||||||
|
int count = 0;
|
||||||
|
for (Player player : bukkitService.getOnlinePlayers()) {
|
||||||
|
if (ip.equalsIgnoreCase(Utils.getPlayerIp(player))
|
||||||
|
&& database.isLogged(player.getName().toLowerCase())
|
||||||
|
&& !player.getName().equalsIgnoreCase(name)) {
|
||||||
|
++count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count >= service.getProperty(RestrictionSettings.MAX_LOGIN_PER_IP);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,15 +10,14 @@ import fr.xephi.authme.datasource.DataSource;
|
|||||||
import fr.xephi.authme.events.LoginEvent;
|
import fr.xephi.authme.events.LoginEvent;
|
||||||
import fr.xephi.authme.events.RestoreInventoryEvent;
|
import fr.xephi.authme.events.RestoreInventoryEvent;
|
||||||
import fr.xephi.authme.listener.AuthMePlayerListener;
|
import fr.xephi.authme.listener.AuthMePlayerListener;
|
||||||
|
import fr.xephi.authme.permission.AuthGroupType;
|
||||||
import fr.xephi.authme.process.ProcessService;
|
import fr.xephi.authme.process.ProcessService;
|
||||||
import fr.xephi.authme.process.SynchronousProcess;
|
import fr.xephi.authme.process.SynchronousProcess;
|
||||||
import fr.xephi.authme.util.TeleportationService;
|
|
||||||
import fr.xephi.authme.settings.properties.HooksSettings;
|
import fr.xephi.authme.settings.properties.HooksSettings;
|
||||||
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
||||||
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
||||||
import fr.xephi.authme.util.BukkitService;
|
import fr.xephi.authme.util.BukkitService;
|
||||||
import fr.xephi.authme.util.Utils;
|
import fr.xephi.authme.util.TeleportationService;
|
||||||
import fr.xephi.authme.util.Utils.GroupType;
|
|
||||||
import org.apache.commons.lang.reflect.MethodUtils;
|
import org.apache.commons.lang.reflect.MethodUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
@ -95,7 +94,7 @@ public class ProcessSyncPlayerLogin implements SynchronousProcess {
|
|||||||
if (limbo != null) {
|
if (limbo != null) {
|
||||||
// Restore Op state and Permission Group
|
// Restore Op state and Permission Group
|
||||||
restoreOpState(player, limbo);
|
restoreOpState(player, limbo);
|
||||||
Utils.setGroup(player, GroupType.LOGGEDIN);
|
service.setGroup(player, AuthGroupType.LOGGED_IN);
|
||||||
|
|
||||||
teleportationService.teleportOnLogin(player, auth, limbo);
|
teleportationService.teleportOnLogin(player, auth, limbo);
|
||||||
|
|
||||||
|
|||||||
@ -5,12 +5,12 @@ import fr.xephi.authme.cache.auth.PlayerCache;
|
|||||||
import fr.xephi.authme.cache.limbo.LimboCache;
|
import fr.xephi.authme.cache.limbo.LimboCache;
|
||||||
import fr.xephi.authme.datasource.DataSource;
|
import fr.xephi.authme.datasource.DataSource;
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
|
import fr.xephi.authme.permission.AuthGroupType;
|
||||||
import fr.xephi.authme.process.AsynchronousProcess;
|
import fr.xephi.authme.process.AsynchronousProcess;
|
||||||
import fr.xephi.authme.process.ProcessService;
|
import fr.xephi.authme.process.ProcessService;
|
||||||
import fr.xephi.authme.process.SyncProcessManager;
|
import fr.xephi.authme.process.SyncProcessManager;
|
||||||
import fr.xephi.authme.util.BukkitService;
|
import fr.xephi.authme.util.BukkitService;
|
||||||
import fr.xephi.authme.util.Utils;
|
import fr.xephi.authme.util.Utils;
|
||||||
import fr.xephi.authme.util.Utils.GroupType;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@ -63,7 +63,7 @@ public class AsynchronousLogout implements AsynchronousProcess {
|
|||||||
limboCache.deleteLimboPlayer(name);
|
limboCache.deleteLimboPlayer(name);
|
||||||
}
|
}
|
||||||
limboCache.addLimboPlayer(player);
|
limboCache.addLimboPlayer(player);
|
||||||
Utils.setGroup(player, GroupType.NOTLOGGEDIN);
|
service.setGroup(player, AuthGroupType.NOT_LOGGED_IN);
|
||||||
syncProcessManager.processSyncPlayerLogout(player);
|
syncProcessManager.processSyncPlayerLogout(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,13 +10,12 @@ import fr.xephi.authme.output.MessageKey;
|
|||||||
import fr.xephi.authme.process.ProcessService;
|
import fr.xephi.authme.process.ProcessService;
|
||||||
import fr.xephi.authme.process.SynchronousProcess;
|
import fr.xephi.authme.process.SynchronousProcess;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
|
import fr.xephi.authme.settings.properties.HooksSettings;
|
||||||
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
||||||
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
||||||
import fr.xephi.authme.task.MessageTask;
|
import fr.xephi.authme.task.MessageTask;
|
||||||
import fr.xephi.authme.task.TimeoutTask;
|
import fr.xephi.authme.task.TimeoutTask;
|
||||||
import fr.xephi.authme.util.BukkitService;
|
import fr.xephi.authme.util.BukkitService;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
@ -53,7 +52,7 @@ public class ProcessSynchronousPlayerLogout implements SynchronousProcess {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void restoreSpeedEffect(Player player) {
|
private void restoreSpeedEffect(Player player) {
|
||||||
if (Settings.isRemoveSpeedEnabled) {
|
if (service.getProperty(RestrictionSettings.REMOVE_SPEED)) {
|
||||||
player.setWalkSpeed(0.0F);
|
player.setWalkSpeed(0.0F);
|
||||||
player.setFlySpeed(0.0F);
|
player.setFlySpeed(0.0F);
|
||||||
}
|
}
|
||||||
@ -86,8 +85,8 @@ public class ProcessSynchronousPlayerLogout implements SynchronousProcess {
|
|||||||
player.setOp(false);
|
player.setOp(false);
|
||||||
restoreSpeedEffect(player);
|
restoreSpeedEffect(player);
|
||||||
// Player is now logout... Time to fire event !
|
// Player is now logout... Time to fire event !
|
||||||
Bukkit.getServer().getPluginManager().callEvent(new LogoutEvent(player));
|
bukkitService.callEvent(new LogoutEvent(player));
|
||||||
if (Settings.bungee) {
|
if (service.getProperty(HooksSettings.BUNGEECORD)) {
|
||||||
sendBungeeMessage(player);
|
sendBungeeMessage(player);
|
||||||
}
|
}
|
||||||
service.send(player, MessageKey.LOGOUT_SUCCESS);
|
service.send(player, MessageKey.LOGOUT_SUCCESS);
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import fr.xephi.authme.ConsoleLogger;
|
|||||||
import fr.xephi.authme.cache.limbo.LimboCache;
|
import fr.xephi.authme.cache.limbo.LimboCache;
|
||||||
import fr.xephi.authme.cache.limbo.LimboPlayer;
|
import fr.xephi.authme.cache.limbo.LimboPlayer;
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
|
import fr.xephi.authme.permission.AuthGroupType;
|
||||||
import fr.xephi.authme.process.ProcessService;
|
import fr.xephi.authme.process.ProcessService;
|
||||||
import fr.xephi.authme.process.SynchronousProcess;
|
import fr.xephi.authme.process.SynchronousProcess;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
@ -43,7 +44,7 @@ public class ProcessSyncEmailRegister implements SynchronousProcess {
|
|||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName().toLowerCase();
|
||||||
LimboPlayer limbo = limboCache.getLimboPlayer(name);
|
LimboPlayer limbo = limboCache.getLimboPlayer(name);
|
||||||
if (!Settings.getRegisteredGroup.isEmpty()) {
|
if (!Settings.getRegisteredGroup.isEmpty()) {
|
||||||
Utils.setGroup(player, Utils.GroupType.REGISTERED);
|
service.setGroup(player, AuthGroupType.REGISTERED);
|
||||||
}
|
}
|
||||||
service.send(player, MessageKey.ACCOUNT_NOT_ACTIVATED);
|
service.send(player, MessageKey.ACCOUNT_NOT_ACTIVATED);
|
||||||
int time = service.getProperty(RestrictionSettings.TIMEOUT) * TICKS_PER_SECOND;
|
int time = service.getProperty(RestrictionSettings.TIMEOUT) * TICKS_PER_SECOND;
|
||||||
|
|||||||
@ -9,8 +9,9 @@ import fr.xephi.authme.cache.limbo.LimboPlayer;
|
|||||||
import fr.xephi.authme.events.LoginEvent;
|
import fr.xephi.authme.events.LoginEvent;
|
||||||
import fr.xephi.authme.events.RestoreInventoryEvent;
|
import fr.xephi.authme.events.RestoreInventoryEvent;
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
import fr.xephi.authme.process.SynchronousProcess;
|
import fr.xephi.authme.permission.AuthGroupType;
|
||||||
import fr.xephi.authme.process.ProcessService;
|
import fr.xephi.authme.process.ProcessService;
|
||||||
|
import fr.xephi.authme.process.SynchronousProcess;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
import fr.xephi.authme.settings.properties.EmailSettings;
|
import fr.xephi.authme.settings.properties.EmailSettings;
|
||||||
import fr.xephi.authme.settings.properties.HooksSettings;
|
import fr.xephi.authme.settings.properties.HooksSettings;
|
||||||
@ -44,6 +45,9 @@ public class ProcessSyncPasswordRegister implements SynchronousProcess {
|
|||||||
@Inject
|
@Inject
|
||||||
private BukkitService bukkitService;
|
private BukkitService bukkitService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private LimboCache limboCache;
|
||||||
|
|
||||||
ProcessSyncPasswordRegister() { }
|
ProcessSyncPasswordRegister() { }
|
||||||
|
|
||||||
private void sendBungeeMessage(Player player) {
|
private void sendBungeeMessage(Player player) {
|
||||||
@ -73,18 +77,17 @@ public class ProcessSyncPasswordRegister implements SynchronousProcess {
|
|||||||
private void requestLogin(Player player) {
|
private void requestLogin(Player player) {
|
||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName().toLowerCase();
|
||||||
Utils.teleportToSpawn(player);
|
Utils.teleportToSpawn(player);
|
||||||
LimboCache cache = LimboCache.getInstance();
|
limboCache.updateLimboPlayer(player);
|
||||||
cache.updateLimboPlayer(player);
|
|
||||||
int delay = service.getProperty(RestrictionSettings.TIMEOUT) * TICKS_PER_SECOND;
|
int delay = service.getProperty(RestrictionSettings.TIMEOUT) * TICKS_PER_SECOND;
|
||||||
int interval = service.getProperty(RegistrationSettings.MESSAGE_INTERVAL);
|
int interval = service.getProperty(RegistrationSettings.MESSAGE_INTERVAL);
|
||||||
BukkitTask task;
|
BukkitTask task;
|
||||||
if (delay != 0) {
|
if (delay != 0) {
|
||||||
task = bukkitService.runTaskLater(new TimeoutTask(plugin, name, player), delay);
|
task = bukkitService.runTaskLater(new TimeoutTask(plugin, name, player), delay);
|
||||||
cache.getLimboPlayer(name).setTimeoutTask(task);
|
limboCache.getLimboPlayer(name).setTimeoutTask(task);
|
||||||
}
|
}
|
||||||
task = bukkitService.runTask(new MessageTask(bukkitService, plugin.getMessages(),
|
task = bukkitService.runTask(new MessageTask(bukkitService, plugin.getMessages(),
|
||||||
name, MessageKey.LOGIN_MESSAGE, interval));
|
name, MessageKey.LOGIN_MESSAGE, interval));
|
||||||
cache.getLimboPlayer(name).setMessageTask(task);
|
limboCache.getLimboPlayer(name).setMessageTask(task);
|
||||||
if (player.isInsideVehicle() && player.getVehicle() != null) {
|
if (player.isInsideVehicle() && player.getVehicle() != null) {
|
||||||
player.getVehicle().eject();
|
player.getVehicle().eject();
|
||||||
}
|
}
|
||||||
@ -92,7 +95,7 @@ public class ProcessSyncPasswordRegister implements SynchronousProcess {
|
|||||||
|
|
||||||
public void processPasswordRegister(Player player) {
|
public void processPasswordRegister(Player player) {
|
||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName().toLowerCase();
|
||||||
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
|
LimboPlayer limbo = limboCache.getLimboPlayer(name);
|
||||||
if (limbo != null) {
|
if (limbo != null) {
|
||||||
if (service.getProperty(RestrictionSettings.HIDE_TABLIST_BEFORE_LOGIN) && plugin.tablistHider != null) {
|
if (service.getProperty(RestrictionSettings.HIDE_TABLIST_BEFORE_LOGIN) && plugin.tablistHider != null) {
|
||||||
plugin.tablistHider.sendTablist(player);
|
plugin.tablistHider.sendTablist(player);
|
||||||
@ -108,11 +111,11 @@ public class ProcessSyncPasswordRegister implements SynchronousProcess {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LimboCache.getInstance().deleteLimboPlayer(name);
|
limboCache.deleteLimboPlayer(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Settings.getRegisteredGroup.isEmpty()) {
|
if (!Settings.getRegisteredGroup.isEmpty()) {
|
||||||
Utils.setGroup(player, Utils.GroupType.REGISTERED);
|
service.setGroup(player, AuthGroupType.REGISTERED);
|
||||||
}
|
}
|
||||||
|
|
||||||
service.send(player, MessageKey.REGISTER_SUCCESS);
|
service.send(player, MessageKey.REGISTER_SUCCESS);
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import fr.xephi.authme.cache.limbo.LimboCache;
|
|||||||
import fr.xephi.authme.cache.limbo.LimboPlayer;
|
import fr.xephi.authme.cache.limbo.LimboPlayer;
|
||||||
import fr.xephi.authme.datasource.DataSource;
|
import fr.xephi.authme.datasource.DataSource;
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
|
import fr.xephi.authme.permission.AuthGroupType;
|
||||||
import fr.xephi.authme.process.AsynchronousProcess;
|
import fr.xephi.authme.process.AsynchronousProcess;
|
||||||
import fr.xephi.authme.process.ProcessService;
|
import fr.xephi.authme.process.ProcessService;
|
||||||
import fr.xephi.authme.security.PasswordSecurity;
|
import fr.xephi.authme.security.PasswordSecurity;
|
||||||
@ -18,7 +19,6 @@ import fr.xephi.authme.task.MessageTask;
|
|||||||
import fr.xephi.authme.task.TimeoutTask;
|
import fr.xephi.authme.task.TimeoutTask;
|
||||||
import fr.xephi.authme.util.BukkitService;
|
import fr.xephi.authme.util.BukkitService;
|
||||||
import fr.xephi.authme.util.Utils;
|
import fr.xephi.authme.util.Utils;
|
||||||
import fr.xephi.authme.util.Utils.GroupType;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
@ -62,12 +62,12 @@ public class AsynchronousUnregister implements AsynchronousProcess {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int timeOut = service.getProperty(RestrictionSettings.TIMEOUT) * TICKS_PER_SECOND;
|
int timeOut = service.getProperty(RestrictionSettings.TIMEOUT) * TICKS_PER_SECOND;
|
||||||
if (Settings.isForcedRegistrationEnabled) {
|
if (service.getProperty(RegistrationSettings.FORCE)) {
|
||||||
Utils.teleportToSpawn(player);
|
Utils.teleportToSpawn(player);
|
||||||
player.saveData();
|
player.saveData();
|
||||||
playerCache.removePlayer(player.getName().toLowerCase());
|
playerCache.removePlayer(player.getName().toLowerCase());
|
||||||
if (!Settings.getRegisteredGroup.isEmpty()) {
|
if (!Settings.getRegisteredGroup.isEmpty()) {
|
||||||
Utils.setGroup(player, GroupType.UNREGISTERED);
|
service.setGroup(player, AuthGroupType.UNREGISTERED);
|
||||||
}
|
}
|
||||||
limboCache.addLimboPlayer(player);
|
limboCache.addLimboPlayer(player);
|
||||||
LimboPlayer limboPlayer = limboCache.getLimboPlayer(name);
|
LimboPlayer limboPlayer = limboCache.getLimboPlayer(name);
|
||||||
@ -83,7 +83,7 @@ public class AsynchronousUnregister implements AsynchronousProcess {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!Settings.unRegisteredGroup.isEmpty()) {
|
if (!Settings.unRegisteredGroup.isEmpty()) {
|
||||||
Utils.setGroup(player, Utils.GroupType.UNREGISTERED);
|
service.setGroup(player, AuthGroupType.UNREGISTERED);
|
||||||
}
|
}
|
||||||
playerCache.removePlayer(name);
|
playerCache.removePlayer(name);
|
||||||
|
|
||||||
|
|||||||
@ -14,22 +14,18 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Old settings manager. See {@link NewSetting} for the new manager.
|
* Old settings manager. See {@link NewSetting} for the new manager.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public final class Settings {
|
public final class Settings {
|
||||||
|
|
||||||
public static List<String> getUnrestrictedName;
|
public static List<String> getUnrestrictedName;
|
||||||
public static List<String> getForcedWorlds;
|
|
||||||
public static boolean isPermissionCheckEnabled;
|
public static boolean isPermissionCheckEnabled;
|
||||||
public static boolean isForcedRegistrationEnabled;
|
|
||||||
public static boolean isTeleportToSpawnEnabled;
|
public static boolean isTeleportToSpawnEnabled;
|
||||||
public static boolean isSessionsEnabled;
|
public static boolean isSessionsEnabled;
|
||||||
public static boolean isAllowRestrictedIp;
|
public static boolean isAllowRestrictedIp;
|
||||||
public static boolean isForceSpawnLocOnJoinEnabled;
|
|
||||||
public static boolean isSaveQuitLocationEnabled;
|
public static boolean isSaveQuitLocationEnabled;
|
||||||
public static boolean protectInventoryBeforeLogInEnabled;
|
public static boolean protectInventoryBeforeLogInEnabled;
|
||||||
public static boolean isStopEnabled;
|
public static boolean isStopEnabled;
|
||||||
public static boolean reloadSupport;
|
public static boolean reloadSupport;
|
||||||
public static boolean removePassword;
|
|
||||||
public static boolean multiverse;
|
|
||||||
public static boolean bungee;
|
public static boolean bungee;
|
||||||
public static boolean forceRegLogin;
|
public static boolean forceRegLogin;
|
||||||
public static boolean noTeleport;
|
public static boolean noTeleport;
|
||||||
@ -41,9 +37,6 @@ public final class Settings {
|
|||||||
public static String crazyloginFileName;
|
public static String crazyloginFileName;
|
||||||
public static int getSessionTimeout;
|
public static int getSessionTimeout;
|
||||||
public static int getNonActivatedGroup;
|
public static int getNonActivatedGroup;
|
||||||
public static int maxLoginTry;
|
|
||||||
public static int captchaLength;
|
|
||||||
public static int getMaxLoginPerIp;
|
|
||||||
private static FileConfiguration configFile;
|
private static FileConfiguration configFile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,13 +51,11 @@ public final class Settings {
|
|||||||
|
|
||||||
private static void loadVariables() {
|
private static void loadVariables() {
|
||||||
isPermissionCheckEnabled = load(PluginSettings.ENABLE_PERMISSION_CHECK);
|
isPermissionCheckEnabled = load(PluginSettings.ENABLE_PERMISSION_CHECK);
|
||||||
isForcedRegistrationEnabled = load(RegistrationSettings.FORCE);
|
|
||||||
isTeleportToSpawnEnabled = load(RestrictionSettings.TELEPORT_UNAUTHED_TO_SPAWN);
|
isTeleportToSpawnEnabled = load(RestrictionSettings.TELEPORT_UNAUTHED_TO_SPAWN);
|
||||||
isSessionsEnabled = load(PluginSettings.SESSIONS_ENABLED);
|
isSessionsEnabled = load(PluginSettings.SESSIONS_ENABLED);
|
||||||
getSessionTimeout = configFile.getInt("settings.sessions.timeout", 10);
|
getSessionTimeout = configFile.getInt("settings.sessions.timeout", 10);
|
||||||
isAllowRestrictedIp = load(RestrictionSettings.ENABLE_RESTRICTED_USERS);
|
isAllowRestrictedIp = load(RestrictionSettings.ENABLE_RESTRICTED_USERS);
|
||||||
isRemoveSpeedEnabled = load(RestrictionSettings.REMOVE_SPEED);
|
isRemoveSpeedEnabled = load(RestrictionSettings.REMOVE_SPEED);
|
||||||
isForceSpawnLocOnJoinEnabled = load(RestrictionSettings.FORCE_SPAWN_LOCATION_AFTER_LOGIN);
|
|
||||||
isSaveQuitLocationEnabled = load(RestrictionSettings.SAVE_QUIT_LOCATION);
|
isSaveQuitLocationEnabled = load(RestrictionSettings.SAVE_QUIT_LOCATION);
|
||||||
getUnloggedinGroup = load(SecuritySettings.UNLOGGEDIN_GROUP);
|
getUnloggedinGroup = load(SecuritySettings.UNLOGGEDIN_GROUP);
|
||||||
getNonActivatedGroup = configFile.getInt("ExternalBoardOptions.nonActivedUserGroup", -1);
|
getNonActivatedGroup = configFile.getInt("ExternalBoardOptions.nonActivedUserGroup", -1);
|
||||||
@ -74,15 +65,9 @@ public final class Settings {
|
|||||||
protectInventoryBeforeLogInEnabled = load(RestrictionSettings.PROTECT_INVENTORY_BEFORE_LOGIN);
|
protectInventoryBeforeLogInEnabled = load(RestrictionSettings.PROTECT_INVENTORY_BEFORE_LOGIN);
|
||||||
isStopEnabled = configFile.getBoolean("Security.SQLProblem.stopServer", true);
|
isStopEnabled = configFile.getBoolean("Security.SQLProblem.stopServer", true);
|
||||||
reloadSupport = configFile.getBoolean("Security.ReloadCommand.useReloadCommandSupport", true);
|
reloadSupport = configFile.getBoolean("Security.ReloadCommand.useReloadCommandSupport", true);
|
||||||
removePassword = configFile.getBoolean("Security.console.removePassword", true);
|
|
||||||
maxLoginTry = configFile.getInt("Security.captcha.maxLoginTry", 5);
|
|
||||||
captchaLength = configFile.getInt("Security.captcha.captchaLength", 5);
|
|
||||||
multiverse = load(HooksSettings.MULTIVERSE);
|
|
||||||
bungee = load(HooksSettings.BUNGEECORD);
|
bungee = load(HooksSettings.BUNGEECORD);
|
||||||
getForcedWorlds = load(RestrictionSettings.FORCE_SPAWN_ON_WORLDS);
|
|
||||||
defaultWorld = configFile.getString("Purge.defaultWorld", "world");
|
defaultWorld = configFile.getString("Purge.defaultWorld", "world");
|
||||||
forceRegLogin = load(RegistrationSettings.FORCE_LOGIN_AFTER_REGISTER);
|
forceRegLogin = load(RegistrationSettings.FORCE_LOGIN_AFTER_REGISTER);
|
||||||
getMaxLoginPerIp = load(RestrictionSettings.MAX_LOGIN_PER_IP);
|
|
||||||
noTeleport = load(RestrictionSettings.NO_TELEPORT);
|
noTeleport = load(RestrictionSettings.NO_TELEPORT);
|
||||||
crazyloginFileName = configFile.getString("Converter.CrazyLogin.fileName", "accounts.db");
|
crazyloginFileName = configFile.getString("Converter.CrazyLogin.fileName", "accounts.db");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,8 @@ import fr.xephi.authme.cache.auth.PlayerCache;
|
|||||||
import fr.xephi.authme.datasource.DataSource;
|
import fr.xephi.authme.datasource.DataSource;
|
||||||
import fr.xephi.authme.hooks.PluginHooks;
|
import fr.xephi.authme.hooks.PluginHooks;
|
||||||
import fr.xephi.authme.initialization.DataFolder;
|
import fr.xephi.authme.initialization.DataFolder;
|
||||||
import fr.xephi.authme.initialization.SettingsDependent;
|
import fr.xephi.authme.initialization.Reloadable;
|
||||||
|
import fr.xephi.authme.settings.properties.HooksSettings;
|
||||||
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
||||||
import fr.xephi.authme.util.FileUtils;
|
import fr.xephi.authme.util.FileUtils;
|
||||||
import fr.xephi.authme.util.StringUtils;
|
import fr.xephi.authme.util.StringUtils;
|
||||||
@ -29,9 +30,10 @@ import java.io.IOException;
|
|||||||
* should be taken from. In AuthMe, we can distinguish between the regular spawn and a "first spawn",
|
* should be taken from. In AuthMe, we can distinguish between the regular spawn and a "first spawn",
|
||||||
* to which players will be teleported who have joined for the first time.
|
* to which players will be teleported who have joined for the first time.
|
||||||
*/
|
*/
|
||||||
public class SpawnLoader implements SettingsDependent {
|
public class SpawnLoader implements Reloadable {
|
||||||
|
|
||||||
private final File authMeConfigurationFile;
|
private final File authMeConfigurationFile;
|
||||||
|
private final NewSetting settings;
|
||||||
private final PluginHooks pluginHooks;
|
private final PluginHooks pluginHooks;
|
||||||
private final DataSource dataSource;
|
private final DataSource dataSource;
|
||||||
private FileConfiguration authMeConfiguration;
|
private FileConfiguration authMeConfiguration;
|
||||||
@ -53,18 +55,17 @@ public class SpawnLoader implements SettingsDependent {
|
|||||||
// TODO ljacqu 20160312: Check if resource could be copied and handle the case if not
|
// TODO ljacqu 20160312: Check if resource could be copied and handle the case if not
|
||||||
FileUtils.copyFileFromResource(spawnFile, "spawn.yml");
|
FileUtils.copyFileFromResource(spawnFile, "spawn.yml");
|
||||||
this.authMeConfigurationFile = new File(pluginFolder, "spawn.yml");
|
this.authMeConfigurationFile = new File(pluginFolder, "spawn.yml");
|
||||||
|
this.settings = settings;
|
||||||
this.pluginHooks = pluginHooks;
|
this.pluginHooks = pluginHooks;
|
||||||
this.dataSource = dataSource;
|
this.dataSource = dataSource;
|
||||||
loadSettings(settings);
|
reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the relevant settings and load the AuthMe spawn.yml file.
|
* (Re)loads the spawn file and relevant settings.
|
||||||
*
|
|
||||||
* @param settings The settings instance
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void loadSettings(NewSetting settings) {
|
public void reload() {
|
||||||
spawnPriority = settings.getProperty(RestrictionSettings.SPAWN_PRIORITY).split(",");
|
spawnPriority = settings.getProperty(RestrictionSettings.SPAWN_PRIORITY).split(",");
|
||||||
authMeConfiguration = YamlConfiguration.loadConfiguration(authMeConfigurationFile);
|
authMeConfiguration = YamlConfiguration.loadConfiguration(authMeConfigurationFile);
|
||||||
loadEssentialsSpawn();
|
loadEssentialsSpawn();
|
||||||
@ -159,7 +160,7 @@ public class SpawnLoader implements SettingsDependent {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "multiverse":
|
case "multiverse":
|
||||||
if (Settings.multiverse) {
|
if (settings.getProperty(HooksSettings.MULTIVERSE)) {
|
||||||
spawnLoc = pluginHooks.getMultiverseSpawn(world);
|
spawnLoc = pluginHooks.getMultiverseSpawn(world);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -2,8 +2,6 @@ package fr.xephi.authme.util;
|
|||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.ConsoleLogger;
|
import fr.xephi.authme.ConsoleLogger;
|
||||||
import fr.xephi.authme.cache.limbo.LimboCache;
|
|
||||||
import fr.xephi.authme.cache.limbo.LimboPlayer;
|
|
||||||
import fr.xephi.authme.events.AuthMeTeleportEvent;
|
import fr.xephi.authme.events.AuthMeTeleportEvent;
|
||||||
import fr.xephi.authme.permission.PermissionsManager;
|
import fr.xephi.authme.permission.PermissionsManager;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
@ -23,68 +21,6 @@ public final class Utils {
|
|||||||
private Utils() {
|
private Utils() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the group of a player, by its AuthMe group type.
|
|
||||||
*
|
|
||||||
* @param player The player.
|
|
||||||
* @param group The group type.
|
|
||||||
*
|
|
||||||
* @return True if succeeded, false otherwise. False is also returned if groups aren't supported
|
|
||||||
* with the current permissions system.
|
|
||||||
*/
|
|
||||||
public static boolean setGroup(Player player, GroupType group) {
|
|
||||||
// Check whether the permissions check is enabled
|
|
||||||
if (!Settings.isPermissionCheckEnabled) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the permissions manager, and make sure it's valid
|
|
||||||
PermissionsManager permsMan = plugin.getPermissionsManager();
|
|
||||||
if (permsMan == null) {
|
|
||||||
ConsoleLogger.showError("Failed to access permissions manager instance, shutting down.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make sure group support is available
|
|
||||||
if (!permsMan.hasGroupSupport()) {
|
|
||||||
ConsoleLogger.showError("The current permissions system doesn't have group support, unable to set group!");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (group) {
|
|
||||||
case UNREGISTERED:
|
|
||||||
// Remove the other group type groups, set the current group
|
|
||||||
permsMan.removeGroups(player, Arrays.asList(Settings.getRegisteredGroup, Settings.getUnloggedinGroup));
|
|
||||||
return permsMan.addGroup(player, Settings.unRegisteredGroup);
|
|
||||||
|
|
||||||
case REGISTERED:
|
|
||||||
// Remove the other group type groups, set the current group
|
|
||||||
permsMan.removeGroups(player, Arrays.asList(Settings.unRegisteredGroup, Settings.getUnloggedinGroup));
|
|
||||||
return permsMan.addGroup(player, Settings.getRegisteredGroup);
|
|
||||||
|
|
||||||
case NOTLOGGEDIN:
|
|
||||||
// Remove the other group type groups, set the current group
|
|
||||||
permsMan.removeGroups(player, Arrays.asList(Settings.unRegisteredGroup, Settings.getRegisteredGroup));
|
|
||||||
return permsMan.addGroup(player, Settings.getUnloggedinGroup);
|
|
||||||
|
|
||||||
case LOGGEDIN:
|
|
||||||
// Get the limbo player data
|
|
||||||
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName().toLowerCase());
|
|
||||||
if (limbo == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Get the players group
|
|
||||||
String realGroup = limbo.getGroup();
|
|
||||||
|
|
||||||
// Remove the other group types groups, set the real group
|
|
||||||
permsMan.removeGroups(player, Arrays.asList(Settings.unRegisteredGroup, Settings.getRegisteredGroup, Settings.getUnloggedinGroup));
|
|
||||||
return permsMan.addGroup(player, realGroup);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: This method requires better explanation.
|
* TODO: This method requires better explanation.
|
||||||
* <p>
|
* <p>
|
||||||
@ -143,13 +79,6 @@ public final class Utils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum GroupType {
|
|
||||||
UNREGISTERED,
|
|
||||||
REGISTERED,
|
|
||||||
NOTLOGGEDIN,
|
|
||||||
LOGGEDIN
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the IP of the given player.
|
* Returns the IP of the given player.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -27,7 +27,7 @@ public class HashAlgorithmIntegrationTest {
|
|||||||
private static AuthMeServiceInitializer initializer;
|
private static AuthMeServiceInitializer initializer;
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void setUpWrapper() {
|
public static void setUpConfigAndInjector() {
|
||||||
NewSetting settings = mock(NewSetting.class);
|
NewSetting settings = mock(NewSetting.class);
|
||||||
given(settings.getProperty(HooksSettings.BCRYPT_LOG2_ROUND)).willReturn(8);
|
given(settings.getProperty(HooksSettings.BCRYPT_LOG2_ROUND)).willReturn(8);
|
||||||
given(settings.getProperty(SecuritySettings.DOUBLE_MD5_SALT_LENGTH)).willReturn(16);
|
given(settings.getProperty(SecuritySettings.DOUBLE_MD5_SALT_LENGTH)).willReturn(16);
|
||||||
@ -52,7 +52,7 @@ public class HashAlgorithmIntegrationTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldBeAbleToInstantiateEncryptionAlgorithms() throws InstantiationException, IllegalAccessException {
|
public void shouldBeAbleToInstantiateEncryptionAlgorithms() {
|
||||||
// given / when / then
|
// given / when / then
|
||||||
for (HashAlgorithm algorithm : HashAlgorithm.values()) {
|
for (HashAlgorithm algorithm : HashAlgorithm.values()) {
|
||||||
if (!HashAlgorithm.CUSTOM.equals(algorithm) && !HashAlgorithm.PLAINTEXT.equals(algorithm)) {
|
if (!HashAlgorithm.CUSTOM.equals(algorithm) && !HashAlgorithm.PLAINTEXT.equals(algorithm)) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user