[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