Author: bdaw
Date: 2009-02-05 07:40:41 -0500 (Thu, 05 Feb 2009)
New Revision: 12778
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/DelegatingUserProfileModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/IdentityLoginModule.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLoginModule.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/boot/IdentityServiceLoader.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateMembershipModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateRoleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateRoleModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateUserImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateUserProfileModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/event/UserProfileChangedEvent.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPConnectionContext.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPExtRoleModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPExtUserModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPRoleModule.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPRoleModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserModule.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserProfileModuleImpl.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/MembershipModuleService.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/RoleModuleService.java
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/UserProfileModuleService.java
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/cas/CASAuthenticationHandler.java
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/cas/CASAuthenticationValve.java
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/josso/JOSSOLogoutValve.java
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/opensso/OpenSSOAuthenticationValve.java
Log:
synchronizing sources from branch 1.0 to trunk
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/DelegatingUserProfileModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/DelegatingUserProfileModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/DelegatingUserProfileModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -134,7 +134,7 @@
log.debug("Delegating to DB module");
getDBModule().setProperty(user, name, propertyValue);
- fireUserProfileChangedEvent(user.getId(), user.getUserName(), name);
+ fireUserProfileChangedEvent(user.getId(), user.getUserName(), name,
propertyValue);
return;
}
throw new IdentityException("Cannot process property - incorrect profile or
module configuration");
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/IdentityLoginModule.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/IdentityLoginModule.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/IdentityLoginModule.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -50,7 +50,7 @@
/**
* A login module that uses the user module.
- *
+ *
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
* @author <a href="mailto:sshah@redhat.com">Sohil Shah</a>
@@ -186,16 +186,31 @@
// Set the user Status in the request so that the login page can show an
error message accordingly
request.setAttribute("org.jboss.portal.userStatus",
userStatus);
-
- if (userStatus == UserStatus.OK)
+
+ if (userStatus == UserStatus.DISABLE)
{
+ request.setAttribute("org.jboss.portal.loginError",
"Your account is disabled");
+ return false;
+ }
+ else if (userStatus == UserStatus.NOTASSIGNEDTOROLE)
+ {
+ request.setAttribute("org.jboss.portal.loginError", "The
user doesn't have the correct role");
+ return false;
+ }
+ else if ((userStatus == UserStatus.UNEXISTING) || userStatus ==
UserStatus.WRONGPASSWORD)
+ {
+ request.setAttribute("org.jboss.portal.loginError", "The
user doesn't exist or the password is incorrect");
+ return false;
+ }
+ else if (userStatus == UserStatus.OK)
+ {
return true;
}
else
{
+ log.error("Unexpected error while logging in");
return false;
- }
- }
+ } }
catch (Exception e)
{
log.error("Error when validating password", e);
@@ -226,7 +241,7 @@
// exception...
if (user == null)
{
- throw new NoSuchUserException("UserModule returned null user
object");
+ throw new NoSuchUserException("UserModule returned null user
object");
}
//This is because LDAP binds can be non case sensitive
@@ -352,7 +367,7 @@
{
if (userNameToLowerCase != null &&
userNameToLowerCase.equalsIgnoreCase("true"))
{
- return super.getUsername().toLowerCase();
+ return super.getUsername().toLowerCase();
}
return super.getUsername();
}
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -96,7 +96,7 @@
log.trace("synchronizeRoles = " + synchronizeRoles);
log.trace("defaultAssignedRole = " + defaultAssignedRole);
log.trace("preserveRoles = " + preserveRoles);
-
+
}
protected UserModule getUserModule() throws Exception
@@ -178,25 +178,37 @@
protected Group[] getRoleSets() throws LoginException
{
Group[] rolesGroup = super.getRoleSets();
- if (additionalRole != null)
+ try
{
- try
+ for (int i = 0; i < rolesGroup.length; i++)
{
- for (int i = 0; i < rolesGroup.length; i++)
+ Group group = rolesGroup[i];
+ if (group.getName().equals("Roles"))
{
- Group group = rolesGroup[i];
- if (group.getName().equals("Roles"))
+ if (additionalRole != null)
{
- group.addMember(createIdentity(additionalRole));
+ Principal role = createIdentity(additionalRole);
+ if (!group.isMember(role))
+ {
+ group.addMember(role);
+ }
}
+ if (defaultAssignedRole != null)
+ {
+ Principal role = createIdentity(defaultAssignedRole);
+ if (!group.isMember(role))
+ {
+ group.addMember(role);
+ }
+ }
}
}
- catch (Exception e)
- {
- //just a try
- log.error("Error when adding additional role: ", e);
- }
}
+ catch (Exception e)
+ {
+ //just a try
+ log.error("Error when adding additional role: ", e);
+ }
return rolesGroup;
}
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -94,7 +94,7 @@
log.trace("synchronizeRoles = " + synchronizeRoles);
log.trace("defaultAssignedRole = " + defaultAssignedRole);
log.trace("preserveRoles = " + preserveRoles);
-
+
}
protected UserModule getUserModule() throws Exception
@@ -176,25 +176,40 @@
protected Group[] getRoleSets() throws LoginException
{
Group[] rolesGroup = super.getRoleSets();
- if (additionalRole != null)
+
+ try
{
- try
+ for (int i = 0; i < rolesGroup.length; i++)
{
- for (int i = 0; i < rolesGroup.length; i++)
+ Group group = rolesGroup[i];
+ if (group.getName().equals("Roles"))
{
- Group group = rolesGroup[i];
- if (group.getName().equals("Roles"))
+ if (additionalRole != null)
{
- group.addMember(createIdentity(additionalRole));
+ Principal role = createIdentity(additionalRole);
+ if (!group.isMember(role))
+ {
+ group.addMember(role);
+ }
}
+ if (defaultAssignedRole != null)
+ {
+ Principal role = createIdentity(defaultAssignedRole);
+ if (!group.isMember(role))
+ {
+ group.addMember(role);
+ }
+ }
}
}
- catch (Exception e)
- {
- //just a try
- log.error("Error when adding additional role: ", e);
- }
}
+ catch (Exception e)
+ {
+ //just a try
+ log.error("Error when adding additional role: ", e);
+ }
+
+
return rolesGroup;
}
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLoginModule.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLoginModule.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/auth/SynchronizingLoginModule.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -207,6 +207,18 @@
log.error("Error when adding additional role: ", e);
}
}
+ if (defaultAssignedRole != null)
+ {
+ try
+ {
+ userRoles.addMember(createIdentity(defaultAssignedRole));
+ }
+ catch (Exception e)
+ {
+ //just a try
+ log.error("Error when adding additional role: ", e);
+ }
+ }
Group[] roleSets = {userRoles};
return roleSets;
@@ -353,7 +365,6 @@
try
{
rolesToAssign.add(getRoleModule().findRoleByName(defaultAssignedRole));
- userRoles.addMember(createIdentity(defaultAssignedRole));
}
catch(Exception e)
{
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/boot/IdentityServiceLoader.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/boot/IdentityServiceLoader.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/boot/IdentityServiceLoader.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -113,7 +113,7 @@
ModuleServiceMetaData moduleService = (ModuleServiceMetaData)iterator.next();
ModuleMetaData module = moduleService.getModuleData();
-
+
String entryName = "portal:identity=Module,type=" + module.getType();
AbstractBeanMetaData moduleBMD = new AbstractBeanMetaData(entryName,
module.getClassName());
@@ -155,7 +155,7 @@
}
}
-
+
/**
* Should be extended to provide mbean registration
* @param serviceName
@@ -182,7 +182,7 @@
*/
protected ServiceJNDIBinder getServiceJNDIBinder() throws Exception
{
- return null;
+ return null;
}
public IdentityContext getIdentityContext()
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateMembershipModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateMembershipModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateMembershipModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -179,6 +179,8 @@
}
}
+ fireMembershipChangedEvent(role, users);
+
}
public void assignRoles(User user, Set roles) throws IdentityException
@@ -224,6 +226,8 @@
// Assign new roles
HibernateUserImpl ui = (HibernateUserImpl)user;
ui.setRoles(copy);
+
+ fireMembershipChangedEvent(user, roles);
}
//TODO:
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateRoleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateRoleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateRoleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -22,7 +22,17 @@
package org.jboss.portal.identity.db;
import org.jboss.portal.identity.Role;
+import org.jboss.portal.identity.IdentityServiceController;
+import org.jboss.portal.identity.IdentityContext;
+import org.jboss.portal.identity.event.IdentityEventBroadcaster;
+import org.jboss.portal.identity.event.RoleUpdatedEvent;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.mx.util.MBeanProxy;
+import org.jboss.mx.util.MBeanProxyCreationException;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.management.MalformedObjectNameException;
import java.util.Set;
import java.util.HashSet;
@@ -37,10 +47,14 @@
implements Role
{
+ /** . */
+ private static final org.jboss.logging.Logger log =
org.jboss.logging.Logger.getLogger(HibernateRoleImpl.class);
+
private Long key;
private String name;
private Set users;
private String displayName;
+ private IdentityEventBroadcaster eventBroadcaster;
/**
*
@@ -132,6 +146,19 @@
public void setDisplayName(String displayName)
{
this.displayName = displayName;
+
+ IdentityEventBroadcaster broadcaster = getEventBroadcaster();
+
+ if (broadcaster != null)
+ {
+ // This can be called on object creation by hibernate so make sure that all
fields are populated first
+ if (getId() != null && getName() != null && getDisplayName() !=
null)
+ {
+ RoleUpdatedEvent event = new RoleUpdatedEvent(getId(), getName(),
displayName);
+ broadcaster.fireEvent(event);
+ }
+
+ }
}
/**
@@ -146,4 +173,26 @@
{
return "Role[" + key + "," + name + "]";
}
+
+ private IdentityEventBroadcaster getEventBroadcaster()
+ {
+ if (eventBroadcaster == null)
+ {
+
+ try
+ {
+ MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
+ IdentityServiceController identityService =
(IdentityServiceController)MBeanProxy.get(
+ IdentityServiceController.class, new
ObjectName("portal:service=Module,type=IdentityServiceController"),
mbeanServer);
+
+ eventBroadcaster =
(IdentityEventBroadcaster)identityService.getIdentityContext().getObject(IdentityContext.TYPE_IDENTITY_EVENT_BROADCASTER);
+ }
+ catch (Exception e)
+ {
+ log.error("Failed to obtain IdentityEventBroadcaster. RoleUpdatedEvent
won't be broadcasted");
+ }
+ }
+
+ return eventBroadcaster;
+ }
}
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateRoleModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateRoleModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateRoleModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -207,6 +207,9 @@
HibernateRoleImpl role = new HibernateRoleImpl(name, displayName);
Session session = getCurrentSession();
session.save(role);
+
+ fireRoleCreatedEvent(role.getId(), role.getName());
+
return role;
}
catch (HibernateException e)
@@ -236,8 +239,13 @@
HibernateUserImpl user = (HibernateUserImpl)users.next();
user.getRoles().remove(role);
}
+
+ String name = role.getName();
+
session.delete(role);
session.flush();
+
+ fireRoleDestroyedEvent(id, name);
}
catch (HibernateException e)
{
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateUserImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateUserImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateUserImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -401,7 +401,7 @@
Object object = toObject((String)value);
field.set(instance, object);
-
+
}
else
{
@@ -551,7 +551,7 @@
catch (ParseException e)
{
throw new IllegalArgumentException("Can't convert the date in the
user profile. value=[" + value + "].", e);
- }
+ }
}
protected String toString(Object value)
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateUserProfileModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateUserProfileModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/db/HibernateUserProfileModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -162,7 +162,7 @@
{
dbUser.getProfileMap().remove(propertyName);
}
- fireUserProfileChangedEvent(user.getId(), user.getUserName(), propertyName);
+ fireUserProfileChangedEvent(user.getId(), user.getUserName(), propertyName,
propertyValue);
}
public Map getProperties(User user) throws IdentityException
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/event/UserProfileChangedEvent.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/event/UserProfileChangedEvent.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/event/UserProfileChangedEvent.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -38,8 +38,12 @@
/** . */
private final String propertyName;
- public UserProfileChangedEvent(Object userId, String userName, String propertyName)
+ /** .*/
+ private Object newValue;
+
+ public UserProfileChangedEvent(Object userId, String userName, String propertyName,
Object newValue)
{
+ this.newValue = newValue;
if (userId == null)
{
throw new IllegalArgumentException();
@@ -52,9 +56,16 @@
{
throw new IllegalArgumentException();
}
+
+ if (propertyName == null)
+ {
+ throw new IllegalArgumentException();
+ }
+
this.userId = userId;
this.userName = userName;
this.propertyName = propertyName;
+ this.newValue = newValue;
}
public Object getUserId()
@@ -72,8 +83,13 @@
return propertyName;
}
+ public Object getNewValue()
+ {
+ return newValue;
+ }
+
public String toString()
{
- return "UserProfileChangedEvent[userId=" + userId +
",userName=" + userName + ",propertyName=" + propertyName +
"]";
+ return "UserProfileChangedEvent[userId=" + userId +
",userName=" + userName + ",propertyName=" + propertyName +
",propertyValue" + newValue + "]";
}
}
\ No newline at end of file
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPConnectionContext.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPConnectionContext.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPConnectionContext.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -101,7 +101,7 @@
env.put(Context.SECURITY_PRINCIPAL, this.getAdminDN());
if (this.getAdminPassword() != null)
env.put(Context.SECURITY_CREDENTIALS, this.getAdminPassword());
-
+
if (this.getProtocol() != null)
{
env.put(Context.SECURITY_PROTOCOL, this.getProtocol());
@@ -183,7 +183,7 @@
if (identityContext != null)
{
- identityContext.register(this, IdentityContext.TYPE_CONNECTION_CONTEXT);
+ identityContext.register(this, IdentityContext.TYPE_CONNECTION_CONTEXT);
}
}
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPExtRoleModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPExtRoleModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPExtRoleModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -66,7 +66,7 @@
Object[] filterArgs = {name};
-
+
List sr = searchRoles(filter, filterArgs);
if (sr.size() > 1)
{
@@ -115,7 +115,7 @@
filter.append(")");
List sr = searchRoles(filter.toString(), null);
-
+
log.debug("Roles found: " + sr.size());
for (Iterator iterator = sr.iterator(); iterator.hasNext();)
{
@@ -174,7 +174,7 @@
Set rf = new HashSet();
try
{
- //search all entries
+ //search all entries
String filter = getRoleSearchFilter();
//* chars are escaped in filterArgs so we must replace it manually
filter = filter.replaceAll("\\{0\\}", "*");
@@ -212,7 +212,7 @@
LdapContext ldapContext = getConnectionContext().createInitialContext();
NamingEnumeration results = null;
-
+
try
{
SearchControls controls = new SearchControls();
@@ -220,6 +220,9 @@
controls.setReturningObjFlag(true);
controls.setTimeLimit(getSearchTimeLimit());
+ String[] retAttr = {getRidAttributeID(), getDisplayNameAttributeID()};
+ controls.setReturningAttributes(retAttr);
+
//
filter = filter.replaceAll("\\\\", "\\\\\\\\");
@@ -258,7 +261,7 @@
for (Iterator iterator = roleCtxs.iterator(); iterator.hasNext();)
{
String roleCtx = (String)iterator.next();
-
+
if (filterArgs == null)
{
results = ldapContext.search(roleCtx, filter, controls);
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPExtUserModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPExtUserModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPExtUserModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -111,7 +111,7 @@
//findUserById(Object id) from super
- //findUserById(String id) from super
+ //findUserById(String id) from super
public User createUser(String userName, String password) throws IdentityException,
IllegalArgumentException
{
@@ -181,7 +181,7 @@
return new HashSet();
}
- return Tools.toSet(uf.subList(offset, size).iterator());
+ return processUsers(uf.subList(offset, size));
}
catch (NoSuchElementException e)
{
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPRoleModule.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPRoleModule.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPRoleModule.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -48,7 +48,7 @@
private LDAPConnectionContext connectionContext;
-
+
public void start() throws Exception
{
if (getConnectionJNDIName() == null)
@@ -83,6 +83,8 @@
attrs.put(attr);
ldapContext.modifyAttributes(ldapr.getDn(),
DirContext.REPLACE_ATTRIBUTE,attrs);
+
+ fireRoleUpdatedEvent(ldapr.getId(), ldapr.getName(), name);
}
catch (NamingException e)
{
@@ -286,7 +288,7 @@
String roleCtx =
getIdentityConfiguration().getValue(IdentityConfiguration.ROLE_CONTEXT_DN);
if (roleCtx == null)
{
- throw new IdentityException("Configuration option missing: " +
IdentityConfiguration.ROLE_CONTEXT_DN);
+ throw new IdentityException("Configuration option missing: " +
IdentityConfiguration.ROLE_CONTEXT_DN);
}
return roleCtx;
}
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPRoleModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPRoleModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPRoleModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -114,7 +114,7 @@
.append("=")
.append(name)
.append(") ");
- }
+ }
filter.append(")");
List sr = searchRoles(filter.toString(), null);
@@ -222,7 +222,11 @@
}
}
- return findRoleByName(name);
+ Role resultRole = findRoleByName(name);
+
+ fireRoleCreatedEvent(resultRole.getId(), resultRole.getName());
+
+ return resultRole;
}
//TODO: remove role assignments before?
@@ -246,6 +250,8 @@
{
log.debug("removing entry: " + ldapr.getDn());
ldapContext.unbind(ldapr.getDn());
+
+ fireRoleDestroyedEvent(ldapr.getId(), ldapr.getName());
}
catch (Exception e)
{
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -53,8 +53,8 @@
public class LDAPStaticGroupMembershipModuleImpl extends LDAPMembershipModule
{
private static final org.jboss.logging.Logger log =
org.jboss.logging.Logger.getLogger(LDAPStaticGroupMembershipModuleImpl.class);
+
-
public Set getRoles(User user) throws IdentityException
{
if (user == null)
@@ -102,7 +102,7 @@
memberName = ldapUser.getUserName();
}
-
+
String filter =
getMemberAttributeID().concat("=").concat(memberName);
log.debug("Search filter: " + filter);
@@ -113,7 +113,7 @@
{
SearchResult res = (SearchResult)iterator.next();
DirContext ctx = (DirContext)res.getObject();
-
roles.add(getRoleModule().createRoleInstance(res.getAttributes(),ctx.getNameInNamespace()));
+
roles.add(getRoleModule().createRoleInstance(res.getAttributes(),ctx.getNameInNamespace()));
}
@@ -167,7 +167,7 @@
}
//obtain Role entry attributes from directory
- Attributes attrs = ldapContext.getAttributes(ldapRole.getDn());
+ Attributes attrs = ldapContext.getAttributes(ldapRole.getDn(), new String[]
{getMemberAttributeID()});
//log.debug("Role attributes: " + attrs);
if (attrs == null)
@@ -182,7 +182,7 @@
{
NamingEnumeration values = memberAttr.getAll();
-
+
while (values.hasMoreElements())
{
String value = values.nextElement().toString();
@@ -292,7 +292,7 @@
throw new IdentityException("Illegal state - cached user
doesn't exist in identity store: ", e);
}
}
-
+
LDAPUserImpl ldapUser = (LDAPUserImpl)user;
if (isUidAttributeIsDN())
@@ -320,6 +320,7 @@
{
ldapContext.modifyAttributes(ldapRole.getDn(), DirContext.REMOVE_ATTRIBUTE,
attrs);
}
+ fireMembershipChangedEvent(role, users);
}
catch (NamingException e)
{
@@ -427,7 +428,7 @@
//can't remove the last member (if the attribute is required by
schema)
//TODO: workaround this somehow.... (adding goofy user or admin instead?)
- if (attr.size() != 1)
+ if (!(attr.size() == 1 && isMembershipAttributeRequired()))
{
//remove user name from the member list
attr.remove(memberName);
@@ -461,6 +462,8 @@
ldapContext.modifyAttributes(roleDN, mods);
}
+ fireMembershipChangedEvent(user, roles);
+
//and that should be all...
}
catch (NamingException e)
@@ -523,5 +526,5 @@
}
-
+
}
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -49,7 +49,7 @@
* @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw
Dawidowicz</a>
* @version $Revision: 1.1 $
*/
-public class LDAPStaticRoleMembershipModuleImpl extends LDAPMembershipModule//extends
AbstractJBossService implements MembershipModule
+public class LDAPStaticRoleMembershipModuleImpl extends LDAPMembershipModule
{
private static final org.jboss.logging.Logger log =
org.jboss.logging.Logger.getLogger(LDAPStaticRoleMembershipModuleImpl.class);
@@ -98,7 +98,7 @@
}
//obtain Role entry attributes from directory
- Attributes attrs = ldapContext.getAttributes(ldapUser.getDn());
+ Attributes attrs = ldapContext.getAttributes(ldapUser.getDn(), new String[]
{getMemberAttributeID()});
//log.debug("User attributes: " + attrs);
if (attrs == null )
@@ -351,6 +351,8 @@
ldapContext.modifyAttributes(userDN, mods);
}
+ fireMembershipChangedEvent(role, users);
+
//and that should be all...
}
catch (NamingException e)
@@ -438,6 +440,8 @@
attrs.put(member);
ldapContext.modifyAttributes(ldapUser.getDn(), DirContext.REPLACE_ATTRIBUTE,
attrs);
+
+ fireMembershipChangedEvent(user, roles);
}
catch (NamingException e)
{
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -100,7 +100,7 @@
this.identityContext = context;
//this.realEmail = email;
this.id = id;
-
+
}
public boolean equals(Object obj)
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserModule.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserModule.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserModule.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -154,7 +154,7 @@
env.put(Context.SECURITY_CREDENTIALS, password);
InitialContext ctx = new InitialLdapContext(env, null);
-
+
if (ctx != null)
{
ctx.close();
@@ -197,7 +197,7 @@
//ldapu = new LDAPUserImpl(dn,getIdentityContext(), uida.get().toString());
- //make DN as user ID
+ //make DN as user ID
ldapu = new LDAPUserImpl(dn,getIdentityContext(), dn);
if (isUserNameToLowerCase())
@@ -281,8 +281,8 @@
* @return
*/
public abstract List searchUsers(String filter, Object[] filterArgs) throws
NamingException, IdentityException;
+
-
//**************************
//*** Getter and Setters
//**************************
@@ -462,5 +462,5 @@
{
this.connectionContext = connectionContext;
}
-
+
}
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -60,7 +60,7 @@
* @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw
Dawidowicz</a>
* @version $Revision: 1.1 $
*/
-public class LDAPUserModuleImpl extends LDAPUserModule
+public class LDAPUserModuleImpl extends LDAPUserModule
{
private static final org.jboss.logging.Logger log =
org.jboss.logging.Logger.getLogger(LDAPUserModuleImpl.class);
@@ -140,9 +140,9 @@
return findUserByDN(id);
}
+
-
-
+
public User createUser(String userName, String password) throws IdentityException,
IllegalArgumentException
{
@@ -336,7 +336,7 @@
return new HashSet();
}
- return Tools.toSet(uf.subList(offset, size).iterator());
+ return processUsers(uf.subList(offset, size));
}
catch (NoSuchElementException e)
{
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserProfileModuleImpl.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserProfileModuleImpl.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/ldap/LDAPUserProfileModuleImpl.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -214,7 +214,7 @@
attrs.put(attr);
ldapContext.modifyAttributes(ldapUser.getDn(),
DirContext.REPLACE_ATTRIBUTE,attrs);
- fireUserProfileChangedEvent(user.getId(), user.getUserName(), propertyName);
+ fireUserProfileChangedEvent(user.getId(), user.getUserName(), propertyName,
property);
}
catch (NamingException e)
{
@@ -337,7 +337,7 @@
}
/**
- * Returns a map of mappings - property name/attribute name.
+ * Returns a map of mappings - property name/attribute name.
* @return
* @throws IdentityException
*/
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/MembershipModuleService.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/MembershipModuleService.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/MembershipModuleService.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -23,8 +23,16 @@
import org.jboss.portal.identity.MembershipModule;
import org.jboss.portal.identity.IdentityContext;
+import org.jboss.portal.identity.IdentityException;
+import org.jboss.portal.identity.User;
+import org.jboss.portal.identity.Role;
+import org.jboss.portal.identity.event.MembershipChangedEvent;
import org.jboss.portal.identity.info.ProfileInfo;
+import java.util.Set;
+import java.util.Iterator;
+import java.util.HashSet;
+
/**
* @author <a href="mailto:boleslaw dot dawidowicz at jboss.org">Boleslaw
Dawidowicz</a>
* @version $Revision: 1.1 $
@@ -48,4 +56,46 @@
{
this.profileInfo = profileInfo;
}
+
+ protected void fireMembershipChangedEvent(Set userIds, Set roleIds) throws
IdentityException
+ {
+ MembershipChangedEvent event = new MembershipChangedEvent(userIds, roleIds);
+ getIdentityEventBroadcaster().fireEvent(event);
+ }
+
+ protected void fireMembershipChangedEvent(User user, Set roles) throws
IdentityException
+ {
+
+ Set roleIds = new HashSet();
+ Set userIds = new HashSet();
+
+ userIds.add(user.getId());
+
+ for (Iterator iterator = roles.iterator(); iterator.hasNext();)
+ {
+ Role role = (Role)iterator.next();
+ roleIds.add(role.getId());
+ }
+
+ fireMembershipChangedEvent(userIds, roleIds);
+ }
+
+ protected void fireMembershipChangedEvent(Role role, Set users) throws
IdentityException
+ {
+
+ Set roleIds = new HashSet();
+ Set userIds = new HashSet();
+
+ roleIds.add(role.getId());
+
+ for (Iterator iterator = users.iterator(); iterator.hasNext();)
+ {
+ User user = (User)iterator.next();
+ userIds.add(user.getId());
+ }
+
+ fireMembershipChangedEvent(userIds, roleIds);
+ }
+
+
}
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/RoleModuleService.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/RoleModuleService.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/RoleModuleService.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -23,6 +23,10 @@
import org.jboss.portal.identity.RoleModule;
import org.jboss.portal.identity.IdentityContext;
+import org.jboss.portal.identity.IdentityException;
+import org.jboss.portal.identity.event.RoleCreatedEvent;
+import org.jboss.portal.identity.event.RoleDestroyedEvent;
+import org.jboss.portal.identity.event.RoleUpdatedEvent;
/**
* @author <a href="mailto:boleslaw dot dawidowicz at jboss.org">Boleslaw
Dawidowicz</a>
@@ -36,4 +40,25 @@
{
super(IdentityContext.TYPE_ROLE_MODULE);
}
+
+ protected void fireRoleCreatedEvent(Object roleId, String roleName) throws
IdentityException
+ {
+ RoleCreatedEvent event = new RoleCreatedEvent(roleId, roleName);
+ getIdentityEventBroadcaster().fireEvent(event);
+
+ }
+
+ protected void fireRoleDestroyedEvent(Object roleId, String roleName) throws
IdentityException
+ {
+ RoleDestroyedEvent event = new RoleDestroyedEvent(roleId, roleName);
+ getIdentityEventBroadcaster().fireEvent(event);
+
+ }
+
+ protected void fireRoleUpdatedEvent(Object roleId, String roleName, String
displayName) throws IdentityException
+ {
+ RoleUpdatedEvent event = new RoleUpdatedEvent(roleId, roleName, displayName);
+ getIdentityEventBroadcaster().fireEvent(event);
+ }
+
}
Modified:
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/UserProfileModuleService.java
===================================================================
---
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/UserProfileModuleService.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/identity/src/main/java/org/jboss/portal/identity/service/UserProfileModuleService.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -54,13 +54,13 @@
{
if (log.isDebugEnabled())
{
- log.debug("Processing profile configuration for the module....");
+ log.debug("Processing profile configuration for the module....");
}
profileInfo = new
ProfileInfoSupport(ConfigurationParser.parseProfileConfiguration(getProfileConfigFile()));
}
super.start();
-
+
}
// public ProfileInfo getProfileInfo() throws IdentityException
@@ -83,9 +83,9 @@
this.profileConfigFile = profileConfigFile;
}
- protected void fireUserProfileChangedEvent(Object userId, String userName, String
propertyName) throws IdentityException
+ protected void fireUserProfileChangedEvent(Object userId, String userName, String
propertyName, Object newValue) throws IdentityException
{
- IdentityEvent event = new UserProfileChangedEvent(userId, userName, propertyName);
+ IdentityEvent event = new UserProfileChangedEvent(userId, userName, propertyName,
newValue);
getIdentityEventBroadcaster().fireEvent(event);
}
Modified:
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/cas/CASAuthenticationHandler.java
===================================================================
---
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/cas/CASAuthenticationHandler.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/cas/CASAuthenticationHandler.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -62,7 +62,7 @@
//Perform this operation in the context of a UserTransaction
status = authService.authenticate(username, password);
-
+
return status;
}
catch(Exception e)
Modified:
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/cas/CASAuthenticationValve.java
===================================================================
---
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/cas/CASAuthenticationValve.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/cas/CASAuthenticationValve.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -362,7 +362,7 @@
if(request.getAttribute("org.jboss.portal.logout") != null)
{
response.sendRedirect(this.casLogout);
- }
+ }
}
/**
Modified:
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/josso/JOSSOLogoutValve.java
===================================================================
---
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/josso/JOSSOLogoutValve.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/josso/JOSSOLogoutValve.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -45,7 +45,7 @@
public void invoke(Request request, Response response) throws IOException,
ServletException
{
- HttpServletRequest httpRequest = (HttpServletRequest) request;
+ HttpServletRequest httpRequest = (HttpServletRequest) request;
request.setAttribute("ssoEnabled", "true");
Cookie jossoPortalCookie = this.findJOSSOPortalLogoutCookie(httpRequest);
Modified:
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/opensso/OpenSSOAuthenticationValve.java
===================================================================
---
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/opensso/OpenSSOAuthenticationValve.java 2009-02-05
09:40:15 UTC (rev 12777)
+++
modules/identity/trunk/sso/src/main/java/org/jboss/portal/identity/sso/opensso/OpenSSOAuthenticationValve.java 2009-02-05
12:40:41 UTC (rev 12778)
@@ -33,6 +33,7 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
import javax.security.jacc.PolicyContext;
import java.io.IOException;
import java.security.Principal;
@@ -73,6 +74,10 @@
public void invoke(Request request, Response response) throws IOException,
ServletException
{
+ HttpServletRequest httpRequest = (HttpServletRequest) request;
+ HttpSession session = httpRequest.getSession();
+ request.setAttribute("ssoEnabled", "true");
+
SSOToken token = getToken();
String requestURI = request.getRequestURI();