Sr’s estou com muita dificuldade para conseguir fazer um simples logout utilizando o Spring Security!
Gostaria,se possível que alguém me passa-se o conceito dele pois estou meio perdido não estou entendendo ele com clareza já procurei em vários lugares e não achei algo que me esclareça.
Acho sempre este trecho"<a href="<c:url value="/j_spring_security_logout"/>">Logout" mais ai fico perdido pois já testei ele de varias formas.
Pergunta: eu só preciso adicionar este trecho de código ou tenho que fazer outras configurações, ou substituir este trecho por uma pagina de logout???
Bom Dia!
ppro11, Mano desta forma eu sei como fazer, mais eu gostaria de saber como funciona essa parte de logout do Spring Security.
Por Ex: Se eu colocar somente essa tag no arquivo de conf. e dizer qual pagina eu desejo que ele vá apos eu cliclar no link bastaria ou eu devo fazer alguma conf. a mais.
Eu não vejo a necessidade de você colocar nada no arquivo de configuração se você chamar método que faz o logout, já é o bastante para encerrar a sessão e não deixar o usuário ficar logado! - se você estiver usando o Interceptor se um usuário não estiver logado ele não pode acessar as páginas da sua aplicação.
Blz ppro11,eu tambem acho isso. Mas no arquivo de conf. do Spring Sec. se eu consigir automatizar todo o processo pq não usar?
Mas acontece que eu não sei utiliza-ló, e estou querendo apreeender.
Ta certo é sempre bom aprender! - É que recentemente eu fiz uma aplicação em SpringMVC e não utilizei o spring-context, isolei o método logout na Classe LoginController e onde eu precisei eu usei a url para fazer o logout!
Você esta mapeando um endereço para a ação de logout, é a mesma coisa que
Mas automaticamente o Spring security vai invalidar sua sessão e te redirecionar para sua pagina de Login novamente, é como se o processo que o ppro11 mostrou já tivesse sido implementado pelo Spring security
Caso você queira pode alterar o url do link parahref="\logout" basta alterar na configuração do Spring também<logout logout-success-url="/login.jsp" logout-url="/logout"/>
AmauriSpPoa cara desculpa pela demora pra responder.
Cara eu testei minha aplicação com a conf. q vc passou e não esta funcionando.
Mano eu precisso criar um controller para redirecionar a app???
Bom não vai funcionar mesmo a barra que eu coloquei ta errada :oops: href="/logout"
agora se mesmo assim não funcionar segue como eu fiz(no seu caso não tem o prefixo “security:”)
<security:http auto-config="true" access-denied-page="/403.do">
<security:form-login login-page="/login.do" login-processing-url="/loginProcess"
default-target-url="/home.do" authentication-failure-url="/login.do?login_error=1" />
<!-- Aqui é definodo o url para fazer o logout -->
<security:logout logout-url="/logout" logout-success-url="/login.do" />
<security:intercept-url pattern="/home/login/setLocale.do" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/home.do" access="IS_AUTHENTICATED_FULLY" />
<security:intercept-url pattern="/home/**" access="IS_AUTHENTICATED_FULLY" />
</security:http> Sair(coloquei fora da tag “code” pois o href não fica visivel)
Nessa linha você está especificando que para determinadas pastas ele pode estar como anonimo access="IS_AUTHENTICATED_ANONYMOUSLY"Só não entendi essa linha
<form-login authentication-failure-url="/login.jsp" default-target-url="index.jsp" login-page="/login.jsp" login-processing-url="/login.do"/> porque tem login.do e login.jsp?
Quando o login não for compativel com o do banco apresenta está pagina:
<form-login authentication-failure-url="/login.jsp"
Quando a pessoa logar no sistema a pagina padrão sera essa:
default-target-url="index.jsp"
O nome da pagina de login
login-page="/login.jsp"
Cara eu não sei realmente o que ela faz ma se tirar ela e tentar logar com um usuario que não existe ele me retorna um erro: 404 :?: :?: :?: :?:
login-processing-url="/login.do"/>
Essa de logout que vc me passou
<logout logout-success-url="/" logout-url="/logout"
Força o fechamento da sessão
invalidate-session="true"/>
</http>
Cara o q estiver errado pode corrigir mano pq eu quero apreender.