1
resposta

Utilizando Postman erro 403 Forbidden

estava testando o security pelo postman porém tive muita dificuldade mas encontrei. o problema do erro 403 erra por culpa do CSRF, para conseguir usar apenas precisa desabilitar o CSRF na parte de segurança.


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.PasswordEncoder;


@Configuration
@EnableWebSecurity

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf() 
                .disable()
                .httpBasic()
                .and()
                .authorizeRequests()
                .anyRequest()
                .authenticated();
    }


    @Autowired
    public void config(AuthenticationManagerBuilder authenticationManagerBuilder) throws Exception{
       PasswordEncoder passwordEncoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
              authenticationManagerBuilder
                .inMemoryAuthentication()
                .withUser("admin")
                .password(passwordEncoder.encode("admin"))
                .roles("USER");

    }
}
1 resposta

Olá Gabriel, tudo bem?

O erro 403 Forbidden pode ser causado pelo CSRF, como você já descobriu. Desabilitar o CSRF pode ser uma solução temporária, mas não é aconselhável para manter a segurança do seu sistema.

Uma solução mais segura seria enviar o token CSRF junto com a requisição no Postman. Para isso, você pode seguir os seguintes passos:

  1. Faça uma requisição GET para a URL que você deseja testar no seu navegador.
  2. Abra o console do desenvolvedor e vá até a aba Network.
  3. Clique na requisição que você acabou de fazer e vá até a aba Headers.
  4. Procure pelo header chamado "X-CSRF-TOKEN" e copie o seu valor.
  5. Volte para o Postman e adicione um header com o nome "X-CSRF-TOKEN" e o valor que você copiou anteriormente.
  6. Faça a requisição novamente e verifique se o erro 403 ainda ocorre.

Espero ter ajudado e bons estudos!