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

Shane Bryzak sbryzak at redhat.com
Thu Dec 13 21:35:21 EST 2007


  User: sbryzak2
  Date: 07/12/13 21:35:21

  Modified:    examples/seamspace/src/org/jboss/seam/example/seamspace       
                        Member.java ProfileAction.java RegisterAction.java
  Added:       examples/seamspace/src/org/jboss/seam/example/seamspace       
                        AuthenticationEvents.java MemberAccount.java
  Removed:     examples/seamspace/src/org/jboss/seam/example/seamspace       
                        Authenticator.java MemberRole.java
  Log:
  authenticate via identity manager
  
  Revision  Changes    Path
  1.20      +0 -41     jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/Member.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Member.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/Member.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -b -r1.19 -r1.20
  --- Member.java	17 Feb 2007 00:54:13 -0000	1.19
  +++ Member.java	14 Dec 2007 02:35:21 -0000	1.20
  @@ -11,8 +11,6 @@
   import javax.persistence.GeneratedValue;
   import javax.persistence.Id;
   import javax.persistence.JoinColumn;
  -import javax.persistence.JoinTable;
  -import javax.persistence.ManyToMany;
   import javax.persistence.OneToMany;
   import javax.persistence.OneToOne;
   import javax.persistence.Table;
  @@ -58,9 +56,6 @@
      };
      
      private Integer memberId;
  -   private String username;
  -
  -   private String hashedPassword;
      private String memberName;
      private String firstName;
      private String lastName;
  @@ -73,7 +68,6 @@
      private String location;
      private Date memberSince;
      
  -   private Set<MemberRole> roles;
      private Set<MemberImage> images;   
      private Set<MemberFriend> friends;
   
  @@ -89,29 +83,6 @@
      }
   
      @NotNull
  -   @Length(min = 4, max = 20)
  -   public String getUsername()
  -   {
  -      return username;
  -   }
  -
  -   public void setUsername(String username)
  -   {
  -      this.username = username;
  -   }
  -
  -   @NotNull
  -   public String getHashedPassword()
  -   {
  -      return hashedPassword;
  -   }
  -
  -   public void setHashedPassword(String hashedPassword)
  -   {
  -      this.hashedPassword = hashedPassword;
  -   }
  -   
  -   @NotNull
      @Length(min = 3, max = 40)
      @Pattern(regex="[a-zA-Z]?[a-zA-Z0-9_]+", 
            message="Member name must start with a letter, and only contain letters, numbers or underscores")
  @@ -162,18 +133,6 @@
         this.email = email;
      }
   
  -   @ManyToMany
  -   @JoinTable(name = "MemberRoles", joinColumns = @JoinColumn(name = "MEMBER_ID"), inverseJoinColumns = @JoinColumn(name = "ROLE_ID"))
  -   public Set<MemberRole> getRoles()
  -   {
  -      return roles;
  -   }
  -
  -   public void setRoles(Set<MemberRole> roles)
  -   {
  -      this.roles = roles;
  -   }
  -
      @OneToOne(fetch = FetchType.LAZY)
      @JoinColumn(name = "PICTURE_ID")
      public MemberImage getPicture()
  
  
  
  1.23      +1 -1      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.22
  retrieving revision 1.23
  diff -u -b -r1.22 -r1.23
  
  
  
  1.16      +36 -16    jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/RegisterAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: RegisterAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/RegisterAction.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -b -r1.15 -r1.16
  --- RegisterAction.java	1 Oct 2007 05:11:12 -0000	1.15
  +++ RegisterAction.java	14 Dec 2007 02:35:21 -0000	1.16
  @@ -13,9 +13,12 @@
   import org.jboss.seam.annotations.Factory;
   import org.jboss.seam.annotations.In;
   import org.jboss.seam.annotations.Name;
  +import org.jboss.seam.annotations.Observer;
   import org.jboss.seam.annotations.Out;
   import org.jboss.seam.faces.FacesMessages;
   import org.jboss.seam.security.Identity;
  +import org.jboss.seam.security.management.IdentityManager;
  +import org.jboss.seam.security.management.JpaIdentityStore;
   
   @Stateful
   @Name("register")
  @@ -30,13 +33,19 @@
      @In
      private Identity identity;
         
  +   @In
  +   private IdentityManager identityManager;
  +      
  +   private MemberAccount newAccount;
  +   
  +   private String username;   
  +   
      /**
       * Password confirmation
       */
      private String password;
      private String confirm;
      
  -   
      private String gender;
      
      private byte[] picture;
  @@ -60,25 +69,26 @@
         {
            FacesMessages.instance().addToControl("confirmPassword", "Passwords do not match");
         }
  +   }
               
  -      newMember.setHashedPassword(Hash.instance().hash(password));
  -            
  +   @Observer(JpaIdentityStore.EVENT_ACCOUNT_CREATED)
  +   public void accountCreated(MemberAccount account)
  +   {
  +      this.newAccount = account;
      }
   
      @End
      public void uploadPicture() 
      {
  -      newMember.setMemberSince(new Date());
  -      newMember.setRoles(new HashSet<MemberRole>());
  -      
  -      MemberRole userRole = (MemberRole) entityManager.createQuery(
  -            "from MemberRole where name = 'user'")
  -            .getSingleResult();
  -      
  -      newMember.getRoles().add(userRole);
  +      identityManager.createAccount(username, password);
  +      identityManager.grantRole(username, "user");
   
  +      newMember.setMemberSince(new Date());      
         entityManager.persist(newMember);
   
  +      newAccount.setMember(newMember);
  +      newAccount = entityManager.merge(newAccount);
  +
         if (picture != null && picture.length > 0)
         {
            MemberImage img = new MemberImage();
  @@ -92,11 +102,21 @@
         }
         
         // Login the user
  -      identity.setUsername(newMember.getUsername());
  +      identity.setUsername(username);
         identity.setPassword(password);
         identity.login();
      }
      
  +   public String getUsername()
  +   {
  +      return username;
  +   }
  +   
  +   public void setUsername(String username)
  +   {
  +      this.username = username;
  +   }
  +   
      public String getPassword()
      {
         return password;
  
  
  
  1.1      date: 2007/12/14 02:35:21;  author: sbryzak2;  state: Exp;jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/AuthenticationEvents.java
  
  Index: AuthenticationEvents.java
  ===================================================================
  package org.jboss.seam.example.seamspace;
  
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.annotations.Observer;
  import org.jboss.seam.contexts.Contexts;
  import org.jboss.seam.security.Identity;
  import org.jboss.seam.security.RuleBasedIdentity;
  import org.jboss.seam.security.management.JpaIdentityStore;
  
  @Name("authenticationEvents")
  public class AuthenticationEvents
  {
     @Observer(JpaIdentityStore.EVENT_ACCOUNT_AUTHENTICATED)
     public void loginSuccessful(MemberAccount account)
     {
        Contexts.getSessionContext().set("authenticatedMember", account.getMember());
        ((RuleBasedIdentity) Identity.instance()).getSecurityContext().insert(account.getMember());
     }
  }
  
  
  
  1.1      date: 2007/12/14 02:35:21;  author: sbryzak2;  state: Exp;jboss-seam/examples/seamspace/src/org/jboss/seam/example/seamspace/MemberAccount.java
  
  Index: MemberAccount.java
  ===================================================================
  package org.jboss.seam.example.seamspace;
  
  import java.io.Serializable;
  import java.util.Set;
  
  import javax.persistence.Entity;
  import javax.persistence.GeneratedValue;
  import javax.persistence.Id;
  import javax.persistence.JoinColumn;
  import javax.persistence.JoinTable;
  import javax.persistence.ManyToMany;
  import javax.persistence.OneToOne;
  import javax.persistence.Table;
  import javax.persistence.UniqueConstraint;
  
  import org.hibernate.validator.Length;
  import org.hibernate.validator.NotNull;
  import org.jboss.seam.security.management.UserAccount;
  
  @Entity
  @Table(uniqueConstraints = @UniqueConstraint(columnNames = "username"))
  public class MemberAccount extends UserAccount implements Serializable
  {
     private static final long serialVersionUID = 6368734442192368866L;
     
     private Integer accountId;
     private String username;
     private String passwordHash;
     private boolean enabled;   
     private AccountType accountType;
     private Set<UserAccount> memberships;
     private Member member;   
     
     @Id @GeneratedValue
     public Integer getAccountId()
     {
        return accountId;
     }
     
     public void setAccountId(Integer accountId)
     {
        this.accountId = accountId;
     }
     
     @NotNull
     @Length(min = 4, max = 20)
     @Override
     public String getUsername()
     {
        return username;
     }
     
     @Override
     public void setUsername(String username)
     {
        this.username = username;
     }
     
     @Override   
     public String getPasswordHash()
     {
        return passwordHash;
     }
     
     @Override
     public void setPasswordHash(String passwordHash)
     {
        this.passwordHash = passwordHash;      
     }   
     
     @Override
     public AccountType getAccountType()
     {
        return accountType;
     }
     
     @Override
     public void setAccountType(AccountType accountType)
     {
        this.accountType = accountType;
     }
     
     @Override
     public boolean isEnabled()
     {
        return enabled;
     }
  
  
     @Override
     public void setEnabled(boolean enabled)
     {
        this.enabled = enabled;      
     }   
  
     @ManyToMany(targetEntity = MemberAccount.class)
     @JoinTable(name = "AccountMembership", 
           joinColumns = @JoinColumn(name = "AccountId"),
           inverseJoinColumns = @JoinColumn(name = "MemberOf")
        )
     @Override
     public Set<UserAccount> getMemberships()
     {
        return memberships;
     }
     
     @Override
     public void setMemberships(Set<UserAccount> memberships)
     {
        this.memberships = memberships;
     }
     
     @OneToOne
     @JoinColumn(name = "MEMBER_ID")
     public Member getMember()
     {
        return member;
     }
     
     public void setMember(Member member)
     {
        this.member = member;
     }
  }
  
  
  



More information about the jboss-cvs-commits mailing list