Package com.patreonshout.config
Class SecurityConfiguration
java.lang.Object
com.patreonshout.config.SecurityConfiguration
@Configuration
public class SecurityConfiguration
extends java.lang.Object
Spring Security Configuration
- 
Field SummaryFields Modifier and Type Field Description (package private) org.passay.PasswordValidatorpasswordValidatorSet of requirements a password must meet to be considered validjava.lang.StringpepperPepper value for WebAccount passwords -- used as a constant value included in every password(package private) java.security.SecureRandomsecureRandom
- 
Constructor SummaryConstructors Constructor Description SecurityConfiguration()
- 
Method SummaryModifier and Type Method Description java.lang.StringcreateSalt()Generates a pseudo-random salt of 124 bytes utilizingSecureRandomjava.lang.StringencodePassword(java.lang.String rawPassword, java.lang.String salt)Encodes given passwords withBCryptPasswordEncoderThe password is encrypted in the following form: (pepper + rawPassword + salt) where the "pepper" constant is assigned in the Spring application propertiesbooleanpasswordIsValid(java.lang.String rawPassword)Checks if the given raw password fits our password requirements.
 
 Requirements At least one uppercase character At least one lowercase character At least one digit At least one symbol (special character) No spacesbooleanpasswordMatches(java.lang.String rawPassword, java.lang.String salt, java.lang.String encodedPassword)Checks if a given password and salt combine to the given encoded password.java.lang.StringSHA1Encoder(java.lang.String text)SHA1 encodes textMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- 
Field Details- 
secureRandomjava.security.SecureRandom secureRandom
- 
passwordValidatororg.passay.PasswordValidator passwordValidatorSet of requirements a password must meet to be considered valid
- 
pepper@Value("${patreonshout.db.webaccount.pepper}") public java.lang.String pepperPepper value for WebAccount passwords -- used as a constant value included in every password
 
- 
- 
Constructor Details- 
SecurityConfigurationpublic SecurityConfiguration()
 
- 
- 
Method Details- 
SHA1Encoderpublic java.lang.String SHA1Encoder(java.lang.String text)SHA1 encodes text- Parameters:
- text- text to encode
- Returns:
- SHA1 encoded text
 
- 
encodePasswordpublic java.lang.String encodePassword(java.lang.String rawPassword, java.lang.String salt)Encodes given passwords withBCryptPasswordEncoderThe password is encrypted in the following form: (pepper + rawPassword + salt) where the "pepper" constant is assigned in the Spring application properties- Returns:
- PasswordEncoderFactoriesobject that defaults to BCrypt encoding
 
- 
passwordMatchespublic boolean passwordMatches(java.lang.String rawPassword, java.lang.String salt, java.lang.String encodedPassword)Checks if a given password and salt combine to the given encoded password. This function utilizes the "pepper" constant that is assigned in the application properties.- Parameters:
- rawPassword-- Stringraw password retrieved from user input
- encodedPassword-- StringEncoded password retrieved from a- WebAccountFunctionsin the database
- Returns:
- Booleantrue if password matches, false otherwise
 
- 
createSaltpublic java.lang.String createSalt()Generates a pseudo-random salt of 124 bytes utilizingSecureRandom- Returns:
- 124 bytes
 
- 
passwordIsValidpublic boolean passwordIsValid(java.lang.String rawPassword)Checks if the given raw password fits our password requirements.
 
 Requirements- At least one uppercase character
- At least one lowercase character
- At least one digit
- At least one symbol (special character)
- No spaces
 - Parameters:
- rawPassword- password to check
- Returns:
- Boolean.TRUEif password meets our password requirements,- Boolean.FALSEotherwise
 
 
-