Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Nova implementação da configuração

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.

1 resposta
solução!

Oi Matheus! Joia?

Obrigado por compartilhar sua observação e a nova implementação da configuração de segurança com a galera. Realmente, o Spring Security está sempre evoluindo, e manter-se atualizado é essencial para garantir a segurança das nossas aplicações.

A sua implementação está bem clara e parece estar funcionando perfeitamente.

Então, continue com o bom trabalho e não hesite em pedir ajuda sempre que precisar.

Bons estudos!