diff --git a/src/main/kotlin/com/auth/config/WebSecurityConfig.kt b/src/main/kotlin/com/auth/config/WebSecurityConfig.kt index 2f532a0..5d64f1b 100644 --- a/src/main/kotlin/com/auth/config/WebSecurityConfig.kt +++ b/src/main/kotlin/com/auth/config/WebSecurityConfig.kt @@ -13,7 +13,6 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter import org.springframework.security.web.SecurityFilterChain - @Configuration @EnableWebSecurity @EnableMethodSecurity( @@ -29,7 +28,7 @@ class WebSecurityConfig () { auth.requestMatchers("/public/**", "/health", "/info").permitAll() auth.anyRequest().permitAll() - //auth.anyRequest().authenticated() + //auth.anyRequest().authenticated() }) .oauth2ResourceServer(Customizer { oauth2 -> @@ -46,30 +45,6 @@ class WebSecurityConfig () { return http.build() } -// -// // Конвертер JWT Authentication (извлекает роли из токена) -// private fun jwtAuthenticationConverter(): JwtAuthenticationConverter { -// val converter = JwtAuthenticationConverter() -// -// // Извлекаем роли из поля resource_access.test_client.roles -// val authoritiesExtractor = JwtGrantedAuthoritiesConverter() -// authoritiesExtractor.setAuthoritiesClaimName("resource_access.test_client.roles") // где лежат роли -// authoritiesExtractor.setAuthorityPrefix("ROLE_") // добавляем префикс ROLE_ -// -// converter.setJwtGrantedAuthoritiesConverter(authoritiesExtractor) -// -//// // Дополнительно: проверяем, что роли не пустые -//// converter.setJwtGrantedAuthoritiesConverter { jwt -> -//// val authorities = authoritiesExtractor.convert(jwt) -//// if (authorities.isEmpty()) { -//// throw IllegalArgumentException("User has no roles assigned in token") -//// } -//// authorities -//// } -// -// return converter -// } - private fun jwtAuthenticationConverter(): JwtAuthenticationConverter { val converter = JwtAuthenticationConverter() @@ -100,4 +75,28 @@ class WebSecurityConfig () { return converter } + +// // Конвертер JWT Authentication (извлекает роли из токена) +// private fun jwtAuthenticationConverter(): JwtAuthenticationConverter { +// val converter = JwtAuthenticationConverter() +// +// // Извлекаем роли из поля resource_access.test_client.roles +// val authoritiesExtractor = JwtGrantedAuthoritiesConverter() +// authoritiesExtractor.setAuthoritiesClaimName("resource_access.test_client.roles") // где лежат роли +// authoritiesExtractor.setAuthorityPrefix("ROLE_") // добавляем префикс ROLE_ +// +// converter.setJwtGrantedAuthoritiesConverter(authoritiesExtractor) +// +//// // Дополнительно: проверяем, что роли не пустые +//// converter.setJwtGrantedAuthoritiesConverter { jwt -> +//// val authorities = authoritiesExtractor.convert(jwt) +//// if (authorities.isEmpty()) { +//// throw IllegalArgumentException("User has no roles assigned in token") +//// } +//// authorities +//// } +// +// return converter +// } + } \ No newline at end of file diff --git a/src/main/kotlin/com/test/test/rest/TestController.kt b/src/main/kotlin/com/test/test/rest/TestController.kt index ddd9f8a..7638689 100644 --- a/src/main/kotlin/com/test/test/rest/TestController.kt +++ b/src/main/kotlin/com/test/test/rest/TestController.kt @@ -8,7 +8,7 @@ import org.springframework.web.bind.annotation.RestController @RestController -class TestController { +open class TestController { @PreAuthorize("hasRole('ADMIN')") @GetMapping("/test")