diff options
Diffstat (limited to 'src/main/kotlin')
| -rw-r--r-- | src/main/kotlin/dev/dnpm/etl/processor/config/AppSecurityConfiguration.kt | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/AppSecurityConfiguration.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/AppSecurityConfiguration.kt index b87a1bd..3f51420 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppSecurityConfiguration.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppSecurityConfiguration.kt @@ -131,24 +131,28 @@ class AppSecurityConfiguration(private val securityConfigProperties: SecurityCon appSecurityConfigProperties: SecurityConfigProperties, ): GrantedAuthoritiesMapper { return GrantedAuthoritiesMapper { grantedAuthority -> - grantedAuthority - .filterIsInstance<OidcUserAuthority>() - .onEach { - val userRole = userRoleRepository.findByUsername(it.userInfo.preferredUsername) - if (userRole.isEmpty) { - userRoleRepository.save( - UserRole( - null, - it.userInfo.preferredUsername, - appSecurityConfigProperties.defaultNewUserRole, - ) - ) + grantedAuthority + .asSequence() + .filterIsInstance<OidcUserAuthority>() + .map { it.userInfo?.preferredUsername.orEmpty() } + .filter { it.isNotBlank() } + .onEach { + val userRole = userRoleRepository.findByUsername(it) + if (userRole.isEmpty) { + userRoleRepository.save( + UserRole( + null, + it, + appSecurityConfigProperties.defaultNewUserRole, + ) + ) + } } - } - .map { - val userRole = userRoleRepository.findByUsername(it.userInfo.preferredUsername) - SimpleGrantedAuthority("ROLE_${userRole.get().role.toString().uppercase()}") - } + .map { + val userRole = userRoleRepository.findByUsername(it) + SimpleGrantedAuthority("ROLE_${userRole.get().role.toString().uppercase()}") + } + .toList() } } |
