Spring Security: Página login.jsp e Logout

25/01/2010 | By | 4 Comments

spring security login Spring Security: Página login.jsp e Logout

Quando você faz a configuração do Spring Security na sua aplicação, você tem a opção de dizer qual é a sua página de login (login.jsp) no arquivo applicationContext-security.xml.

Mas como esse arquivo login.jsp se parece? Como faço para a página ser reconhecida pelo framework no processo de autenticação? Se você fizer uma busca pelo Google, não irá encontrar tão facilmente. Há muitos artigos sobre como configurar o framework, mas poucos (poucos mesmo) que mostram a tal página. Devido a dificuldade que tive quando comecei a estudar, resolvi compartilhar aqui no blog.

A verdade é: basta olhar nos arquivos .jar de exemplo que vem quando faz o download do spring security. Você vai encontrar tanto a página de login (login.jsp) quando o link de logout:

login.jsp

<%@ taglib prefix='c' uri='http://java.sun.com/jstl/core_rt' %>
<%@ page import="org.springframework.security.ui.AbstractProcessingFilter" %>
<%@ page import="org.springframework.security.ui.webapp.AuthenticationProcessingFilter" %>
<%@ page import="org.springframework.security.AuthenticationException" %>

<html>
  <head>
    <title>Login</title>
  </head>

  <body>
    <h1>Login</h1>

    <c:if test="${not empty param.login_error}">
      <font color="red">
        Your login attempt was not successful, try again.<br/><br/>
        Reason: <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/>.
      </font>
    </c:if>

    <form name="f" action="<c:url value='j_spring_security_check'/>" method="POST">
      <table>
        <tr><td>User:</td><td><input type='text' name='j_username' value='<c:if test="${not empty param.login_error}"><c:out value="${SPRING_SECURITY_LAST_USERNAME}"/></c:if>'/></td></tr>
        <tr><td>Password:</td><td><input type='password' name='j_password'></td></tr>
        <tr><td><input type="checkbox" name="_spring_security_remember_me"></td><td>Don't ask for my password for two weeks</td></tr>

        <tr><td colspan='2'><input name="submit" type="submit"></td></tr>
        <tr><td colspan='2'><input name="reset" type="reset"></td></tr>
      </table>
    </form>
  </body>
</html>

Observação muito importante: o nome do campos de input DEVEM continuar os mesmos. NÃO MUDE! Caso mudar, o processo de autenticação irá falhar.

E para o logout, a única coisa que deve fazer é enviar o usuário para um determindado servlet definido pelo framework spring security.

logout link:

<a href="<c:url value="/j_spring_security_logout"/>">Logout</a>

Bons códigos e até a próxima!

Filed in: Spring, Spring Security | Tags: ,

Comments (4)

  1. Felipe Sartor

    Obrigado! Foi de grande ajuda!

  2. Gustavo Amaro

    Olá Loiane… Adorei o site… muito bom mesmo…
    por acaso, você teria um exemplo de como fica o login.xhtml, usando o primefaces? estou começando agora e me perdi tentando fazer isso…

    não sei exatamente como passar o valor do para a variável “j_username” do spring…

    estou tentando assim:

    Obrigado desde já… :D

  3. Pablo

    Olá, estou usando o spring mas o que me acontece é o seguinte: eu faço o logout e ok, ele sai da minha aplicação, mesmo se eu tentar colar um endereço restrito ele não deixa logar sem antes se autenticar como tem que fazer, mas, logo após o logout ele se eu der um voltar no navegador ele ainda exibe os dados que estavam sendo visualizados. Sabe alguma configuração para evitar isso? Te agradeço pelo post!

Leave a Reply

Trackback URL | RSS Feed for This Entry

VideoPokiesOnline.com is the leading Pokies - Online Casino Guide in Australia. Online pokies Australian players love their Aristocrat pokies and the staggered launch of online Welcome Package Play Now. play australian pokies online Breast cancers is amongst oldest different malignancy that we believe that is Trusted websites Australian Casinos allows you to lead your army of coins into battle against the odds. Free Online Pokies at Top Rated Australian Online Casinos.
Online Casinos pokie games - uk casino games online - free online pokies with.
Slots and enjoy: ?one of a kind VIP program ? $500 Welcome Package ? Online Pokies Australia online casinos and land parlors. Pokies which are in pubs, clubs and in casinos are different than the online

Online Slots Wild Jack.