You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by at...@apache.org on 2011/05/11 02:38:44 UTC
svn commit: r1101697 -
/portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/mapping/ldap/EntityFactoryImpl.java
Author: ate
Date: Wed May 11 00:38:44 2011
New Revision: 1101697
URL: http://svn.apache.org/viewvc?rev=1101697&view=rev
Log:
JS2-1251: Also support Ldap Entity loading based on a Spring LdapTemplate provided DirContextAdapter
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/mapping/ldap/EntityFactoryImpl.java
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/mapping/ldap/EntityFactoryImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/mapping/ldap/EntityFactoryImpl.java?rev=1101697&r1=1101696&r2=1101697&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/mapping/ldap/EntityFactoryImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/mapping/ldap/EntityFactoryImpl.java Wed May 11 00:38:44 2011
@@ -36,6 +36,7 @@ import org.apache.jetspeed.security.mapp
import org.apache.jetspeed.security.mapping.model.Entity;
import org.apache.jetspeed.security.mapping.model.impl.AttributeImpl;
import org.apache.jetspeed.security.mapping.model.impl.EntityImpl;
+import org.springframework.ldap.core.DirContextAdapter;
import org.springframework.ldap.core.DirContextOperations;
import org.springframework.ldap.core.DistinguishedName;
import org.springframework.ldap.core.LdapRdn;
@@ -125,66 +126,76 @@ public class EntityFactoryImpl implement
public Entity loadEntity(Object providerContext)
{
- DirContextOperations ctx = (DirContextOperations)((SearchResult)(providerContext)).getObject();
- String entityId = null;
Entity entity = null;
- String dn = ctx.getNameInNamespace();
- Set<Attribute> attributes = new HashSet<Attribute>();
- Attributes attrs = ctx.getAttributes();
- for (AttributeDef attrDef : searchConfiguration.getEntityAttributeDefinitionsMap().values())
+ DirContextOperations ctx = null;
+
+ if (providerContext instanceof SearchResult)
+ {
+ ctx = (DirContextOperations) ((SearchResult) (providerContext)).getObject();
+ }
+ else if (providerContext instanceof DirContextAdapter)
{
- List<String> values = null;
- values = getStringAttributes(attrs, attrDef.getName(), attrDef.requiresDnDefaultValue());
- if (values != null)
+ ctx = (DirContextOperations) providerContext;
+ }
+ if (ctx != null)
+ {
+ String entityId = null;
+ String dn = ctx.getNameInNamespace();
+ Set<Attribute> attributes = new HashSet<Attribute>();
+ Attributes attrs = ctx.getAttributes();
+ for (AttributeDef attrDef : searchConfiguration.getEntityAttributeDefinitionsMap().values())
{
- Attribute a = new AttributeImpl(attrDef);
- if (attrDef.isMultiValue())
+ List<String> values = null;
+ values = getStringAttributes(attrs, attrDef.getName(), attrDef.requiresDnDefaultValue());
+ if (values != null)
{
- // remove the dummy value for required fields when present.
- if (attrDef.isRequired())
- {
- String defaultValue = attrDef.requiresDnDefaultValue() ? dn : attrDef.getRequiredDefaultValue();
- values.remove(defaultValue);
- }
-
- if (values.size() != 0)
+ Attribute a = new AttributeImpl(attrDef);
+ if (attrDef.isMultiValue())
{
- a.setValues(values);
+ // remove the dummy value for required fields when present.
+ if (attrDef.isRequired())
+ {
+ String defaultValue = attrDef.requiresDnDefaultValue() ? dn : attrDef.getRequiredDefaultValue();
+ values.remove(defaultValue);
+ }
+ if (values.size() != 0)
+ {
+ a.setValues(values);
+ }
+ else
+ {
+ attributes.add(a);
+ }
}
-
else
{
- attributes.add(a);
- }
- }
- else
- {
- String value = values.get(0);
- if (attrDef.isEntityIdAttribute())
- {
- entityId = value;
+ String value = values.get(0);
+ if (attrDef.isEntityIdAttribute())
+ {
+ entityId = value;
+ }
+ a.setValue(value);
}
- a.setValue(value);
+ attributes.add(a);
}
- attributes.add(a);
- }
- }
- if (entityId == null)
- {
- DistinguishedName name = new DistinguishedName(dn);
- LdapRdn rdn = name.getLdapRdn(name.size()-1);
- if (rdn.getKey().equals(searchConfiguration.getLdapIdAttribute()))
- {
- entityId = rdn.getValue();
}
- else
+ if (entityId == null)
{
- // TODO: throw exception???
- return null;
+ DistinguishedName name = new DistinguishedName(dn);
+ LdapRdn rdn = name.getLdapRdn(name.size() - 1);
+ if (rdn.getKey().equals(searchConfiguration.getLdapIdAttribute()))
+ {
+ entityId = rdn.getValue();
+ }
+ else
+ {
+ // TODO: throw exception???
+ return null;
+ }
}
+ entity = internalCreateEntity(entityId, dn, attributes);
+ entity.setLive(true);
}
- entity = internalCreateEntity(entityId, dn, attributes);
- entity.setLive(true);
return entity;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org