Author: prabath
Date: Sun Feb 24 01:38:11 2008
New Revision: 14101
Log:
provided a mapping between OpenID Attribute Exchange and OpenID Simple
Registration
Modified:
trunk/solutions/identity/modules/identity-provider/conf/initial-claims.xml
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/admin/ClaimsAdmin.java
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDProviderData.java
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/persistence/IPPersistenceManager.java
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/persistence/dao/ClaimDAO.java
Modified:
trunk/solutions/identity/modules/identity-provider/conf/initial-claims.xml
==============================================================================
--- trunk/solutions/identity/modules/identity-provider/conf/initial-claims.xml
(original)
+++ trunk/solutions/identity/modules/identity-provider/conf/initial-claims.xml
Sun Feb 24 01:38:11 2008
@@ -102,47 +102,47 @@
<ClaimType Uri="http://axschema.org/namePerson/friendly">
<DisplayTag>Nickname</DisplayTag>
<Description>Nickname</Description>
- <OpenIDTag>nicknameAx</OpenIDTag>
+ <OpenIDTag>nickname</OpenIDTag>
</ClaimType>
<ClaimType Uri="http://axschema.org/contact/email">
<DisplayTag>Email address</DisplayTag>
<Description>Email address</Description>
- <OpenIDTag>emailAx</OpenIDTag>
+ <OpenIDTag>email</OpenIDTag>
</ClaimType>
<ClaimType Uri="http://axschema.org/namePerson">
<DisplayTag>Full Name</DisplayTag>
<Description>Full Name</Description>
- <OpenIDTag>fullnameAx</OpenIDTag>
+ <OpenIDTag>fullname</OpenIDTag>
</ClaimType>
<ClaimType Uri="http://axschema.org/birthDate">
<DisplayTag>Date of Birth</DisplayTag>
<Description>Date of Birth</Description>
- <OpenIDTag>dobAx</OpenIDTag>
+ <OpenIDTag>dob</OpenIDTag>
</ClaimType>
<ClaimType Uri="http://axschema.org/person/gender">
<DisplayTag>Gender</DisplayTag>
<Description>Gender</Description>
- <OpenIDTag>genderAx</OpenIDTag>
+ <OpenIDTag>gender</OpenIDTag>
</ClaimType>
<ClaimType Uri="http://axschema.org/contact/postalCode/home">
<DisplayTag>Postal code</DisplayTag>
<Description>Postal code</Description>
- <OpenIDTag>postcodeAx</OpenIDTag>
+ <OpenIDTag>postcode</OpenIDTag>
</ClaimType>
<ClaimType Uri="http://axschema.org/contact/country/home">
<DisplayTag>Country</DisplayTag>
<Description>Country</Description>
- <OpenIDTag>countryAx</OpenIDTag>
+ <OpenIDTag>country</OpenIDTag>
</ClaimType>
<ClaimType Uri="http://axschema.org/pref/language">
<DisplayTag>Langauge</DisplayTag>
<Description>Language</Description>
- <OpenIDTag>languageAx</OpenIDTag>
+ <OpenIDTag>language</OpenIDTag>
</ClaimType>
<ClaimType Uri="http://axschema.org/pref/timezone">
<DisplayTag>Time Zone</DisplayTag>
<Description>Time Zone</Description>
- <OpenIDTag>timezoneAx</OpenIDTag>
+ <OpenIDTag>timezone</OpenIDTag>
</ClaimType>
</Claims>
Modified:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/admin/ClaimsAdmin.java
==============================================================================
---
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/admin/ClaimsAdmin.java
(original)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/admin/ClaimsAdmin.java
Sun Feb 24 01:38:11 2008
@@ -124,6 +124,11 @@
public ClaimDO[] getAllMappedEnabledClaims() {
return dbman.getAllMappedEnabledClaims();
}
+
+ public String getMappedOpenIDTag(String uri)
+ {
+ return dbman.getMappedOpenIDTag(uri);
+ }
public void resetClaimMappings() {
ClaimDO[] claimDOs = this.getAllMappedClaims();
Modified:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDProviderData.java
==============================================================================
---
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDProviderData.java
(original)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDProviderData.java
Sun Feb 24 01:38:11 2008
@@ -13,6 +13,7 @@
import org.wso2.solutions.identity.IdentityConstants;
import org.wso2.solutions.identity.IdentityProviderException;
import org.wso2.solutions.identity.UserStore;
+import org.wso2.solutions.identity.admin.ClaimsAdmin;
import org.wso2.solutions.identity.persistence.IPPersistenceManager;
import org.wso2.solutions.identity.persistence.dataobject.ClaimDO;
@@ -33,10 +34,13 @@
Map claims = null;
IPPersistenceManager persistenceManager = null;
ClaimDO[] supportedClaims = null;
+ ClaimsAdmin claimsAdmin = null;
claims = new HashMap();
persistenceManager = IPPersistenceManager.getPersistanceManager();
- supportedClaims = persistenceManager.getAllSupportedClaims();
+
+ claimsAdmin = new ClaimsAdmin();
+ supportedClaims = claimsAdmin.getAllMappedEnabledClaims();
for (int i = 0; i < supportedClaims.length; i++) {
ClaimDO temp = supportedClaims[i];
@@ -44,7 +48,7 @@
claims.put(temp.getOpenIDTag(), temp);
}
- return populateAttributeValues(requiredClaims, userId, claims);
+ return populateAttributeValues(requiredClaims, userId, claims, null);
}
/**
@@ -60,10 +64,15 @@
Map claims = null;
IPPersistenceManager persistenceManager = null;
ClaimDO[] supportedClaims = null;
+ ClaimsAdmin claimsAdmin = null;
+ Iterator iterator = null;
+ Map map = null;
claims = new HashMap();
persistenceManager = IPPersistenceManager.getPersistanceManager();
- supportedClaims = persistenceManager.getAllSupportedClaims();
+
+ claimsAdmin = new ClaimsAdmin();
+ supportedClaims = claimsAdmin.getAllMappedEnabledClaims();
for (int i = 0; i < supportedClaims.length; i++) {
ClaimDO temp = supportedClaims[i];
@@ -71,18 +80,32 @@
claims.put(temp.getOpenIDTag(), temp);
}
- return populateAttributeValues(requiredClaims.keySet(), userId,
claims);
+ iterator = requiredClaims.keySet().iterator();
+ map = new HashMap();
+
+ String key = null;
+ String val = null;
+
+ while (iterator.hasNext()) {
+ key = (String) iterator.next();
+ val = (String) requiredClaims.get(key);
+ map.put(claimsAdmin.getMappedOpenIDTag(val), key);
+ }
+
+ return populateAttributeValues(map.keySet(), userId, claims, map);
}
/**
* Populate the required claims with claim values.
* @param requiredClaims Required claims as requested by the RP.
* @param userId User ID.
- * @return A map, populated with ClaimDO objects which have OpenIDTag,
that is OpenID supported claims.
+ * @return A map, populated with ClaimDO objects which have OpenIDTag, that
+ * is OpenID supported claims.
* @throws IdentityProviderException
*/
protected Map populateAttributeValues(Collection requiredClaims,
- String userId, Map claims) throws IdentityProviderException {
+ String userId, Map claims, Map openIDTagMapping)
+ throws IdentityProviderException {
UserStore connector = null;
Map claimValues = null;
@@ -137,7 +160,11 @@
openIDClaim.claimValue = (String) mapValues.get(claim
.getAttrId());
openIDClaim.typeUri = claim.getUri();
- openIDClaim.openIDTag = tag;
+ if (openIDTagMapping != null)
+ openIDClaim.openIDTag = (String) openIDTagMapping.get(claim
+ .getOpenIDTag());
+ else
+ openIDClaim.openIDTag = claim.getOpenIDTag();
if (openIDClaim.claimValue != null)
claimValues.put(openIDClaim.typeUri, openIDClaim);
}
@@ -190,7 +217,8 @@
while (iterator.hasNext()) {
key = (String) iterator.next();
claim = (OpenIDClaim) claimValues.get(key);
- response.addAttribute(claim.openIDTag,claim.typeUri,
claim.claimValue);
+ response.addAttribute(claim.openIDTag, claim.typeUri,
+ claim.claimValue);
}
}
Modified:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/persistence/IPPersistenceManager.java
==============================================================================
---
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/persistence/IPPersistenceManager.java
(original)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/persistence/IPPersistenceManager.java
Sun Feb 24 01:38:11 2008
@@ -185,6 +185,17 @@
ClaimDAO dao = new ClaimDAO(hbConfig);
return dao.getAllMappedEnabledClaims();
}
+
+ /**
+ * Provide the mapped OpenID tag corresponding to the provided claim uri
+ * @param uri Claim uri
+ * @return Mapped OpenID tag
+ */
+ public String getMappedOpenIDTag(String uri)
+ {
+ ClaimDAO dao = new ClaimDAO(hbConfig);
+ return dao.getMappedOpenIDTag(uri);
+ }
/**
* Provides all supported claim dialects.
@@ -448,6 +459,5 @@
public String getOpenIDDefaultUserProfile(String userName,String rpUrl) {
OpenIDUserRPDAO dao = new OpenIDUserRPDAO(hbConfig);
return dao.getOpenIDDefaultUserProfile(userName,rpUrl);
- }
-
-}
+ }
+}
\ No newline at end of file
Modified:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/persistence/dao/ClaimDAO.java
==============================================================================
---
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/persistence/dao/ClaimDAO.java
(original)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/persistence/dao/ClaimDAO.java
Sun Feb 24 01:38:11 2008
@@ -29,7 +29,7 @@
public class ClaimDAO extends BaseDAO {
- protected Log log = LogFactory.getLog(ClaimDAO.class);
+ protected Log log = LogFactory.getLog(ClaimDAO.class);
public ClaimDAO(HibernateConfig config) {
super(config);
@@ -81,7 +81,7 @@
public ClaimDO[] getAllMappedClaims() {
Session session = hbConfig.getCurrentSession();
-
+
Transaction tx = session.beginTransaction();
String stmt = "from ClaimDO as cl where cl.attrId != '-1'";
@@ -139,4 +139,29 @@
hbConfig.closeSession();
}
}
+
+ public String getMappedOpenIDTag(String uri) {
+ Session session = hbConfig.getCurrentSession();
+ Transaction tx = session.beginTransaction();
+ ClaimDO[] claims = null;
+ try {
+ Criteria criteria = session.createCriteria(ClaimDO.class);
+ criteria.add(Expression.eq("uri", uri));
+ List lst = criteria.list();
+ claims = (ClaimDO[]) lst.toArray(new ClaimDO[lst.size()]);
+
+ if (claims != null && claims.length > 0)
+ return claims[0].getOpenIDTag();
+ else
+ return null;
+
+ } catch (Throwable e) {
+ tx.rollback();
+ String msg = messages.getMessage("errorQuerryingClaimData");
+ log.error(msg, e);
+ throw new RuntimeException(msg, e);
+ } finally {
+ hbConfig.closeSession();
+ }
+ }
}
_______________________________________________
Identity-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/identity-dev