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

Reply via email to