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

CORS - Spring Boot

Boa tarde.

Criei uma aplicação backend com spring boot e criei outra aplicação com angular2. Quanto chamo a requisição do backend acontece o erro abaixo

{"timestamp":1496259442303,"status":405,"error":"Method Not Allowed","exception":"org.springframework.web.HttpRequestMethodNotSupportedException","message":"Request method 'POST' not supported","path":"/usuario/login"}

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@SpringBootApplication
@Configuration
public class ScmApplication {

    public static void main(String[] args) {
        SpringApplication.run(ScmApplication.class, args);
    }

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**").allowedOrigins("GET", "POST", "PUT", "DELETE")
                        .allowedOrigins("http://localhost:3000");
            }
        };
    }

}
@RequestMapping("/usuario")
@RestController
public class UsuarioController {

    final UsuarioService personService;

    @Autowired
    public UsuarioController(UsuarioService personService) {
        this.personService = personService;
    }

    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public Usuario logar(Usuario usuario) {
        System.out.println("******************************* login");
        Usuario usuarioLogado = personService.findByLoginAndSenha(usuario.getLogin(), usuario.getSenha());
        return usuarioLogado;
    }
}

O CORS esta configurado, mas ainda assim está dando erro, alguém poderia me informa o que está faltando configura ?

Att...

3 respostas
solução!

Fala aí Claudemir, blz?

Cara essa mensagem:

"Request method 'POST' not supported","path":"/usuario/login"

Está informando que o método POST não está habilitado para o recurso /usuario/login.

E olhando seu controller você definiu o mapeamento somente com GET

 @RequestMapping(value = "/login", method = RequestMethod.GET)

Tente trocar o mapeamento para POST

 @RequestMapping(value = "/login", method = RequestMethod.POST)

Veja se funciona.

[]s

Boa tarde Fernando.

Funcionou, muito obrigadooooooo.

At...

de nada =)