O seam 3 foi modularizado e precisei usar o módulo Seam Security em um projeto JSF 2.0 e tive alguns problemas para configurar pois a documentação, por ser uma tecnologia nova ainda, não está muito convincente.
Bem, vamos ao que interessa.
Para o projeto que faremos abaixo será utilizado:
- Eclipse Helios
- Maven 3
- JBoss AS 6
- JDK 1.6
É importante que o plugin do Maven esteja instalado no seu Eclipse, segue o link de instalação se ainda não o tiver: http://m2eclipse.sonatype.org/sites/m2e
Para iniciarmos um projeto no Eclipse clique em "New/Other" e na janela "New", digite "maven" em "Wizards" e escolha a opção "Maven Project" como mostra a figura abaixo:
Clique em "Next".
Clique em "Next".
Preencha a próxima tela com as seguintes informações:
Clique em "Finish".
A estrutura será a seguinte:
Agora devemos criar a pasta "WEB-INF" dentro da pasta "webapp", para isso clique com o botão direito em "webapp" e clique em "new/other/folder", digite "folder" em wizard, selcione a opção "General/folder", clique em "Next", em "Folder name" digite "WEB-INF" (maiúsculo). A estrutura ficará da seguinte forma:
Dentro da pasta "WEB-INF" serão colocados três arquivos: web.xml, faces-config.xml e beans.xml, abaixo segue o código dos três segue abaixo:
web.xml:
<web-app id="WebApp_ID" version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>VirtualStore</display-name>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>bluesky</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
faces-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
beans.xml:
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:s="urn:java:ee" xmlns:security="urn:java:org.jboss.seam.security"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
<interceptors>
<class>org.jboss.seam.security.extension.SecurityInterceptor</class>
</interceptors>
</beans>
Segue a estrutura abaixo:
Agora iremos criar duas páginas: login.xhtml e cadastro.xhtml. Para isso clique com o botão direito em cima da pasta "webapp" e selecione "new/other", em "Wizard" digite "xhtml" e selecione a opção "XHTML Page" e clique em "Next".
Nesta tela, em "File name" digite "login" e clique em "Next".
Nesta tela escolha a opção "Blank JSF Page" e clique em "Finish".
A estrutura ficará assim:
O código da página será o serguinte:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head></h:head>
<body>
</body>
</html>
Repita o procedimento e crie a página "cadastro.xhtml".






