[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