@@ -81,6 +81,7 @@ import org.springframework.security.core.context.SecurityContextHolder as SCH
81
81
import org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper
82
82
import org.springframework.security.core.userdetails.cache.EhCacheBasedUserCache
83
83
import org.springframework.security.core.userdetails.cache.NullUserCache
84
+ import org.springframework.security.crypto.argon2.Argon2PasswordEncoder
84
85
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
85
86
import org.springframework.security.crypto.password.DelegatingPasswordEncoder
86
87
import org.springframework.security.crypto.password.LdapShaPasswordEncoder
@@ -145,6 +146,7 @@ class SpringSecurityCoreGrailsPlugin extends Plugin {
145
146
public static final String ENCODING_ID_NOOP = " noop"
146
147
public static final String ENCODING_ID_PBKDF2 = " pbkdf2"
147
148
public static final String ENCODING_ID_SCRYPT = " scrypt"
149
+ public static final String ENCODING_ID_ARGON2 = " argon2"
148
150
public static final String ENCODING_ID_SHA1 = " SHA-1"
149
151
public static final String ENCODING_IDSHA256 = " SHA-256"
150
152
@@ -412,8 +414,8 @@ class SpringSecurityCoreGrailsPlugin extends Plugin {
412
414
String securityConfigType = SpringSecurityUtils . securityConfigType
413
415
log. trace " Using security config type '{}'" , securityConfigType
414
416
if (securityConfigType != ' Annotation' &&
415
- securityConfigType != ' Requestmap' &&
416
- securityConfigType != ' InterceptUrlMap' ) {
417
+ securityConfigType != ' Requestmap' &&
418
+ securityConfigType != ' InterceptUrlMap' ) {
417
419
418
420
String message = """
419
421
ERROR: the 'securityConfigType' property must be one of
@@ -513,7 +515,7 @@ to default to 'Annotation'; setting value to 'Annotation'
513
515
514
516
authenticationEventPublisher(classFor(' authenticationEventPublisher' , DefaultAuthenticationEventPublisher )) {
515
517
additionalExceptionMappings =
516
- ([(NoStackUsernameNotFoundException . name): AuthenticationFailureBadCredentialsEvent . name] as Properties )
518
+ ([(NoStackUsernameNotFoundException . name): AuthenticationFailureBadCredentialsEvent . name] as Properties )
517
519
}
518
520
}
519
521
else {
@@ -703,7 +705,7 @@ to default to 'Annotation'; setting value to 'Annotation'
703
705
704
706
// build handlers list here to give dependent plugins a chance to register some
705
707
def logoutHandlerNames = (conf. logout. handlerNames ?: SpringSecurityUtils . logoutHandlerNames) +
706
- (conf. logout. additionalHandlerNames ?: [])
708
+ (conf. logout. additionalHandlerNames ?: [])
707
709
applicationContext. logoutHandlers. clear()
708
710
applicationContext. logoutHandlers. addAll createBeanList(logoutHandlerNames)
709
711
log. trace ' LogoutHandlers: {}' , applicationContext. logoutHandlers
@@ -766,8 +768,8 @@ to default to 'Annotation'; setting value to 'Annotation'
766
768
private void initializeFromAnnotations (conf ) {
767
769
AnnotationFilterInvocationDefinition afid = applicationContext. objectDefinitionSource
768
770
afid. initialize conf. controllerAnnotations. staticRules,
769
- applicationContext. grailsUrlMappingsHolder, grailsApplication. controllerClasses,
770
- grailsApplication. domainClasses
771
+ applicationContext. grailsUrlMappingsHolder, grailsApplication. controllerClasses,
772
+ grailsApplication. domainClasses
771
773
}
772
774
773
775
private createRefList = { names -> names. collect { name -> ref(name) } }
@@ -1100,30 +1102,31 @@ to default to 'Annotation'; setting value to 'Annotation'
1100
1102
}
1101
1103
1102
1104
1103
- Map<String , PasswordEncoder > idToPasswordEncoder (ConfigObject conf ) {
1105
+ static Map<String , PasswordEncoder > idToPasswordEncoder (ConfigObject conf ) {
1104
1106
1105
- MessageDigestPasswordEncoder messsageDigestPasswordEncoderMD5 = new MessageDigestPasswordEncoder (ENCODING_ID_MD5 )
1106
- messsageDigestPasswordEncoderMD5 . encodeHashAsBase64 = conf. password. encodeHashAsBase64 // false
1107
- messsageDigestPasswordEncoderMD5 . iterations = conf. password. hash. iterations // 10000
1107
+ MessageDigestPasswordEncoder messageDigestPasswordEncoderMD5 = new MessageDigestPasswordEncoder (ENCODING_ID_MD5 )
1108
+ messageDigestPasswordEncoderMD5 . encodeHashAsBase64 = conf. password. encodeHashAsBase64 // false
1109
+ messageDigestPasswordEncoderMD5 . iterations = conf. password. hash. iterations // 10000
1108
1110
1109
- MessageDigestPasswordEncoder messsageDigestPasswordEncoderSHA1 = new MessageDigestPasswordEncoder (ENCODING_ID_SHA1 )
1110
- messsageDigestPasswordEncoderSHA1 . encodeHashAsBase64 = conf. password. encodeHashAsBase64 // false
1111
- messsageDigestPasswordEncoderSHA1 . iterations = conf. password. hash. iterations // 10000
1111
+ MessageDigestPasswordEncoder messageDigestPasswordEncoderSHA1 = new MessageDigestPasswordEncoder (ENCODING_ID_SHA1 )
1112
+ messageDigestPasswordEncoderSHA1 . encodeHashAsBase64 = conf. password. encodeHashAsBase64 // false
1113
+ messageDigestPasswordEncoderSHA1 . iterations = conf. password. hash. iterations // 10000
1112
1114
1113
- MessageDigestPasswordEncoder messsageDigestPasswordEncoderSHA256 = new MessageDigestPasswordEncoder (ENCODING_IDSHA256 )
1114
- messsageDigestPasswordEncoderSHA256 . encodeHashAsBase64 = conf. password. encodeHashAsBase64 // false
1115
- messsageDigestPasswordEncoderSHA256 . iterations = conf. password. hash. iterations // 10000
1115
+ MessageDigestPasswordEncoder messageDigestPasswordEncoderSHA256 = new MessageDigestPasswordEncoder (ENCODING_IDSHA256 )
1116
+ messageDigestPasswordEncoderSHA256 . encodeHashAsBase64 = conf. password. encodeHashAsBase64 // false
1117
+ messageDigestPasswordEncoderSHA256 . iterations = conf. password. hash. iterations // 10000
1116
1118
1117
1119
int strength = conf. password. bcrypt. logrounds
1118
1120
[(ENCODING_ID_BCRYPT ): new BCryptPasswordEncoder (strength),
1119
- (ENCODING_ID_LDAP ): new LdapShaPasswordEncoder (),
1120
- (ENCODING_ID_MD4 ): new Md4PasswordEncoder (),
1121
- (ENCODING_ID_MD5 ): messsageDigestPasswordEncoderMD5,
1122
- (ENCODING_ID_NOOP ): NoOpPasswordEncoder . getInstance(),
1123
- (ENCODING_ID_PBKDF2 ): new Pbkdf2PasswordEncoder (),
1124
- (ENCODING_ID_SCRYPT ): new SCryptPasswordEncoder (),
1125
- (ENCODING_ID_SHA1 ): messsageDigestPasswordEncoderSHA1,
1126
- (ENCODING_IDSHA256 ): messsageDigestPasswordEncoderSHA256,
1127
- " sha256" : new StandardPasswordEncoder ()]
1121
+ (ENCODING_ID_LDAP ): new LdapShaPasswordEncoder (),
1122
+ (ENCODING_ID_MD4 ): new Md4PasswordEncoder (),
1123
+ (ENCODING_ID_MD5 ): messageDigestPasswordEncoderMD5,
1124
+ (ENCODING_ID_NOOP ): NoOpPasswordEncoder . getInstance(),
1125
+ (ENCODING_ID_PBKDF2 ): new Pbkdf2PasswordEncoder (),
1126
+ (ENCODING_ID_SCRYPT ): new SCryptPasswordEncoder (),
1127
+ (ENCODING_ID_ARGON2 ): new Argon2PasswordEncoder (),
1128
+ (ENCODING_ID_SHA1 ): messageDigestPasswordEncoderSHA1,
1129
+ (ENCODING_IDSHA256 ): messageDigestPasswordEncoderSHA256,
1130
+ " sha256" : new StandardPasswordEncoder ()]
1128
1131
}
1129
1132
}
0 commit comments