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

Shane Bryzak Shane_Bryzak at symantec.com
Tue Aug 1 21:06:11 EDT 2006


  User: sbryzak2
  Date: 06/08/01 21:06:11

  Modified:    examples/security/src/org/jboss/seam/example/security     
                        AuthenticatorAction.java LoginAction.java
                        LoginLocal.java
  Removed:     examples/security/src/org/jboss/seam/example/security     
                        LoginModule.java LoginModuleLocal.java
  Log:
  Fixed logout() method, removed LoginModule
  
  Revision  Changes    Path
  1.3       +35 -7     jboss-seam/examples/security/src/org/jboss/seam/example/security/AuthenticatorAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: AuthenticatorAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/security/src/org/jboss/seam/example/security/AuthenticatorAction.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- AuthenticatorAction.java	1 Aug 2006 02:07:06 -0000	1.2
  +++ AuthenticatorAction.java	2 Aug 2006 01:06:11 -0000	1.3
  @@ -1,13 +1,14 @@
   package org.jboss.seam.example.security;
   
   import javax.persistence.EntityManager;
  -import javax.persistence.PersistenceContext;
  +import javax.persistence.NoResultException;
   
  +import org.jboss.seam.annotations.In;
   import org.jboss.seam.annotations.Name;
   import org.jboss.seam.security.Authentication;
   import org.jboss.seam.security.AuthenticationException;
  -import org.jboss.seam.security.provider.AuthenticationProvider;
   import org.jboss.seam.security.UsernamePasswordToken;
  +import org.jboss.seam.security.provider.AuthenticationProvider;
   
   /**
    *
  @@ -17,15 +18,42 @@
   @Name("authenticatorAction")
   public class AuthenticatorAction implements AuthenticationProvider
   {
  -  @PersistenceContext EntityManager manager;
  +  @In(create=true)
  +    private EntityManager entityManager;
   
     public Authentication authenticate(Authentication authentication)
         throws AuthenticationException
     {
  +    try
  +    {
  +      User user = (User) entityManager.createQuery(
  +          "from User where username = :username and password = :password")
  +          .setParameter("username", authentication.getPrincipal().toString())
  +          .setParameter("password", authentication.getCredentials())
  +          .getSingleResult();
  +
  +      String[] roles = new String[user.getRoles().size()];
  +      int idx = 0;
  +      for (Role role : user.getRoles())
  +        roles[idx++] = role.getRole();
  +
       UsernamePasswordToken token = new UsernamePasswordToken(
  -      authentication.getPrincipal(), authentication.getCredentials(),
  -        new String[] {"user", "admin"});
  +        authentication.getPrincipal(), authentication.getCredentials(), roles);
   
       return token;
     }
  +    catch (NoResultException ex)
  +    {
  +      throw new AuthenticationException("Invalid username/password");
  +    }
  +    catch (Exception ex)
  +    {
  +      throw new AuthenticationException("Unknown authentication error", ex);
  +    }
  +  }
  +
  +  public void unauthenticate(Authentication authentication)
  +  {
  +
  +  }
   }
  
  
  
  1.5       +13 -5     jboss-seam/examples/security/src/org/jboss/seam/example/security/LoginAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: LoginAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/security/src/org/jboss/seam/example/security/LoginAction.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- LoginAction.java	1 Aug 2006 02:07:06 -0000	1.4
  +++ LoginAction.java	2 Aug 2006 01:06:11 -0000	1.5
  @@ -6,13 +6,15 @@
   import org.jboss.seam.annotations.In;
   import org.jboss.seam.annotations.Name;
   import org.jboss.seam.annotations.Out;
  +import org.jboss.seam.contexts.Contexts;
  +import org.jboss.seam.core.FacesMessages;
   import org.jboss.seam.security.Authentication;
   import org.jboss.seam.security.AuthenticationException;
   import org.jboss.seam.security.UsernamePasswordToken;
   import org.jboss.seam.security.authenticator.Authenticator;
   
   /**
  - * Authenticates the user against the Realm.
  + * Authenticates the user.
    *
    * @author Shane Bryzak
    */
  @@ -21,14 +23,12 @@
   public class LoginAction implements LoginLocal
   {
     @In(value = "org.jboss.seam.security.Authenticator") Authenticator authenticator;
  -  @Out(value = "org.jboss.seam.security.Authentication", scope = SESSION) Authentication authentication;
  +  @Out(value = "org.jboss.seam.security.Authentication", scope = SESSION, required = false) Authentication authentication;
   
  -  @In @Out User user;
  +  @In(required = false) @Out(required = false) User user;
   
     public String login()
     {
  -    System.out.println("login() called");
  -
       authentication = new UsernamePasswordToken(user.getUsername(), user.getPassword());
       try
       {
  @@ -37,7 +37,15 @@
       }
       catch (AuthenticationException ex)
       {
  +      FacesMessages.instance().add("Invalid login");
         return "login";
       }
     }
  +
  +  public String logout()
  +  {
  +    authentication = null;
  +    Contexts.getSessionContext().remove("org.jboss.seam.security.Authentication");
  +    return "login";
  +  }
   }
  
  
  
  1.2       +1 -0      jboss-seam/examples/security/src/org/jboss/seam/example/security/LoginLocal.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: LoginLocal.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/security/src/org/jboss/seam/example/security/LoginLocal.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- LoginLocal.java	25 Jul 2006 06:56:16 -0000	1.1
  +++ LoginLocal.java	2 Aug 2006 01:06:11 -0000	1.2
  @@ -7,4 +7,5 @@
   public interface LoginLocal
   {
     String login();
  +  String logout();
   }
  
  
  



More information about the jboss-cvs-commits mailing list