1
0
mirror of https://github.com/pcvolkmer/etl-processor.git synced 2025-07-01 14:12:55 +00:00

feat: add default new user role config option

This commit is contained in:
2024-03-01 09:34:51 +01:00
parent 5c15ad4518
commit 200c5338ea
2 changed files with 5 additions and 4 deletions

View File

@ -19,6 +19,7 @@
package dev.dnpm.etl.processor.config package dev.dnpm.etl.processor.config
import dev.dnpm.etl.processor.security.Role
import org.springframework.boot.context.properties.ConfigurationProperties import org.springframework.boot.context.properties.ConfigurationProperties
import org.springframework.boot.context.properties.DeprecatedConfigurationProperty import org.springframework.boot.context.properties.DeprecatedConfigurationProperty
@ -102,7 +103,8 @@ data class SecurityConfigProperties(
val adminUser: String?, val adminUser: String?,
val adminPassword: String?, val adminPassword: String?,
val enableTokens: Boolean = false, val enableTokens: Boolean = false,
val enableOidc: Boolean = false val enableOidc: Boolean = false,
val defaultNewUserRole: Role = Role.USER
) { ) {
companion object { companion object {
const val NAME = "app.security" const val NAME = "app.security"

View File

@ -19,7 +19,6 @@
package dev.dnpm.etl.processor.config package dev.dnpm.etl.processor.config
import dev.dnpm.etl.processor.security.Role
import dev.dnpm.etl.processor.security.UserRole import dev.dnpm.etl.processor.security.UserRole
import dev.dnpm.etl.processor.security.UserRoleRepository import dev.dnpm.etl.processor.security.UserRoleRepository
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
@ -114,13 +113,13 @@ class AppSecurityConfiguration(
@Bean @Bean
@ConditionalOnProperty(value = ["app.security.enable-oidc"], havingValue = "true") @ConditionalOnProperty(value = ["app.security.enable-oidc"], havingValue = "true")
fun grantedAuthoritiesMapper(userRoleRepository: UserRoleRepository): GrantedAuthoritiesMapper { fun grantedAuthoritiesMapper(userRoleRepository: UserRoleRepository, appSecurityConfigProperties: SecurityConfigProperties): GrantedAuthoritiesMapper {
return GrantedAuthoritiesMapper { grantedAuthority -> return GrantedAuthoritiesMapper { grantedAuthority ->
grantedAuthority.filterIsInstance<OidcUserAuthority>() grantedAuthority.filterIsInstance<OidcUserAuthority>()
.onEach { .onEach {
val userRole = userRoleRepository.findByUsername(it.userInfo.preferredUsername) val userRole = userRoleRepository.findByUsername(it.userInfo.preferredUsername)
if (userRole.isEmpty) { if (userRole.isEmpty) {
userRoleRepository.save(UserRole(null, it.userInfo.preferredUsername, Role.GUEST)) userRoleRepository.save(UserRole(null, it.userInfo.preferredUsername, appSecurityConfigProperties.defaultNewUserRole))
} }
} }
.map { .map {