@@ -25,26 +25,29 @@ import grails.plugin.springsecurity.oauth2.token.OAuth2SpringToken
25
25
import grails.plugin.springsecurity.oauth2.util.OAuth2ProviderConfiguration
26
26
import grails.plugin.springsecurity.userdetails.GormUserDetailsService
27
27
import grails.plugin.springsecurity.userdetails.GrailsUser
28
+ import grails.plugin.springsecurity.userdetails.GrailsUserDetailsService
28
29
import groovy.util.logging.Slf4j
29
30
import org.apache.commons.lang.exception.ExceptionUtils
30
31
import org.springframework.security.authentication.AuthenticationManager
31
32
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken
32
33
import org.springframework.security.core.AuthenticationException
33
- import org.springframework.security.core.authority.SimpleGrantedAuthority
34
+ import org.springframework.security.core.userdetails.UserDetails
34
35
35
36
@Transactional
36
37
@Slf4j
37
38
class SpringSecurityOauth2BaseService {
38
39
39
- /**
40
- * Map for storing the different OAuth2Provider
41
- */
40
+ /**
41
+ * Map for storing the different OAuth2Provider
42
+ */
42
43
Map<String , OAuth2AbstractProviderService > providerServiceMap = new HashMap<> ()
43
44
private Map<String , OAuth2ProviderConfiguration > _providerConfigurationMap = new HashMap<> ()
44
45
45
46
GrailsApplication grailsApplication
46
47
AuthenticationManager authenticationManager
47
48
49
+ GrailsUserDetailsService userDetailsService
50
+
48
51
OAuth2SpringToken createAuthToken (String providerName , OAuth2AccessToken scribeToken ) {
49
52
def providerService = getProviderService(providerName)
50
53
OAuth2SpringToken oAuthToken = providerService. createSpringAuthToken(scribeToken)
@@ -108,11 +111,8 @@ class SpringSecurityOauth2BaseService {
108
111
boolean passwordExpired = passwordExpiredPropertyName ? user. " ${ passwordExpiredPropertyName} " : false
109
112
110
113
// authorities
111
-
112
- String authoritiesPropertyName = conf. userLookup. authoritiesPropertyName
113
- String authorityPropertyName = conf. authority. nameField
114
- Collection<?> userAuthorities = user. " ${ authoritiesPropertyName} "
115
- def authorities = userAuthorities. collect { new SimpleGrantedAuthority (it. " ${ authorityPropertyName} " ) }
114
+ UserDetails userDetails = userDetailsService. loadUserByUsername(username,true )
115
+ def authorities= userDetails. authorities
116
116
117
117
oAuthToken. principal = new GrailsUser (username, password, enabled, ! accountExpired, ! passwordExpired,
118
118
! accountLocked, authorities ?: [GormUserDetailsService . NO_ROLE ], user. id)
0 commit comments