Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

A Função "disable" não aparece na lista após o comando " return http.csrf()."

Bom dia Pessoal !

Preciso de um help...

Fiz a classe SecurityConfigurations e não consigo obter a função .disable() dentro do método public SecurityFilterChain securityFilterChain(HttpSecurity http) {

Ou seja, depois que digito a linha de comando " return http.csrf()." a função "disable" não aparece na lista de opções.

Se necessário, esse é o meu Git atualizado: https://github.com/Adelmo2/med.voll.api.git

Agradeço muito se alguém poder me ajudar....

Minha classe SecurityConfigurations:


package med.voll.api.infra.security;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class SecurityConfigurations {

public SecurityFilterChain securityFilterChain(HttpSecurity http)  {
    return http.csrf().disable
}

}


2 respostas
solução!

Isso geralmente acontece por causa da versão do Spring Security que você está usando.

Até o Spring Security 5.x (Spring Boot 2.x): era usado http.csrf().disable().
A partir do Spring Security 6 (Spring Boot 3.x): a API mudou e o .disable() encadeado não existe mais do mesmo jeito. Agora você deve usar o padrão com AbstractHttpConfigurer::disable.

Além disso, faltou anotar o método com @Bean e chamar .build() no final para de fato registrar o SecurityFilterChain no contexto do Spring.

Para testar se é isso mesmo, faça:

Abra o seu pom.xml (ou build.gradle) e confira a versão do Spring Boot:
Se for 3.x, use a versão nova (AbstractHttpConfigurer::disable).
Se for 2.x, o .csrf().disable() funciona.

Garanta que o método está com @Bean e não esqueça do .build() no final, sem isso o Spring não registra a configuração.

Espero que ajude no seu problema.

Bom dia a todos..

Lucas,
Com a sua instrução, Funcionou perfeitamente!
Com a versão 4.0.2 do Spring Boot, o comando ficou mais simples:


@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) {
return http.csrf(AbstractHttpConfigurer::disable).build();
}


Muito obrigado pelo suporte!