Author: prabath
Date: Tue Feb 19 11:55:20 2008
New Revision: 13899

Log:

multiple profile support for OpenID

Modified:
   
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/UserStore.java
   
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDProvider.java
   
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDProviderData.java
   trunk/solutions/identity/modules/user-ui/src/main/webapp/jsp/main.jsp

Modified: 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/UserStore.java
==============================================================================
--- 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/UserStore.java
 (original)
+++ 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/UserStore.java
 Tue Feb 19 11:55:20 2008
@@ -24,6 +24,8 @@
 import org.wso2.solutions.identity.persistence.dataobject.RealmConfigurationDO;
 import 
org.wso2.solutions.identity.persistence.dataobject.RealmConfigurationPropertyDO;
 import org.wso2.solutions.identity.persistence.dataobject.RealmDO;
+import org.wso2.solutions.identity.users.IdentityDefaultRealm;
+import org.wso2.solutions.identity.users.IdentityUserStoreReader;
 import org.wso2.usermanager.Authenticator;
 import org.wso2.usermanager.Realm;
 import org.wso2.usermanager.UserManagerException;
@@ -267,4 +269,24 @@
     public Realm getRealm() {
         return realm;
     }
+
+    /**
+     * 
+     * @param username
+     * @param profileName
+     * @param propertyNames
+     * @return
+     * @throws IdentityProviderException
+     */
+    public Map getClaimValues(String username, String profileName,
+            List propertyNames) throws IdentityProviderException {
+        try {
+            IdentityUserStoreReader usReader = 
((IdentityDefaultRealm)realm).getIdentityUserStoreReader();
+            return usReader.getUserProperties(username, profileName);
+        } catch (UserManagerException e) {
+            throw new IdentityProviderException(
+                    "errorExtractingUserProperties", new String[] { username },
+                    e);
+        }
+    }
 }

Modified: 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDProvider.java
==============================================================================
--- 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDProvider.java
     (original)
+++ 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDProvider.java
     Tue Feb 19 11:55:20 2008
@@ -28,6 +28,8 @@
 import org.wso2.solutions.identity.IdentityConstants;
 import org.wso2.solutions.identity.IdentityProviderConstants;
 import org.wso2.solutions.identity.IdentityProviderException;
+import org.wso2.solutions.identity.persistence.IPPersistenceManager;
+import org.wso2.solutions.identity.persistence.dataobject.OpenIDUserRPDO;
 import org.wso2.utils.ServerConfiguration;
 
 public class OpenIDProvider {
@@ -119,9 +121,27 @@
 
                 userId = getUserName(openId);
 
+                String returnTo = null;
+                String profileName = null;
+
                 if (httpReq.getParameter("authenticatedAndApproved") != null
                         && httpReq.getParameter("authenticatedAndApproved")
                                 .equals("true")) {
+
+                    IPPersistenceManager persistenceManager = null;
+                    OpenIDUserRPDO[] rpdo = null;
+
+                    persistenceManager = IPPersistenceManager
+                            .getPersistanceManager();
+
+                    returnTo = request
+                            
.getParameterValue(IdentityConstants.OpenId.ATTR_RETURN_TO);
+
+                    rpdo = persistenceManager.getOpenIDUserRP(userId, 
returnTo);
+
+                    if (rpdo != null && rpdo.length > 0)
+                        profileName = rpdo[0].getDefaultProfileName();
+
                     authenticatedAndApproved = true;
                 }
 
@@ -178,6 +198,7 @@
                             userDataExt = new HashMap();
                             openIDData = new OpenIDProviderData();
 
+                            openIDData.setProfileName(profileName);
                             fetchResp = FetchResponse.createFetchResponse(
                                     fetchReq, userDataExt);
 
@@ -217,6 +238,7 @@
                             userDataSReg = new HashMap();
                             openIDData = new OpenIDProviderData();
 
+                            openIDData.setProfileName(profileName);
                             response = SRegResponse.createSRegResponse(sregReq,
                                     userDataSReg);
 

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
 Tue Feb 19 11:55:20 2008
@@ -18,6 +18,8 @@
 
 public class OpenIDProviderData {
 
+    private String profileName;
+
     /**
      * Populate the required claims with claim values.
      * 
@@ -119,9 +121,15 @@
 
         Map mapValues = null;
         OpenIDClaim openIDClaim = null;
+        String profile = null;
+
+        if (this.profileName == null)
+            profile = "Default Profile";
+        else
+            profile = this.profileName;
 
         // Get the claims values corresponding to the user from the user store.
-        mapValues = connector.getClaimValues(userId, list);
+        mapValues = connector.getClaimValues(userId, profile, list);
 
         claimValues = new HashMap();
 
@@ -218,4 +226,12 @@
         public String claimValue;
 
     }
+
+    public String getProfileName() {
+        return profileName;
+    }
+
+    public void setProfileName(String profileName) {
+        this.profileName = profileName;
+    }
 }

Modified: trunk/solutions/identity/modules/user-ui/src/main/webapp/jsp/main.jsp
==============================================================================
--- trunk/solutions/identity/modules/user-ui/src/main/webapp/jsp/main.jsp       
(original)
+++ trunk/solutions/identity/modules/user-ui/src/main/webapp/jsp/main.jsp       
Tue Feb 19 11:55:20 2008
@@ -46,7 +46,7 @@
                <!-- New STARTS Here -->
                <div class="information">
                <s:if test="%{allowUserRegistration}">
-                       <div><br/><a href="AddUserProfile.action">Add new 
profile</a><br/></div>
+                       <br/><br/><div><a href="AddUserProfile.action">Add new 
profile</a></div><br/><br/>
                </s:if>
                <table cellpadding="0" cellspacing="0" border="0"
                        style="width: 100%; margin-bottom: 10px;">

_______________________________________________
Identity-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/identity-dev

Reply via email to