[jboss-cvs] jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace ...

Shane Bryzak Shane_Bryzak at symantec.com
Mon Jan 8 07:51:41 EST 2007


  User: sbryzak2
  Date: 07/01/08 07:51:41

  Modified:    examples/seamspace/src/org/jboss/seam/example/seamspace   
                        LoginAction.java ProfileAction.java
  Removed:     examples/seamspace/src/org/jboss/seam/example/seamspace   
                        AuthenticatorAction.java
  Log:
  updated seamspace example to use new jaas authentication
  
  Revision  Changes    Path
  1.7       +40 -5     jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/LoginAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: LoginAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/LoginAction.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -b -r1.6 -r1.7
  --- LoginAction.java	2 Jan 2007 07:44:26 -0000	1.6
  +++ LoginAction.java	8 Jan 2007 12:51:41 -0000	1.7
  @@ -1,7 +1,12 @@
   package org.jboss.seam.example.seamspace;
   
  +import java.util.Set;
  +
   import javax.ejb.Remove;
   import javax.ejb.Stateful;
  +import javax.persistence.EntityManager;
  +import javax.persistence.NoResultException;
  +import javax.security.auth.callback.CallbackHandler;
   import javax.security.auth.login.LoginContext;
   import javax.security.auth.login.LoginException;
   
  @@ -9,13 +14,14 @@
   import org.jboss.seam.Seam;
   import org.jboss.seam.annotations.Destroy;
   import org.jboss.seam.annotations.In;
  +import org.jboss.seam.annotations.Logger;
   import org.jboss.seam.annotations.Name;
   import org.jboss.seam.annotations.Out;
   import org.jboss.seam.annotations.Scope;
   import org.jboss.seam.annotations.Synchronized;
   import org.jboss.seam.core.FacesMessages;
  +import org.jboss.seam.log.Log;
   import org.jboss.seam.security.SeamSecurityManager;
  -import org.jboss.seam.security.UsernamePasswordToken;
   
   /**
    * Login action
  @@ -28,19 +34,26 @@
   @Name("login")
   public class LoginAction implements LoginLocal
   {
  +   @Logger 
  +   private Log log;  
  +   
      @In(required = false)
      @Out(required = false)
      Member member;
   
  +   @In(create=true)
  +   private EntityManager entityManager;   
  +   
      private boolean loggedIn;
   
      public void login()
      {
         try
         {
  -         LoginContext lc = SeamSecurityManager.instance().createLoginContext();
  -         lc.getSubject().getPrincipals().add(new UsernamePasswordToken(
  -               member.getUsername(), member.getPassword()));
  +         CallbackHandler cbh = SeamSecurityManager.instance().createCallbackHandler(
  +               member.getUsername(), member.getPassword());
  +         
  +         LoginContext lc = SeamSecurityManager.instance().createLoginContext(cbh);
            lc.login();
            
            loggedIn = true;
  @@ -51,6 +64,28 @@
         }
      }
   
  +   public boolean authenticate(String username, String password, Set<String> roles) 
  +   {
  +      try
  +      {            
  +         Member member = (Member) entityManager.createQuery(
  +            "from Member where username = :username and password = :password")
  +            .setParameter("username", username)
  +            .setParameter("password", password)
  +            .getSingleResult();
  +
  +         for (MemberRole mr : member.getRoles())
  +            roles.add(mr.getName());
  +         
  +         return true;
  +      }
  +      catch (NoResultException ex)
  +      {
  +         log.warn("Invalid username/password");
  +         return false;
  +      }      
  +   }   
  +
      public void logout() 
      {
         loggedIn = false;
  
  
  
  1.6       +2 -2      jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/ProfileAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ProfileAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/ProfileAction.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- ProfileAction.java	22 Dec 2006 06:53:46 -0000	1.5
  +++ ProfileAction.java	8 Jan 2007 12:51:41 -0000	1.6
  @@ -32,11 +32,11 @@
      @Factory("selectedMember")
      public void display()
      {      
  -      if (name == null && Identity.isSet())
  +      if (name == null && Identity.loggedIn())
         {
            selectedMember = (Member) entityManager.createQuery(
                  "from Member where username = :username")
  -               .setParameter("username", Identity.instance().getName())
  +               .setParameter("username", Identity.instance().getPrincipal().getName())
                  .getSingleResult();
         }
         else if (name != null)
  
  
  



More information about the jboss-cvs-commits mailing list