Fala galera! Não é dúvida, é uma observação. Pelo que vi, o Spring Security muda bastante e houveram outros usuários que postaram a atualização da implementação aqui no fórum. Faz sentido mudar assim, até porque é um framework de segurança. Segue a nova implementação para essa nova versão do Spring (até a data desta publicação):
@Configuration
@EnableWebSecurity
class SecurityConfiguration {
@Bean
fun securityFilterChain(http: HttpSecurity): SecurityFilterChain {
return http
.csrf { it.disable() }
.authorizeHttpRequests {
it
.requestMatchers(HttpMethod.GET, "/topics").hasAuthority("LEITURA_E_ESCRITA")
.anyRequest().authenticated()
}
.sessionManagement {
it.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
}.httpBasic(Customizer.withDefaults()).build()
}
@Bean
fun encoder(): PasswordEncoder = BCryptPasswordEncoder()
}
Também tive que mudar a coluna role na entidade de usuário:
@JsonIgnore
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name = "usuario_role",
joinColumns = [JoinColumn(name = "usuario_id")],
inverseJoinColumns = [JoinColumn(name = "role_id")]
)
val role: List<Role> = mutableListOf()
Aqui funcionou perfeitamente.