[jboss-user] [JBoss Seam] - identity.isLoggedIn() question

asookazian do-not-reply at jboss.com
Tue Aug 21 19:09:05 EDT 2007


in the API doc for org.jboss.seam.security.Identity, isLoggedIn() has the following description:  If there is a principal set, then the user is logged in.

How/when does the principal get set?  I'm assuming after the successful execution of identity.setUsername().  In the following code, identity.isLoggedIn() is returning false but is evaluating to true later in an xhtml file.  Other test cases (with the same NTLM username) identity.isLoggedIn() returns true.  Any ideas why?  identity instance is being depency injected earlier in the class...


  | public boolean authenticate() {
  | 				
  | 		try {
  | 			identity.setUsername(((NtlmPasswordAuthentication) sessionContext.get("NtlmHttpAuth")).getUsername());
  | 						
  | 			Query q = em.createQuery("SELECT r FROM Users r WHERE r.networkLogin = :username");
  | 			q.setParameter("username", identity.getUsername());
  | 			Users user = (Users) q.getSingleResult();
  | 						
  | 			Set<UserRoles> myRoles = user.getUserRoleses();
  | 						
  | 			if (user.getUserRoleses() != null) {				
  | 				for (UserRoles ur : user.getUserRoleses()) {
  | 						
  | 					identity.addRole(ur.getRoles().getSecRoleRoleName());		
  | 				}
  | 			}
  | 			
  | 			log.debug("isLoggedin = " + identity.isLoggedIn());
  | 			
  | 			return true;
  | 		}
  | 		
  | 		catch(NoResultException ex) {
  | 			ex.printStackTrace();
  | 			FacesMessages.instance().add("Invalid username/password");
  | 			return false;
  | 		}
  | }

home.xhtml:

<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  |                       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  | <ui:composition xmlns="http://www.w3.org/1999/xhtml"
  |                 xmlns:s="http://jboss.com/products/seam/taglib"
  |                 xmlns:ui="http://java.sun.com/jsf/facelets"
  |                 xmlns:f="http://java.sun.com/jsf/core"
  |                 xmlns:h="http://java.sun.com/jsf/html"
  |                 xmlns:rich="http://richfaces.ajax4jsf.org/rich"
  |                 template="layout/template.xhtml">
  | 
  | <ui:define name="body">
  | 
  |     <h:messages globalOnly="true" styleClass="message"/>
  |     
  |     <rich:panel>
  |     <!-- <f:facet name="header">Welcome!</f:facet>  -->
  |     <h:outputText value="test" />
  |     <h:outputText value="Welcome, #{identity.username}" rendered="#{identity.loggedIn}"/>
  |     <p>This empty shell application includes:</p>
  |     <ul>
  |         <li>Ant build script</li>
  |         <li>Deployment to JBoss AS</li>
  |         <li>Integration testing using TestNG and JBoss Embeddable EJB3</li>
  |         <li>EJB 3.0 Seam components</li>
  |         <li>Templated Facelets views</li>
  |         <li>HSQL (or MySQL) Datasource</li>
  |         <li>Default CSS stylesheet</li>
  |         <li>Internationalization support</li>
  |     </ul>
  |     </rich:panel>
  |     
  | </ui:define> 
  | </ui:composition>

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4076540#4076540

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4076540



More information about the jboss-user mailing list