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