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

Liberei o method post e não funciona....

O method GET funciona, mas o POST não....

Iníco da classe REST Controller

@RestController
@RequestMapping("rest/denuncias")
public class DenunciaRestController {

Método POST no REST Controller

    @PostMapping(value = "/enviarDenuncia", consumes = { "multipart/form-data" })
    public void upload(@RequestPart("denuncia") Denuncia denuncia, @RequestPart("file") MultipartFile file) {

        String fileName = fileStorageService.storeFile(file);

        denuncia.setCaminhoFoto(fileName);
        denunciaRepository.save(denuncia);
    }

Classe SecurityConfigurations

@EnableWebSecurity
@Configuration
public class SecurityConfigurations extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        // TODO Auto-generated method stub
        super.configure(auth);
    }

    @Override
    public void configure(WebSecurity web) throws Exception {
        super.configure(web);
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
        .antMatchers(HttpMethod.GET, "rest/denuncias/listarMunicipios").permitAll()
        .antMatchers(HttpMethod.POST, "rest/denuncias/**").permitAll();
    }

}

Seja no postman, seja no aplicativo android cliente que estou desenvolvendo, consigo acessar o método de listar municípios, mas o post continua devolvendo 403. Seja com 1 "*" depoios da barra ou 2 ou caminho completo.

1 resposta
solução!

Resolvi descobrindo que tem um módulo de segurança chamado CSRF. basta desativá-lo adicionando essa informação como último parâmetro como abaixo. Seria interessante uma atualização do curso falando a respeito, acredito que quando foi feito não havia, já que não foi citado nada a respeito.

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
        .antMatchers(HttpMethod.GET, "rest/denuncias/listarMunicipios").permitAll()
        .antMatchers(HttpMethod.POST, "rest/denuncias/**").permitAll()
.and().csrf().disable()
}

Minha mea-culpa aqui...

Em outra aula futura fala sobre CSRF, mas de qualquer forma, no meu caso só funcionou depois de adicionar e não antes como no ritmo do curso.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software