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

Shane Bryzak Shane_Bryzak at symantec.com
Wed Jul 26 02:03:14 EDT 2006


  User: sbryzak2
  Date: 06/07/26 02:03:14

  Modified:    examples/security/src/org/jboss/seam/example/security     
                        LoginAction.java User.java
  Added:       examples/security/src/org/jboss/seam/example/security     
                        LoginModule.java LoginModuleLocal.java Role.java
  Log:
  Updated security test app
  
  Revision  Changes    Path
  1.2       +7 -3      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.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- LoginAction.java	25 Jul 2006 06:56:16 -0000	1.1
  +++ LoginAction.java	26 Jul 2006 06:03:14 -0000	1.2
  @@ -1,10 +1,13 @@
   package org.jboss.seam.example.security;
   
  -import org.jboss.seam.annotations.Name;
  +import java.security.Principal;
   import javax.ejb.Stateless;
  +
   import org.jboss.seam.annotations.In;
  +import org.jboss.seam.annotations.Name;
  +import org.jboss.seam.annotations.Out;
  +import org.jboss.seam.core.FacesMessages;
   import org.jboss.seam.security.realm.Realm;
  -import java.security.Principal;
   
   /**
    * Authenticates the user against the Realm.
  @@ -17,7 +20,7 @@
   {
     @In("org.jboss.seam.security.realm.Realm") Realm realm;
   
  -  @In User user;
  +  @In @Out User user;
   
     public String login()
     {
  @@ -31,6 +34,7 @@
       }
       catch (Exception ex)
       {
  +      FacesMessages.instance().add("Invalid login, please check your username and password are correct");
         return "login";
       }
     }
  
  
  
  1.2       +21 -15    jboss-seam/examples/security/src/org/jboss/seam/example/security/User.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: User.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/security/src/org/jboss/seam/example/security/User.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- User.java	25 Jul 2006 06:56:16 -0000	1.1
  +++ User.java	26 Jul 2006 06:03:14 -0000	1.2
  @@ -1,8 +1,12 @@
   package org.jboss.seam.example.security;
   
  +import java.util.Set;
   import javax.persistence.Entity;
  -import org.jboss.seam.annotations.Name;
   import javax.persistence.Id;
  +import javax.persistence.OneToMany;
  +
  +import org.jboss.seam.annotations.Name;
  +import javax.persistence.JoinColumn;
   
   /**
    * <p>PROPRIETARY/CONFIDENTIAL Use of this product is subject to license terms.
  @@ -15,38 +19,40 @@
   @Name("user")
   public class User
   {
  -  private Integer userId;
     private String username;
     private String password;
  +  private Set<Role> roles;
   
  -  public String getPassword()
  +  @Id
  +  public String getUsername()
     {
  -    return password;
  +    return username;
     }
   
  -  public void setPassword(String password)
  +  public String getPassword()
     {
  -    this.password = password;
  +    return password;
     }
   
  -  public void setUsername(String username)
  +  @OneToMany
  +  @JoinColumn(name = "USERNAME")
  +  public Set<Role> getRoles()
     {
  -    this.username = username;
  +    return roles;
     }
   
  -  @Id
  -  public void setUserId(Integer userId)
  +  public void setPassword(String password)
     {
  -    this.userId = userId;
  +    this.password = password;
     }
   
  -  public Integer getUserId()
  +  public void setUsername(String username)
     {
  -    return userId;
  +    this.username = username;
     }
   
  -  public String getUsername()
  +  public void setRoles(Set<Role> roles)
     {
  -    return username;
  +    this.roles = roles;
     }
   }
  
  
  
  1.1      date: 2006/07/26 06:03:14;  author: sbryzak2;  state: Exp;jboss-seam/examples/security/src/org/jboss/seam/example/security/LoginModule.java
  
  Index: LoginModule.java
  ===================================================================
  package org.jboss.seam.example.security;
  
  import javax.ejb.Remove;
  import javax.ejb.Stateful;
  import javax.persistence.EntityManager;
  import javax.persistence.PersistenceContext;
  
  import org.jboss.seam.annotations.Destroy;
  import org.jboss.seam.annotations.Name;
  import javax.persistence.NoResultException;
  
  /**
   *
   * @author Shane Bryzak
   */
  @Stateful
  @Name("loginModule")
  public class LoginModule implements LoginModuleLocal
  {
    @PersistenceContext EntityManager manager;
  
    private String principal;
    private String[] roles;
  
    public void login(String username, String password)
        throws SecurityException
    {
      try
      {
        User user = (User) manager.createQuery(
            "from User where username = :username and password = :password")
            .setParameter("username", username)
            .setParameter("password", password)
            .getSingleResult();
  
        principal = user.getUsername();
        roles = new String[user.getRoles().size()];
        int idx = 0;
        for (Role role : user.getRoles())
          roles[idx++] = role.getRole();
      }
      catch (NoResultException ex)
      {
        throw new SecurityException("Invalid username/password");
      }
      catch (Exception ex)
      {
        throw new SecurityException("Unknown error", ex);
      }
    }
  
    public String getPrincipal()
    {
      return principal;
    }
  
    public String[] getRoles()
    {
      return roles;
    }
  
    @Remove @Destroy
    public void destroy()
    {
  
    }
  }
  
  
  
  1.1      date: 2006/07/26 06:03:14;  author: sbryzak2;  state: Exp;jboss-seam/examples/security/src/org/jboss/seam/example/security/LoginModuleLocal.java
  
  Index: LoginModuleLocal.java
  ===================================================================
  package org.jboss.seam.example.security;
  
  /**
   *
   * @author Shane Bryzak
   */
  public interface LoginModuleLocal
  {
    void login(String username, String password) throws SecurityException;
    String getPrincipal();
    String[] getRoles();
    void destroy();
  }
  
  
  
  1.1      date: 2006/07/26 06:03:14;  author: sbryzak2;  state: Exp;jboss-seam/examples/security/src/org/jboss/seam/example/security/Role.java
  
  Index: Role.java
  ===================================================================
  package org.jboss.seam.example.security;
  
  import javax.persistence.Entity;
  import org.jboss.seam.annotations.Name;
  import javax.persistence.Id;
  import javax.persistence.ManyToOne;
  import javax.persistence.JoinColumn;
  
  /**
   * A user role.
   *
   * @author Shane Bryzak
   * @version 1.0
   */
  @Entity
  @Name("userrole")
  public class Role
  {
    private Integer roleId;
    private User user;
    private String role;
  
    @Id
    public Integer getRoleId()
    {
      return roleId;
    }
  
    @ManyToOne
    public User getUser()
    {
      return user;
    }
  
    public String getRole()
    {
      return role;
    }
  
    public void setRoleId(Integer roleId)
    {
      this.roleId = roleId;
    }
  
    public void setUser(User user)
    {
      this.user = user;
    }
  
    public void setRole(String role)
    {
      this.role = role;
    }
  }
  
  
  



More information about the jboss-cvs-commits mailing list