Author: prabath
Date: Mon Mar 3 21:49:48 2008
New Revision: 14481
Log:
code refactoring
Added:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDClaim.java
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDExtensionFactory.java
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDUtil.java
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDAttributeExchange.java
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDExtension.java
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDPape.java
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDSimpleReg.java
Removed:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDProviderData.java
Modified:
trunk/solutions/identity/modules/base/src/main/java/org/wso2/solutions/identity/IdentityConstants.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/resources.properties
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/OpenIDTokenIssuer.java
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDExtensionFactory.java
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/extensions/OpenIDSimpleReg.java
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/InfoCardUserRegistrationSubmitAction.java
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/UserRegistrationFormSubmitAction.java
Modified:
trunk/solutions/identity/modules/base/src/main/java/org/wso2/solutions/identity/IdentityConstants.java
==============================================================================
---
trunk/solutions/identity/modules/base/src/main/java/org/wso2/solutions/identity/IdentityConstants.java
(original)
+++
trunk/solutions/identity/modules/base/src/main/java/org/wso2/solutions/identity/IdentityConstants.java
Mon Mar 3 21:49:48 2008
@@ -113,6 +113,7 @@
public final static String OPENID_TOKEN_EXTRACTION_FAILED =
"openIDTokenExtractionFailed";
public final static String REQUIRED_ATTRIBUTE_MISSING =
"requredAttributeMissing";
public final static String OPENID_DIRECT_RESP_FAILED =
"openIDDirectResponseFailed";
+ public final static String OPENID_RESP_GENERATION_FAILED =
"openIDResponseGenerationFailed";
public final static String OPENID_TOKEN_CREATION_FAILED =
"openIDTokenCreationFailed";
public final static String USERNAME_RETRIEVAL_FAILED =
"usernameRetrievalFailed";
public final static String NO_USERS_FOUND = "noUsersFound";
Added:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDClaim.java
==============================================================================
--- (empty file)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDClaim.java
Mon Mar 3 21:49:48 2008
@@ -0,0 +1,35 @@
+package org.wso2.solutions.identity.openid;
+
+/**
+ * Claims corresponding to OpenID.
+ */
+public class OpenIDClaim {
+
+ private String typeUri;
+ private String openIDTag;
+ private String claimValue;
+
+ public String getTypeUri() {
+ return typeUri;
+ }
+
+ public void setTypeUri(String typeUri) {
+ this.typeUri = typeUri;
+ }
+
+ public String getOpenIDTag() {
+ return openIDTag;
+ }
+
+ public void setOpenIDTag(String openIDTag) {
+ this.openIDTag = openIDTag;
+ }
+
+ public String getClaimValue() {
+ return claimValue;
+ }
+
+ public void setClaimValue(String claimValue) {
+ this.claimValue = claimValue;
+ }
+}
Added:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDExtensionFactory.java
==============================================================================
--- (empty file)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDExtensionFactory.java
Mon Mar 3 21:49:48 2008
@@ -0,0 +1,49 @@
+package org.wso2.solutions.identity.openid;
+
+import org.openid4java.message.AuthRequest;
+import org.openid4java.message.ax.AxMessage;
+import org.openid4java.message.sreg.SRegMessage;
+import org.wso2.solutions.identity.IdentityConstants;
+import org.wso2.solutions.identity.openid.extensions.OpenIDAttributeExchange;
+import org.wso2.solutions.identity.openid.extensions.OpenIDExtension;
+import org.wso2.solutions.identity.openid.extensions.OpenIDSimpleReg;
+
+public class OpenIDExtensionFactory {
+
+ private static OpenIDExtensionFactory factory = new
OpenIDExtensionFactory();
+
+ /**
+ * Make the class singleton
+ */
+ private OpenIDExtensionFactory() {
+ }
+
+ /**
+ * Returns a singleton instance of OpenIDExtensionFactory
+ * @return An instance of OpenIDExtensionFactory
+ */
+ public static OpenIDExtensionFactory getInstance() {
+ return factory;
+ }
+
+ /**
+ * Create an instance of the OpenIDExtension based on the OpenID extension
+ * type
+ * @param auth AuthRequest instance
+ * @return Appropriate OpenIDExtension instance
+ */
+ public OpenIDExtension getExtension(AuthRequest auth) {
+
+ if (auth
+ .hasExtension(AxMessage.OPENID_NS_AX)) {
+ return new OpenIDAttributeExchange(auth);
+ } else if (auth
+
.hasExtension(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG)
+ || auth.hasExtension(SRegMessage.OPENID_NS_SREG)) {
+ return new OpenIDSimpleReg(auth);
+ }
+
+ return null;
+ }
+
+}
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
Mon Mar 3 21:49:48 2008
@@ -1,41 +1,25 @@
package org.wso2.solutions.identity.openid;
import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import org.wso2.solutions.identity.UserStore;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openid4java.message.AuthFailure;
import org.openid4java.message.AuthRequest;
import org.openid4java.message.DirectError;
import org.openid4java.message.Message;
-import org.openid4java.message.MessageExtension;
+import org.openid4java.message.MessageException;
import org.openid4java.message.ParameterList;
-import org.openid4java.message.ax.FetchRequest;
-import org.openid4java.message.ax.FetchResponse;
-import org.openid4java.message.sreg.SRegRequest;
-import org.openid4java.message.sreg.SRegResponse;
import org.openid4java.server.ServerException;
import org.openid4java.server.ServerManager;
import org.wso2.solutions.identity.IdentityConstants;
import org.wso2.solutions.identity.IdentityProviderException;
+import org.wso2.solutions.identity.openid.extensions.OpenIDExtension;
import org.wso2.solutions.identity.persistence.IPPersistenceManager;
import org.wso2.solutions.identity.persistence.dataobject.OpenIDUserRPDO;
import org.wso2.utils.ServerConfiguration;
@@ -44,14 +28,13 @@
// Instantiate a ServerManager object.
public static final ServerManager manager = new OpenIDServerManager();
+
private String authPage;
private static Log log = LogFactory.getLog(OpenIDProvider.class);
private static String opAddress = null;
- private static final Set UNRESERVED_CHARACTERS = new HashSet();
-
/**
* Configure the OpenID Provider's end-point URL.
*/
@@ -66,20 +49,6 @@
// This is the OpenID provider server URL
opAddress = openIDServerUrl + "/server/";
manager.setOPEndpointUrl(opAddress);
-
- for (char c = 'a'; c <= 'z'; c++)
- UNRESERVED_CHARACTERS.add(Character.valueOf(c));
-
- for (char c = 'A'; c <= 'A'; c++)
- UNRESERVED_CHARACTERS.add(Character.valueOf(c));
-
- for (char c = '0'; c <= '9'; c++)
- UNRESERVED_CHARACTERS.add(Character.valueOf(c));
-
- UNRESERVED_CHARACTERS.add(Character.valueOf('-'));
- UNRESERVED_CHARACTERS.add(Character.valueOf('.'));
- UNRESERVED_CHARACTERS.add(Character.valueOf('_'));
- UNRESERVED_CHARACTERS.add(Character.valueOf('~'));
}
/**
@@ -98,7 +67,6 @@
HttpSession session = null;
try {
-
session = httpReq.getSession();
if (IdentityConstants.OpenId.COMPLETE.equals(httpReq
@@ -126,176 +94,19 @@
// Process an association request made by RP.
message = manager.associationResponse(request);
responseText = message.keyValueFormEncoding();
+
} else if (IdentityConstants.OpenId.CHECKID_SETUP.equals(mode)
||
IdentityConstants.OpenId.CHECKID_IMMEDIATE.equals(mode)) {
-
- boolean authenticatedAndApproved = false;
- String userSelectedClaimedId = null;
- String openId = null;
- String userId = null;
-
- openId = request
- .hasParameter(IdentityConstants.OpenId.ATTR_IDENTITY)
? request
-
.getParameterValue(IdentityConstants.OpenId.ATTR_IDENTITY)
- : null;
-
- if (openId == null)
- throw new IdentityProviderException(
-
IdentityConstants.ErrorCodes.REQUIRED_ATTRIBUTE_MISSING);
-
- 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;
- }
-
- if (IdentityConstants.OpenId.CANCEL.equals(httpReq
- .getParameter(IdentityConstants.OpenId.ACTION))) {
-
- authenticatedAndApproved = false;
-
- } else if (!authenticatedAndApproved) {
-
- // Not authenticated, redirect to the authentication
- // page.
- session.setAttribute(IdentityConstants.OpenId.PARAM_LIST,
- request);
- return authPage;
- }
-
- // Process an authentication request.
- AuthRequest authReq = AuthRequest.createAuthRequest(request,
- manager.getRealmVerifier());
-
- String opLocalId = null;
-
- message = manager.authResponse(request, opLocalId,
- userSelectedClaimedId, authenticatedAndApproved);
-
- if (message instanceof DirectError
- || message instanceof AuthFailure)
- return message.getDestinationUrl(true);
- else {
- if (authReq.hasExtension(FetchRequest.OPENID_NS_AX)) {
-
- MessageExtension extensions = authReq
- .getExtension(FetchRequest.OPENID_NS_AX);
-
- if (extensions instanceof FetchRequest) {
-
- Map required = null;
- Map userDataExt = null;
- FetchRequest fetchReq = null;
- FetchResponse fetchResp = null;
- OpenIDProviderData openIDData = null;
- Map claimValues = null;
-
- fetchReq = (FetchRequest) extensions;
-
- // Get the required attributes as requested by the
- // RP.
- required = fetchReq.getAttributes(true);
-
- userDataExt = new HashMap();
- openIDData = new OpenIDProviderData();
-
- openIDData.setProfileName(profileName);
- fetchResp = FetchResponse.createFetchResponse(
- fetchReq, userDataExt);
-
- claimValues = openIDData.populateAttributeValues(
- required, userId);
-
- openIDData.setAttributeExchangeValues(fetchResp,
- claimValues);
- message.addExtension(fetchResp);
-
- } else {
- log.error("Unsupported request type");
- throw new UnsupportedOperationException("TODO");
- }
- }
- if (authReq.hasExtension(SRegRequest.OPENID_NS_SREG)
- || authReq
-
.hasExtension(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG)) {
-
- MessageExtension extension = null;
-
- extension = authReq
- .getExtension(SRegRequest.OPENID_NS_SREG);
-
- if (extension == null)
- extension = authReq
-
.getExtension(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG);
-
- if (extension instanceof SRegRequest) {
-
- SRegRequest sregReq = null;
- List required = null;
- Map userDataSReg = null;
- Map claimValues = null;
- SRegResponse response = null;
- OpenIDProviderData openIDData = null;
-
- sregReq = (SRegRequest) extension;
-
- // Get the required attributes as requested by the
- // RP.
- required = sregReq.getAttributes(true);
-
- userDataSReg = new HashMap();
- openIDData = new OpenIDProviderData();
-
- openIDData.setProfileName(profileName);
- response = SRegResponse.createSRegResponse(sregReq,
- userDataSReg);
-
- claimValues = openIDData.populateAttributeValues(
- required, userId);
-
- openIDData.setSimpleAttributeRegistrationValues(
- response, claimValues);
-
- message.addExtension(response);
-
- } else {
- log.error("Unsupported request type");
- throw new UnsupportedOperationException("TODO");
- }
- }
-
- return message.getDestinationUrl(true);
- }
+ return checkSetupOrImmediate(httpReq, request);
} else if (IdentityConstants.OpenId.CHECK_AUTHENTICATION
.equals(mode)) {
- // Processing a verification request.
- message = manager.verify(request);
- responseText = message.keyValueFormEncoding();
+ responseText = checkAuthentication(request);
} else {
// Error response.
message = DirectError.createDirectError("Unknown request");
responseText = message.keyValueFormEncoding();
}
+
} catch (Exception e) {
// Error response.
message = DirectError.createDirectError(e.getMessage());
@@ -312,96 +123,6 @@
}
/**
- * Find the user name corresponding to the given OpenID.
- * @param openId User's OpenID
- * @return User name corresponding the given OpenID.
- * @throws ServerException
- * @throws IdentityProviderException
- */
- private String getUserName(String openId) throws ServerException,
- IdentityProviderException {
-
- UserStore userStore = null;
- List users = null;
-
- userStore = UserStore.getInstance();
- users = userStore.getAllUserNames();
-
- if (users == null)
- throw new IdentityProviderException(
- IdentityConstants.ErrorCodes.NO_USERS_FOUND);
-
- Map mapValues = null;
- Iterator iterator = null;
-
- iterator = users.iterator();
-
- while (iterator.hasNext()) {
-
- String user = (String) iterator.next();
- mapValues = userStore.getClaimValues(user, null);
-
- if (mapValues != null && !mapValues.isEmpty()) {
-
- // User has defined claims!
- String claimId = (String) mapValues
- .get(IdentityConstants.CLAIM_OPENID);
-
- if (claimId != null && claimId.equals(openId)) {
- return user;
- }
- }
- }
- return null;
- }
-
- /**
- * Generate OpenID for a given user.
- * @param user User
- * @return Generated OpenID
- * @throws IdentityProviderException
- */
- public static String generateOpenID(String user)
- throws IdentityProviderException {
-
- ServerConfiguration serverConfig = null;
- String openIDServerUrl = null;
- String openID = null;
- URI uri = null;
- URL url = null;
-
- serverConfig = ServerConfiguration.getInstance();
- openIDServerUrl = serverConfig.getFirstProperty("OpenIDServerUrl");
-
- user = normalizeUrlEncoding(user);
-
- openID = openIDServerUrl + "/user/" + user;
-
- try {
- uri = new URI(openID);
- } catch (URISyntaxException e) {
- throw new IdentityProviderException(
- IdentityConstants.ErrorCodes.INVALID_USERNAME_FOR_OPENID);
- }
-
- try {
- url = uri.normalize().toURL();
- if (url.getQuery() != null || url.getRef() != null)
- throw new IdentityProviderException(
-
IdentityConstants.ErrorCodes.INVALID_USERNAME_FOR_OPENID);
- } catch (MalformedURLException e) {
- throw new IdentityProviderException(
- IdentityConstants.ErrorCodes.INVALID_USERNAME_FOR_OPENID);
- }
-
- openID = url.toString();
-
- log.info("OpenID generated : " + openID);
-
- return openID;
- }
-
- /**
* @param authPage Authentication page
*/
public void setAuthPage(String authPage) {
@@ -432,6 +153,98 @@
}
/**
+ * @param params List of parameters from the OpenID authentication request
+ * @return response text
+ */
+ private String checkAuthentication(ParameterList params) {
+ Message message = null;
+
+ // Processing a verification request.
+ message = manager.verify(params);
+ return message.keyValueFormEncoding();
+ }
+
+ /**
+ * @param httpReq HttpServletRequest
+ * @param params Parameter list
+ * @return response text
+ * @throws IdentityProviderException
+ * @throws ServerException
+ * @throws MessageException
+ */
+ private String checkSetupOrImmediate(HttpServletRequest httpReq,
+ ParameterList params) throws IdentityProviderException,
+ ServerException, MessageException {
+
+ boolean authenticatedAndApproved = false;
+ String userSelectedClaimedId = null;
+ String openId = null;
+ String userId = null;
+ Message message = null;
+ HttpSession session = null;
+ String returnTo = null;
+ String profileName = null;
+
+ session = httpReq.getSession();
+
+ openId = params.hasParameter(IdentityConstants.OpenId.ATTR_IDENTITY) ?
params
+ .getParameterValue(IdentityConstants.OpenId.ATTR_IDENTITY)
+ : null;
+
+ if (openId == null)
+ throw new IdentityProviderException(
+ IdentityConstants.ErrorCodes.REQUIRED_ATTRIBUTE_MISSING);
+
+ userId = OpenIDUtil.getUserName(openId);
+
+ if (httpReq.getParameter("authenticatedAndApproved") != null
+ && httpReq.getParameter("authenticatedAndApproved").equals(
+ "true")) {
+ IPPersistenceManager persistenceManager = null;
+ OpenIDUserRPDO[] rpdo = null;
+
+ persistenceManager = IPPersistenceManager.getPersistanceManager();
+ returnTo = params
+
.getParameterValue(IdentityConstants.OpenId.ATTR_RETURN_TO);
+ rpdo = persistenceManager.getOpenIDUserRP(userId, returnTo);
+ if (rpdo != null && rpdo.length > 0)
+ profileName = rpdo[0].getDefaultProfileName();
+ authenticatedAndApproved = true;
+ }
+
+ if (IdentityConstants.OpenId.CANCEL.equals(httpReq
+ .getParameter(IdentityConstants.OpenId.ACTION))) {
+ authenticatedAndApproved = false;
+ } else if (!authenticatedAndApproved) {
+ // Not authenticated, redirect to the authentication
+ // page.
+ session.setAttribute(IdentityConstants.OpenId.PARAM_LIST, params);
+ return authPage;
+ }
+
+ // Process an authentication request.
+ AuthRequest authReq = AuthRequest.createAuthRequest(params, manager
+ .getRealmVerifier());
+
+ String opLocalId = null;
+
+ message = manager.authResponse(params, opLocalId,
+ userSelectedClaimedId, authenticatedAndApproved);
+
+ if (message instanceof DirectError || message instanceof AuthFailure)
+ return message.getDestinationUrl(true);
+ else {
+ OpenIDExtension extension = null;
+ extension = OpenIDExtensionFactory.getInstance().getExtension(
+ authReq);
+ if (extension != null)
+ message.addExtension(extension.getMessageExtension(userId,
+ profileName));
+ return message.getDestinationUrl(true);
+ }
+ }
+
+ /**
* Send a direct response to the RP.
* @param httpResp HttpServletResponse
* @param response Response message
@@ -450,39 +263,4 @@
}
return null;
}
-
- private static String normalizeUrlEncoding(String text) {
-
- if (text == null)
- return null;
-
- int len = text.length();
- StringBuffer normalized = new StringBuffer(len);
-
- for (int i = 0; i < len; i++) {
- char current = text.charAt(i);
-
- if (current == '%' && i < len - 2) {
- String percentCode = text.substring(i, i + 3).toUpperCase();
-
- try {
- String str = URLDecoder.decode(percentCode, "ISO-8859-1");
- char chr = str.charAt(0);
-
- if (UNRESERVED_CHARACTERS.contains(Character.valueOf(chr)))
- normalized.append(chr);
- else
- normalized.append(percentCode);
- } catch (UnsupportedEncodingException e) {
- normalized.append(percentCode);
- }
-
- i += 2;
- } else {
- normalized.append(current);
- }
- }
-
- return normalized.toString();
- }
}
\ No newline at end of file
Added:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDUtil.java
==============================================================================
--- (empty file)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDUtil.java
Mon Mar 3 21:49:48 2008
@@ -0,0 +1,167 @@
+package org.wso2.solutions.identity.openid;
+
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.URLDecoder;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.openid4java.server.ServerException;
+import org.wso2.solutions.identity.IdentityConstants;
+import org.wso2.solutions.identity.IdentityProviderException;
+import org.wso2.solutions.identity.UserStore;
+import org.wso2.utils.ServerConfiguration;
+
+public class OpenIDUtil {
+
+ private static Log log = LogFactory.getLog(OpenIDUtil.class);
+
+ private static final Set<Character> UNRESERVED_CHARACTERS = new
HashSet<Character>();
+
+ static {
+ for (char c = 'a'; c <= 'z'; c++)
+ UNRESERVED_CHARACTERS.add(Character.valueOf(c));
+
+ for (char c = 'A'; c <= 'A'; c++)
+ UNRESERVED_CHARACTERS.add(Character.valueOf(c));
+
+ for (char c = '0'; c <= '9'; c++)
+ UNRESERVED_CHARACTERS.add(Character.valueOf(c));
+
+ UNRESERVED_CHARACTERS.add(Character.valueOf('-'));
+ UNRESERVED_CHARACTERS.add(Character.valueOf('.'));
+ UNRESERVED_CHARACTERS.add(Character.valueOf('_'));
+ UNRESERVED_CHARACTERS.add(Character.valueOf('~'));
+ }
+
+ /**
+ * Find the user name corresponding to the given OpenID.
+ * @param openId User's OpenID
+ * @return User name corresponding the given OpenID.
+ * @throws ServerException
+ * @throws IdentityProviderException
+ */
+ public static String getUserName(String openId) throws ServerException,
+ IdentityProviderException {
+
+ UserStore userStore = null;
+ List users = null;
+
+ userStore = UserStore.getInstance();
+ users = userStore.getAllUserNames();
+
+ if (users == null)
+ throw new IdentityProviderException(
+ IdentityConstants.ErrorCodes.NO_USERS_FOUND);
+
+ Map mapValues = null;
+ Iterator iterator = null;
+
+ iterator = users.iterator();
+
+ while (iterator.hasNext()) {
+
+ String user = (String) iterator.next();
+ mapValues = userStore.getClaimValues(user, null);
+
+ if (mapValues != null && !mapValues.isEmpty()) {
+ // User has defined claims!
+ String claimId = (String) mapValues
+ .get(IdentityConstants.CLAIM_OPENID);
+ if (claimId != null && claimId.equals(openId)) {
+ return user;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Generate OpenID for a given user.
+ * @param user User
+ * @return Generated OpenID
+ * @throws IdentityProviderException
+ */
+ public static String generateOpenID(String user)
+ throws IdentityProviderException {
+
+ ServerConfiguration serverConfig = null;
+ String openIDServerUrl = null;
+ String openID = null;
+ URI uri = null;
+ URL url = null;
+
+ serverConfig = ServerConfiguration.getInstance();
+ openIDServerUrl = serverConfig.getFirstProperty("OpenIDServerUrl");
+
+ user = normalizeUrlEncoding(user);
+
+ openID = openIDServerUrl + "/user/" + user;
+
+ try {
+ uri = new URI(openID);
+ } catch (URISyntaxException e) {
+ throw new IdentityProviderException(
+ IdentityConstants.ErrorCodes.INVALID_USERNAME_FOR_OPENID);
+ }
+
+ try {
+ url = uri.normalize().toURL();
+ if (url.getQuery() != null || url.getRef() != null)
+ throw new IdentityProviderException(
+
IdentityConstants.ErrorCodes.INVALID_USERNAME_FOR_OPENID);
+ } catch (MalformedURLException e) {
+ throw new IdentityProviderException(
+ IdentityConstants.ErrorCodes.INVALID_USERNAME_FOR_OPENID);
+ }
+
+ openID = url.toString();
+
+ log.info("OpenID generated : " + openID);
+
+ return openID;
+ }
+
+ /**
+ * @param text
+ * @return
+ */
+ private static String normalizeUrlEncoding(String text) {
+
+ if (text == null)
+ return null;
+
+ int len = text.length();
+ StringBuffer normalized = new StringBuffer(len);
+
+ for (int i = 0; i < len; i++) {
+ char current = text.charAt(i);
+ if (current == '%' && i < len - 2) {
+ String percentCode = text.substring(i, i + 3).toUpperCase();
+ try {
+ String str = URLDecoder.decode(percentCode, "ISO-8859-1");
+ char chr = str.charAt(0);
+ if (UNRESERVED_CHARACTERS.contains(Character.valueOf(chr)))
+ normalized.append(chr);
+ else
+ normalized.append(percentCode);
+ } catch (UnsupportedEncodingException e) {
+ normalized.append(percentCode);
+ }
+ i += 2;
+ } else {
+ normalized.append(current);
+ }
+ }
+ return normalized.toString();
+ }
+
+}
Added:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDAttributeExchange.java
==============================================================================
--- (empty file)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDAttributeExchange.java
Mon Mar 3 21:49:48 2008
@@ -0,0 +1,141 @@
+package org.wso2.solutions.identity.openid.extensions;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.openid4java.message.AuthRequest;
+import org.openid4java.message.MessageException;
+import org.openid4java.message.MessageExtension;
+import org.openid4java.message.ax.FetchRequest;
+import org.openid4java.message.ax.FetchResponse;
+import org.wso2.solutions.identity.IdentityConstants;
+import org.wso2.solutions.identity.IdentityProviderException;
+import org.wso2.solutions.identity.admin.ClaimsAdmin;
+import org.wso2.solutions.identity.openid.OpenIDClaim;
+import org.wso2.solutions.identity.persistence.dataobject.ClaimDO;
+
+public class OpenIDAttributeExchange extends OpenIDExtension {
+
+ private AuthRequest authRequest;
+
+ private static Log log = LogFactory.getLog(OpenIDAttributeExchange.class);
+
+ /**
+ * Constructed during building the response
+ * @param authSuccess An instance of AuthRequest
+ */
+ public OpenIDAttributeExchange(AuthRequest authRequest) {
+ this.authRequest = authRequest;
+ }
+
+ public MessageExtension getMessageExtension(String userId,
+ String profileName) throws IdentityProviderException {
+
+ MessageExtension extensions = null;
+
+ try {
+ extensions = authRequest.getExtension(FetchRequest.OPENID_NS_AX);
+
+ if (extensions instanceof FetchRequest) {
+
+ Map required = null;
+ FetchRequest fetchRequest = null;
+ FetchResponse fetchResponse = null;
+ Map claimValues = null;
+
+ fetchRequest = (FetchRequest) extensions;
+
+ // Get the required attributes as requested by the
+ // RP.
+ required = fetchRequest.getAttributes(true);
+ fetchResponse = FetchResponse.createFetchResponse(fetchRequest,
+ new HashMap());
+ claimValues = populateAttributeValues(required, userId,
+ profileName);
+ setAttributeExchangeValues(fetchResponse, claimValues);
+
+ return fetchResponse;
+
+ } else {
+ log.error("Unsupported request type");
+ throw new UnsupportedOperationException("TODO");
+ }
+ } catch (MessageException e) {
+ throw new IdentityProviderException(
+ IdentityConstants.ErrorCodes.OPENID_RESP_GENERATION_FAILED,
+ e);
+ }
+ }
+
+ /**
+ * 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 required claim values.
+ * @throws IdentityProviderException
+ */
+ protected Map populateAttributeValues(Map requiredClaims, String userId,
+ String profileName) throws IdentityProviderException {
+
+ Map claims = null;
+ ClaimDO[] supportedClaims = null;
+ ClaimsAdmin claimsAdmin = null;
+ Iterator iterator = null;
+ Map map = null;
+ Entry entry = null;
+
+ claims = new HashMap();
+
+ claimsAdmin = new ClaimsAdmin();
+ supportedClaims = claimsAdmin.getAllMappedEnabledClaims();
+
+ for (int i = 0; i < supportedClaims.length; i++) {
+ ClaimDO temp = supportedClaims[i];
+ if (temp.getOpenIDTag() != null)
+ claims.put(temp.getOpenIDTag(), temp);
+ }
+
+ iterator = requiredClaims.entrySet().iterator();
+ map = new HashMap();
+
+ String key = null;
+ String val = null;
+
+ while (iterator.hasNext()) {
+ entry = (Entry) iterator.next();
+ val = (String) entry.getValue();
+ map.put(claimsAdmin.getMappedOpenIDTag(val), entry.getKey());
+ }
+
+ return populateAttributeValues(map.keySet(), userId, claims, map,
+ profileName);
+ }
+
+ /**
+ * Populate the response with claim values. If we can't find the required
+ * values with us, we simply avoid sending them. An Identity Provider MAY
+ * return any subset of the following fields in response to the query.
+ * @param claimValues Claim values.
+ * @throws MessageException
+ */
+ protected void setAttributeExchangeValues(FetchResponse response,
+ Map claimValues) throws MessageException {
+
+ Iterator iterator = null;
+ Entry entry = null;
+ OpenIDClaim claim = null;
+
+ iterator = claimValues.entrySet().iterator();
+
+ while (iterator.hasNext()) {
+ entry = (Entry) iterator.next();
+ claim = (OpenIDClaim) entry.getValue();
+ response.addAttribute(claim.getOpenIDTag(), claim.getTypeUri(),
+ claim.getClaimValue());
+ }
+ }
+}
Added:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDExtension.java
==============================================================================
--- (empty file)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDExtension.java
Mon Mar 3 21:49:48 2008
@@ -0,0 +1,106 @@
+package org.wso2.solutions.identity.openid.extensions;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.openid4java.message.MessageExtension;
+import org.wso2.solutions.identity.IdentityConstants;
+import org.wso2.solutions.identity.IdentityProviderException;
+import org.wso2.solutions.identity.UserStore;
+import org.wso2.solutions.identity.openid.OpenIDClaim;
+import org.wso2.solutions.identity.persistence.dataobject.ClaimDO;
+
+public abstract class OpenIDExtension {
+
+ /**
+ * Creates an instance of MessageExtension for the OpenID authentication
response
+ * @param request OpenID authentication request
+ * @return An instance of MessageExtension
+ * @throws RelyingPartyException
+ */
+ public abstract MessageExtension getMessageExtension(String userId,
+ String profileName) throws IdentityProviderException;
+
+ /**
+ * 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.
+ * @throws IdentityProviderException
+ */
+ protected Map populateAttributeValues(Collection requiredClaims,
+ String userId, Map claims, Map openIDTagMapping, String
profileName)
+ throws IdentityProviderException {
+
+ UserStore connector = null;
+ Map claimValues = null;
+ Iterator iterator = null;
+ List list = null;
+
+ connector = UserStore.getInstance();
+
+ // Get the column names for the URIs
+ iterator = requiredClaims.iterator();
+ list = new ArrayList();
+
+ String tag = null;
+ ClaimDO claim = null;
+
+ // First we need to figure-out which attributed we need to retrieve
from
+ // the user store.
+ while (iterator.hasNext()) {
+ tag = (String) iterator.next();
+ claim = (ClaimDO) claims.get(tag);
+ if (claim != null
+ && !claim.getUri().equals(IdentityConstants.CLAIM_PPID)) {
+ if (claim.isSupported())
+ list.add(claim.getAttrId());
+ }
+ }
+
+ Map mapValues = null;
+ OpenIDClaim openIDClaim = null;
+ String profile = null;
+
+ if (profileName == null)
+ profile = IdentityConstants.DEFAULT_PROFILE;
+ else
+ profile = profileName;
+
+ // Get the claims values corresponding to the user from the user store.
+ mapValues = connector.getClaimValues(userId, profile, list);
+
+ claimValues = new HashMap();
+
+ iterator = requiredClaims.iterator();
+
+ // Iterate through the claim values retrieved and requestedClaims will
+ // be populated with the corresponding values.
+ while (iterator.hasNext()) {
+ tag = (String) iterator.next();
+ claim = (ClaimDO) claims.get(tag);
+
+ if (claim != null && claim.isSupported()) {
+ openIDClaim = new OpenIDClaim();
+ openIDClaim.setClaimValue((String) mapValues.get(claim
+ .getAttrId()));
+ openIDClaim.setTypeUri(claim.getUri());
+ if (openIDTagMapping != null)
+ openIDClaim.setOpenIDTag((String)
openIDTagMapping.get(claim
+ .getOpenIDTag()));
+ else
+ openIDClaim.setOpenIDTag(claim.getOpenIDTag());
+ if (openIDClaim.getClaimValue() != null)
+ claimValues.put(openIDClaim.getTypeUri(), openIDClaim);
+ }
+ }
+
+ return claimValues;
+ }
+
+}
Added:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDPape.java
==============================================================================
--- (empty file)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDPape.java
Mon Mar 3 21:49:48 2008
@@ -0,0 +1,29 @@
+package org.wso2.solutions.identity.openid.extensions;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.openid4java.message.AuthRequest;
+import org.openid4java.message.MessageExtension;
+import org.wso2.solutions.identity.IdentityProviderException;
+
+public class OpenIDPape extends OpenIDExtension {
+
+ private AuthRequest authRequest;
+
+ private static Log log = LogFactory.getLog(OpenIDPape.class);
+
+ /**
+ * Constructed during building the response
+ * @param authSuccess An instance of AuthRequest
+ */
+ public OpenIDPape(AuthRequest authRequest) {
+ this.authRequest = authRequest;
+ }
+
+ public MessageExtension getMessageExtension(String userId, String
profileName)
+ throws IdentityProviderException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Added:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDSimpleReg.java
==============================================================================
--- (empty file)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDSimpleReg.java
Mon Mar 3 21:49:48 2008
@@ -0,0 +1,133 @@
+package org.wso2.solutions.identity.openid.extensions;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.openid4java.message.AuthRequest;
+import org.openid4java.message.MessageException;
+import org.openid4java.message.MessageExtension;
+import org.openid4java.message.sreg.SRegRequest;
+import org.openid4java.message.sreg.SRegResponse;
+import org.wso2.solutions.identity.IdentityConstants;
+import org.wso2.solutions.identity.IdentityProviderException;
+import org.wso2.solutions.identity.admin.ClaimsAdmin;
+import org.wso2.solutions.identity.openid.OpenIDClaim;
+import org.wso2.solutions.identity.persistence.dataobject.ClaimDO;
+
+public class OpenIDSimpleReg extends OpenIDExtension {
+
+ private AuthRequest authRequest;
+ private static Log log = LogFactory.getLog(OpenIDSimpleReg.class);
+
+ /**
+ * Constructed during building the response
+ * @param authSuccess An instance of AuthRequest
+ */
+ public OpenIDSimpleReg(AuthRequest authRequest) {
+ this.authRequest = authRequest;
+ }
+
+ public MessageExtension getMessageExtension(String userId,
+ String profileName) throws IdentityProviderException {
+ MessageExtension extension = null;
+
+ try {
+ extension = authRequest.getExtension(SRegRequest.OPENID_NS_SREG);
+
+ if (extension == null)
+ extension = authRequest
+
.getExtension(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG);
+
+ if (extension instanceof SRegRequest) {
+
+ SRegRequest sregReq = null;
+ List required = null;
+ Map userDataSReg = null;
+ Map claimValues = null;
+ SRegResponse response = null;
+
+ sregReq = (SRegRequest) extension;
+
+ // Get the required attributes as requested by the
+ // RP.
+ required = sregReq.getAttributes(true);
+
+ userDataSReg = new HashMap();
+ response = SRegResponse.createSRegResponse(sregReq,
+ userDataSReg);
+ claimValues = populateAttributeValues(required, userId,
+ profileName);
+ setSimpleAttributeRegistrationValues(response, claimValues);
+
+ return response;
+
+ } else {
+ log.error("Unsupported request type");
+ throw new UnsupportedOperationException("TODO");
+ }
+ } catch (MessageException e) {
+ throw new IdentityProviderException(
+ IdentityConstants.ErrorCodes.OPENID_RESP_GENERATION_FAILED,
+ e);
+ }
+ }
+
+ /**
+ * Populate the response with claim values. If we can't find the required
+ * values with us, we simply avoid sending them. An Identity Provider MAY
+ * return any subset of the following fields in response to the query.
+ * @param response Simple Registration response.
+ * @param claimValues Claim values.
+ * @throws MessageException
+ */
+ protected void setSimpleAttributeRegistrationValues(SRegResponse response,
+ Map claimValues) throws MessageException {
+
+ Iterator iterator = null;
+ OpenIDClaim claim = null;
+ Entry entry = null;
+
+ iterator = claimValues.entrySet().iterator();
+
+ while (iterator.hasNext()) {
+ entry = (Entry) iterator.next();
+ claim = (OpenIDClaim) entry.getValue();
+ response.addAttribute(claim.getOpenIDTag(), claim.getClaimValue());
+ }
+
+ }
+
+ /**
+ * 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 required claim values.
+ * @throws IdentityProviderException
+ */
+ protected Map populateAttributeValues(List requiredClaims, String userId,
+ String profileName) throws IdentityProviderException {
+
+ Map claims = null;
+ ClaimDO[] supportedClaims = null;
+ ClaimsAdmin claimsAdmin = null;
+
+ claims = new HashMap();
+
+ claimsAdmin = new ClaimsAdmin();
+ supportedClaims = claimsAdmin.getAllMappedEnabledClaims();
+
+ for (int i = 0; i < supportedClaims.length; i++) {
+ ClaimDO temp = supportedClaims[i];
+ if (temp.getOpenIDTag() != null)
+ claims.put(temp.getOpenIDTag(), temp);
+ }
+
+ return populateAttributeValues(requiredClaims, userId, claims, null,
+ profileName);
+ }
+}
Modified:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/resources.properties
==============================================================================
---
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/resources.properties
(original)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/resources.properties
Mon Mar 3 21:49:48 2008
@@ -60,6 +60,7 @@
errorInPasswordCallbackHandler = Error in password callback handler
invalidUserNameForOpenID=Invalid user name provided for OpenID generation
openIDDirectResponseFailed=Direct response from OP failed
+openIDResponseGenerationFailed=Failed to generate OpenID response message
openIDTokenCreationFailed=OpenID token creation failed
requredAttributeMissing=Required attribute,openid.identity, is missing
noUsersFound=No users found, corresponding to the given OpenID
Modified:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/OpenIDTokenIssuer.java
==============================================================================
---
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/OpenIDTokenIssuer.java
(original)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/OpenIDTokenIssuer.java
Mon Mar 3 21:49:48 2008
@@ -10,7 +10,6 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axis2.context.MessageContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.rahas.RahasConstants;
Modified:
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDExtensionFactory.java
==============================================================================
---
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDExtensionFactory.java
(original)
+++
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDExtensionFactory.java
Mon Mar 3 21:49:48 2008
@@ -1,6 +1,8 @@
package org.wso2.solutions.identity.relyingparty.openid;
import org.openid4java.message.AuthSuccess;
+import org.openid4java.message.ax.AxMessage;
+import org.openid4java.message.sreg.SRegMessage;
import org.wso2.solutions.identity.IdentityConstants;
import
org.wso2.solutions.identity.relyingparty.openid.extensions.OpenIDAttributeExchange;
import
org.wso2.solutions.identity.relyingparty.openid.extensions.OpenIDExtension;
@@ -53,10 +55,11 @@
public OpenIDExtension getExtension(AuthSuccess auth) {
if (auth
-
.hasExtension(IdentityConstants.OpenId.ExchangeAttributes.NS_AX)) {
+ .hasExtension(AxMessage.OPENID_NS_AX)) {
return new OpenIDAttributeExchange(auth);
} else if (auth
-
.hasExtension(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG)) {
+
.hasExtension(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG)
+ || auth.hasExtension(SRegMessage.OPENID_NS_SREG)) {
return new OpenIDSimpleReg(auth);
}
Modified:
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/extensions/OpenIDSimpleReg.java
==============================================================================
---
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/extensions/OpenIDSimpleReg.java
(original)
+++
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/extensions/OpenIDSimpleReg.java
Mon Mar 3 21:49:48 2008
@@ -104,7 +104,7 @@
}
/**
- * If no attribute set by the use for simple registration request, by
+ * If no attribute set by the user for simple registration request, by
* default we set all the attributes.
* @param request Simple registration request
*/
Modified:
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/InfoCardUserRegistrationSubmitAction.java
==============================================================================
---
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/InfoCardUserRegistrationSubmitAction.java
(original)
+++
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/InfoCardUserRegistrationSubmitAction.java
Mon Mar 3 21:49:48 2008
@@ -30,6 +30,7 @@
import org.wso2.solutions.identity.admin.RegisteredInfoCardInfoAdmin;
import org.wso2.solutions.identity.admin.ReportAdmin;
import org.wso2.solutions.identity.openid.OpenIDProvider;
+import org.wso2.solutions.identity.openid.OpenIDUtil;
import org.wso2.solutions.identity.persistence.dataobject.ActionDO;
import org.wso2.solutions.identity.persistence.dataobject.ClaimDO;
import org.wso2.solutions.identity.relyingparty.TokenVerifierConstants;
@@ -83,7 +84,7 @@
String openid = null;
if (enableOpenIDRegistration) {
// We create an OpenID for all registering users
- openid = OpenIDProvider.generateOpenID(userName);
+ openid = OpenIDUtil.generateOpenID(userName);
props.put(IdentityConstants.CLAIM_OPENID, openid);
}
Modified:
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/UserRegistrationFormSubmitAction.java
==============================================================================
---
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/UserRegistrationFormSubmitAction.java
(original)
+++
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/UserRegistrationFormSubmitAction.java
Mon Mar 3 21:49:48 2008
@@ -22,6 +22,7 @@
import org.wso2.solutions.identity.admin.ParameterAdmin;
import org.wso2.solutions.identity.admin.ReportAdmin;
import org.wso2.solutions.identity.openid.OpenIDProvider;
+import org.wso2.solutions.identity.openid.OpenIDUtil;
import org.wso2.solutions.identity.persistence.dataobject.ActionDO;
import org.wso2.solutions.identity.persistence.dataobject.ClaimDO;
import org.wso2.solutions.identity.relyingparty.RelyingPartyException;
@@ -95,7 +96,7 @@
if (enableOpenIDRegistration) {
try {
// We create an OpenID for all registering users
- openid = OpenIDProvider.generateOpenID(this.username);
+ openid = OpenIDUtil.generateOpenID(this.username);
UserUtil.getUserName(openid);
this.addErrorMessage(getText("sign_in_user_exist",
new String[] { username }));
_______________________________________________
Identity-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/identity-dev