import org.apache.commons.codec.digest.Crypt;
import org.mxchange.jcore.BaseFrameworkSystem;
import org.mxchange.jusercore.container.login.LoginContainer;
+import org.mxchange.jusercore.container.login.UserLoginContainer;
/**
* An utilities class for users
/**
* Password alphabet
*/
- private static final String PASSWORD_ALPHABET = "abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXZY0123456789-/?!_+#@";
+ private static final String PASSWORD_ALPHABET = "abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXZY0123456789-/?!_+#@"; //NOI18N
/**
* Minimum password length
// Parameter should be valid
if (null == length) {
// Throw NPE
- throw new NullPointerException("length is null");
+ throw new NullPointerException("length is null"); //NOI18N
} else if (length < PASSWORD_MINIMUM_LENGTH) {
// To weak passwords
- throw new IllegalArgumentException(MessageFormat.format("Password length {0} is to short, minimum: {1}", length, PASSWORD_MINIMUM_LENGTH));
+ throw new IllegalArgumentException(MessageFormat.format("Password length {0} is to short, minimum: {1}", length, PASSWORD_MINIMUM_LENGTH)); //NOI18N
}
// Init variable
}
// Should have the wanted length
- assert (password.length() == length) : "Password length " + password.length() + " doesn't match requested: " + length;
+ assert (password.length() == length) : MessageFormat.format("Password length {0} doesn't match requested: {1}", password.length(), length); //NOI18N
// Return it
return password.toString();
// Is it null or empty?
if (null == userPassword) {
// Throw NPE
- throw new NullPointerException("userPassword is null");
+ throw new NullPointerException("userPassword is null"); //NOI18N
} else if (userPassword.isEmpty()) {
// Empty passwords are hardcoded not allowed due to security risks
- throw new IllegalArgumentException("userPassword is empty");
+ throw new IllegalArgumentException("userPassword is empty"); //NOI18N
}
// Generate large number
/**
* Checks if password from container matches the updatedUser's password
* <p>
- * @param container Container holding user instance and unencrypted
- * password
+ * @param container Container holding user instance and unencrypted password
* @param updatedUser Updated user instance from database
* <p>
* @return Whether the password matches
// Validate parameters
if (null == container) {
// Throw NPE
- throw new NullPointerException("container is null");
+ throw new NullPointerException("container is null"); //NOI18N
} else if (null == updatedUser) {
// And again NPE ...
- throw new NullPointerException("updatedUser is null");
+ throw new NullPointerException("updatedUser is null"); //NOI18N
} else if (container.getUser() == null) {
// NPE for user in container
- throw new NullPointerException("container.user is null");
+ throw new NullPointerException("container.user is null"); //NOI18N
} else if (container.getUserPassword() == null) {
// NPE for user password in container
- throw new NullPointerException("container.userPassword is null");
+ throw new NullPointerException("container.userPassword is null"); //NOI18N
} else if (container.getUserPassword().isEmpty()) {
// Empty password in container
- throw new IllegalArgumentException("container.userPassword is empty");
+ throw new IllegalArgumentException("container.userPassword is empty"); //NOI18N
}
// First encrypt password
return encryptedPassword.equals(updatedUser.getUserEncryptedPassword());
}
+ /**
+ * Checks if password from container matches with from user instance.
+ * <p>
+ * @param container Container holding user instance and unencrypted password
+ * <p>
+ * @return Whether it maches
+ */
+ public static boolean ifPasswordMatches (final UserLoginContainer container) {
+ // Validate parameters
+ if (null == container) {
+ // Throw NPE
+ throw new NullPointerException("container is null"); //NOI18N
+ } else if (container.getUser() == null) {
+ // NPE for user in container
+ throw new NullPointerException("container.user is null"); //NOI18N
+ } else if (container.getUserPassword() == null) {
+ // NPE for user password in container
+ throw new NullPointerException("container.userPassword is null"); //NOI18N
+ } else if (container.getUserPassword().isEmpty()) {
+ // Empty password in container
+ throw new IllegalArgumentException("container.userPassword is empty"); //NOI18N
+ }
+
+ // First encrypt password
+ String encryptedPassword = Crypt.crypt(container.getUserPassword(), container.getUser().getUserEncryptedPassword());
+
+ // Is it matching?
+ return encryptedPassword.equals(container.getUser().getUserEncryptedPassword());
+ }
+
/**
* No instance from this class
*/