Featured Posts

ExtJS, Spring MVC 3 e Hibernate 3.5: Exemplo de um... Este tutorial demonstra como implementar um CRUD Grid (Create, Read, Update, Delete) usando ExtJS, Spring MVC 3 e Hibernate 3.5 O que geralmente queremos fazer com os dados Create (Criar) - (Insert) Read...

Readmore

ExtJS plugin: PagingToolbarResizer Ei pessoal, Este é o meu primeiro plugin em ExtJS. Apesar de não ser algo complicado, estou muito feliz e é um grande feito para mim! Bem, chega e introduções e vamos ao que realmente interessa. O...

Readmore

8++ perguntas para @loiane - por @hlegius Tempos atrás o Helio me enviou um questionário para eu responder, uma espécie de "entrevista". E agora ele publicou no blog dele! :) São minhas opiniões pessoais, e isso não quer dizer que estou...

Readmore

Carreira em TI: Currículo em Inglês Uma das grandes dificuldades para as pessoas da área de TI é, muitas vezes, escrever um bom currículo em inglês. E ter um currículo em inglês, é essencial, já que inglês é tão importante quanto...

Readmore

Entrevista para o Jornal A Tribuna Jan/2010: Profissões... Na última de semana de janeiro tive a honra de conceder mais uma entrevista para o jornal A Tribuna - vendido no Espírito Santo, meu estado natal - sobre mercado de trabalho na área de TI. A reportagem...

Readmore

Spring Security: Página login.jsp e Logout

Posted by Loiane | Posted in Spring, Spring Security | Posted on 25-01-2010

0

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!

  • Share/Bookmark

Posts Similares

Write a comment