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

AUTENTICACAO POR SESSÃO

SAUDAÇÕES TENHO ALGUMAS DÚVIDAS - 1- Posso usar autenticação via token no padrão MVC ? 2- Estou tentando definir uma página própria de login, onde eu possa adicionar o Recaptcha, e estou utilizando o código abaixo. As Requisições via POST não estão chegando ao controle, estou testando via postman e por mais que eu coloque POST, no controller é chamado o método get. 3- Gostaria de saber tambem quais são os próximos passos, para eu fazer a autenticação por sessão. Porque eu assisti e curso de Spring MVC e o achei bem fraco nesse sentido. Tanto que um colega, teve a mesma dúvida que eu e o professor o mandou assistir as aulas de autenticação com JWT. Porém ainda assim nas aulas achei o conteúdo meio vazio, pois ele ensina sobre tokens, mas sobre a autenticação fica no ar. Gostaria por favor de um caminho.

MEU CODIGO DA CLASSE DE SEGURANÇA

public class SecurityModule extends WebSecurityConfigurerAdapter { ****
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .antMatchers("/user").hasAnyRole("ADMIN")
                .antMatchers("/").hasRole("CLIENTE_NORMAL")
                .antMatchers("/add").permitAll()
                .antMatchers("/auth/**").permitAll()
                .antMatchers("/auth").permitAll()
                .antMatchers(HttpMethod.POST, "/auth").permitAll()

                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/auth")
        .failureForwardUrl("/auth/error").successForwardUrl("/auth/success");
    }

Minha página de autenticação é chamada, agora referente aos names username e password. Onde eles são definidos no Spring ? Tem que ser realmente esses nomes ou posso personalizar ?

Segue meu controller abaixo. "/auth"

    @PostMapping
    public void login(@RequestBody AuthDto dto) {
        System.out.println("Entrando no controller de login método post");
        UsernamePasswordAuthenticationToken filter = new UsernamePasswordAuthenticationToken(dto.getUsername(), dto.getPassword());
        Authentication authenticate = authManager.authenticate(filter);
        System.out.println(authenticate);
    }
1 resposta
solução!

Oi Luiz,

Aqui no curso de Spring Boot o mais apropriado é utilizar autenticação/autorização stateless, baseada em tokens, ao invés do uso tradicional de sessão, visto que estamos desenvolvendo uma API Rest.

Mas pelo que você comentou, me parece que seu caso é uma aplicação web tradicional, sendo mais apropriado utilizar sessão, conforme é ensinado no curso de Spring MVC.

Bons estudos!

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