.
Код: Выделить всё
{
"sub": "12345",
"realm_access": {
"roles": ["admin", "user"]
}
}
Моя текущая конфигурация безопасности следующая:
Код: Выделить всё
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(auth -> auth
.requestMatchers("/api/admin/**").hasRole("admin") // This always returns 403
.anyRequest().authenticated()
)
.oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults()));
return http.build();
}
- Я попытался создать собственный GrantedAuthoritiesMapper, но кажется, что JwtAuthenticationConverter уже переопределяет логику до того, как он туда доберется.
- Я попробовал установить Spring.security.oauth2.resourceserver.jwt.authorities-claim-name=realm_access.roles в application.yml, но Spring, похоже, не поддерживает точечную нотацию для вложенных утверждений «из коробки».