<h:outputText value="Voce esta na empresa: #{usuarioBean.usuario.empresa.descricao}!"/><br/> <a href="./logout">Sair</a> </h:body></html>Nao tem nada de mais, so estou usando a classe UsuarioBean.java para mostrar o usuario que esta logado na sessao da aplicacao. Ficando desta forma:Pagina de login, login.xhtml:<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <h:head> <title>Login Customizado</title> </h:head> <h:body> <form action="j_spring_security_check" method="post" style="text-align: right;"> <fieldset> <legend>Login</legend> <h:panelGrid columns="2"> <h:outputText value="Login:" /> <h:inputText id="j_login" /> <h:outputText value="Senha:" /> <h:inputSecret id="j_senha" /> <h:outputText value="Empresa:" /> <h:selectOneMenu id="j_empresa" style="width: 155px" > <f:selectItems value="#{empresaBean.empresas}" var="e" itemLabel="#{e.descricao}" itemValue="#{e.codigo}" /> </h:selectOneMenu> <h:outputText /> <h:commandButton value="Acessar" id="btnAcessar" /> </h:panelGrid> <h:message for="btnAcessar" /> </fieldset> </form> </h:body></html>A unica coisa diferente do normal das paginas de login do Spring Security, e o caso de ter adicionado o h:selectOneMenu para fazer o combo, fora isso, o restante ja foi explicado na postagem que eu indico para leitura no comeco do post. No caso da h:message serve para mostrar as mensagens enviadas pelo FacesMessage, aparecendo dessa forma:Vamos ver agora os arquivos de configuracao que ficam dentro do WEB-INF.Comecando com a configuracao basica no web.xml para o Spring Security ser identificado (ja explicado na postagem indicada):<!-- Spring security --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping><!-- Fim spring security --> Bom, como devem saber na versao JEE 6, o faces-config.xml e opcional, ou seja e utilizado em alguns casos, como o caso agora, onde eu preciso "registrar" o PhaseListener (a classe AutenticacaoPhaseListener.java): <faces-config version="2.1" 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_1.xsd"> <lifecycle> <phase-listener>javasemcafe.controller.AutenticacaoPhaseListener</phase-listener> </lifecycle></faces-config>Agora vamos para toda a "magica" da customizacao do login, o applicationContext.xml:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:security="http://www.springframework.org/schema/security" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> <security:http auto-config="false" use-expressions="true" access-denied-page="/index.jsf" entry-point-ref="authenticationEntryPoint" > <security:intercept-url pattern="/index.jsf" access="hasRole('ROLE_ADM')"/> <security:logout invalidate-session="true" logout-success-url="/login.jsf" logout-url="/logout"/> <security:custom-filter ref="authenticationFilter" position="FORM_LOGIN_FILTER"/> </security:http> <bean id="authenticationFilter" class="javasemcafe.dao.AutenticacaoFilter" p:authenticationManager-ref="authenticationManager"/> <bean id="authenticationEntryPoint" class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint" p:loginFormUrl="/login.jsf"/> <security:authentication-manager alias="authenticationManager" /></beans>O que vemos de diferente na configuracao do applicationContext, e a partir da 15o linha, onde de uma forma geral, estou dizendo que a autenticacao devera ser feita pela classe: javasemcafe.dao.AutenticacaoFilter, como pode ver na linha 18.Bom pessoal, acabei deixando de explicar muitas classes (do Spring Security) porque senao essa postagem iria ficar bem mais longa!Ate a proxima :)andii.brunetta