2
respostas

Spring security não continua com a requisição ao logar

Boa noite,

se eu bloqueio uma jsp pedindo autenticação ao fazer login ele não envia para a jsp que foi requisitada , tentei todos os teste que imaginei, coloquei todos os tipos de envio no form que foi ensinados(pelo menos os que eu me lembrava) :

tag <form:form> :

<form:form action="${s:mvcUrl('CCC#finalizaPedido').build()}" method="post">
</form:form>

tag <c:url/>:

<form action='<c:url value="/carrinho/finaliza" />' method="POST">
</form>

tag form action:

<form action="/rprvidros/carrinho/finaliza" method="post">

nenhuma dessas formas funcionam, não sei oq pode ser já que se eu bloqueio uma pagina que está liberada e já funcionava, ele não redireciona após o login e não mexo em nada no form de envio.

minha classe de segurança (vou colocar apenas o método que cuida das permissões das JSPs):

@Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests()
        .antMatchers("/").permitAll()
        .antMatchers("/rprvidros").permitAll()
        .antMatchers("/cadastro**").permitAll()
        .antMatchers("/add/**").permitAll()
        .antMatchers("/categoria").permitAll()
        .antMatchers("/carrinho/add").permitAll()
        .antMatchers("/login**").permitAll()
        .anyRequest().authenticated()
        .and().formLogin().loginPage("/login");

    }

eu acompanhei o fluxo pela aba do navegador Network, quando eu clico no botão para finalizar , o name fica login e o Initiator fica com o endereço carrinho/finaliza quando faço o login e vou para a pagina home do projeto fica com o endereço :8080/rprvidros/login, não sei oq pode ser visto que funcionou já mas foi uma única vez depois parou, se eu refaço o processo já logado ele salva o pedido no banco, se eu libero a pagina e faço o processo ele também acha o método e salva o pedido no BD, tentei tudo que eu pude pensar.

obrigado.

2 respostas

Opa, você pode implementar o seu SuccessHandler e dizer para o Spring Security para onde você quer que ele jogue o usuário depois do login.

mas se por exemplo jogar o usuário para a finalização do pedido, usando SuccessHandler, quando o usuário for apenas se logar para ver a sua conta seus pedidos, ele vai ser redirecionado para a pagina errada.