Author: prabath
Date: Sat Mar 8 10:26:29 2008
New Revision: 14607
Log:
fixes as per the interop testing with blogger
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/OpenIDUtil.java
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/OpenIDSimpleReg.java
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/resources.properties
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
Sat Mar 8 10:26:29 2008
@@ -16,6 +16,7 @@
import org.openid4java.message.DirectError;
import org.openid4java.message.Message;
import org.openid4java.message.MessageException;
+import org.openid4java.message.MessageExtension;
import org.openid4java.message.ParameterList;
import org.openid4java.server.ServerException;
import org.openid4java.server.ServerManager;
@@ -176,7 +177,7 @@
* @throws IdentityProviderException
* @throws ServerException
* @throws MessageException
- * @throws AssociationException
+ * @throws AssociationException
*/
private String checkSetupOrImmediate(HttpServletRequest httpReq,
ParameterList params) throws IdentityProviderException,
@@ -212,7 +213,8 @@
persistenceManager = IPPersistenceManager.getPersistanceManager();
returnTo = params
.getParameterValue(IdentityConstants.OpenId.ATTR_RETURN_TO);
- rpdo = persistenceManager.getOpenIDUserRP(userId, returnTo);
+ rpdo = persistenceManager.getOpenIDUserRP(userId, OpenIDUtil
+ .getRelyingPartyUrl(returnTo));
if (rpdo != null && rpdo.length > 0)
profileName = rpdo[0].getDefaultProfileName();
authenticatedAndApproved = true;
@@ -263,13 +265,17 @@
req.setExtensionAlias((String) alias);
extension = OpenIDExtensionFactory.getInstance().getExtension(
req);
- if (extension != null)
- message.addExtension(extension.getMessageExtension(userId,
- profileName));
-
- AuthSuccess authSuccess = (AuthSuccess) message;
- authSuccess.setSignExtension((String) alias);
- manager.sign(authSuccess);
+ if (extension != null) {
+ MessageExtension messageExtension = null;
+ messageExtension = extension.getMessageExtension(userId,
+ profileName);
+ if (messageExtension != null) {
+ message.addExtension(messageExtension);
+ AuthSuccess authSuccess = (AuthSuccess) message;
+ authSuccess.setSignExtension((String) alias);
+ manager.sign(authSuccess);
+ }
+ }
}
return message.getDestinationUrl(true);
Modified:
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/OpenIDUtil.java
(original)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDUtil.java
Sat Mar 8 10:26:29 2008
@@ -193,4 +193,35 @@
}
return normalized.toString();
}
+
+ /**
+ * Normalize the provided relying party URL
+ * @param rpUrl Relying party URL to be normalized
+ * @return Normalized relying party URL
+ * @throws RelyingPartyException
+ */
+ public static String getRelyingPartyUrl(String rpUrl)
+ throws IdentityProviderException {
+
+ URI uri = null;
+ URL url = null;
+
+ try {
+ uri = new URI(rpUrl);
+ } catch (URISyntaxException e) {
+ throw new IdentityProviderException(
+ IdentityConstants.ErrorCodes.INVALID_OPENID_RETURNTO);
+ }
+
+ try {
+ url = uri.normalize().toURL();
+ url = new URL(url.getProtocol().toLowerCase(), url.getHost()
+ .toLowerCase(), url.getPort(), url.getPath());
+ return url.toString();
+
+ } catch (MalformedURLException e) {
+ throw new IdentityProviderException(
+ IdentityConstants.ErrorCodes.INVALID_OPENID_RETURNTO);
+ }
+ }
}
\ No newline at end of file
Modified:
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/OpenIDAttributeExchange.java
(original)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDAttributeExchange.java
Sat Mar 8 10:26:29 2008
@@ -45,6 +45,7 @@
MessageExtension extensions = null;
AuthRequest authRequest = null;
+ FetchResponse fetchResponse = null;
try {
authRequest = request.getAuthRequest();
@@ -54,8 +55,7 @@
Map required = null;
Map optional = null;
- FetchRequest fetchRequest = null;
- FetchResponse fetchResponse = null;
+ FetchRequest fetchRequest = null;
Map<String, OpenIDClaim> claimValues = null;
fetchRequest = (FetchRequest) extensions;
@@ -80,14 +80,11 @@
new HashMap());
claimValues = populateAttributeValues(required, userId,
profileName);
- setAttributeExchangeValues(fetchResponse, claimValues);
-
- return fetchResponse;
-
- } else {
- log.error("Unsupported request type");
- throw new UnsupportedOperationException("TODO");
- }
+ setAttributeExchangeValues(fetchResponse, claimValues);
+ }
+
+ return fetchResponse;
+
} catch (MessageException e) {
throw new IdentityProviderException(
IdentityConstants.ErrorCodes.OPENID_RESP_GENERATION_FAILED,
Modified:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDSimpleReg.java
==============================================================================
---
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDSimpleReg.java
(original)
+++
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDSimpleReg.java
Sat Mar 8 10:26:29 2008
@@ -42,8 +42,10 @@
*/
public MessageExtension getMessageExtension(String userId,
String profileName) throws IdentityProviderException {
+
MessageExtension extension = null;
AuthRequest authRequest = null;
+ SRegResponse response = null;
try {
authRequest = request.getAuthRequest();
@@ -66,7 +68,6 @@
List optional = null;
Map userDataSReg = null;
Map<String, OpenIDClaim> claimValues = null;
- SRegResponse response = null;
sregReq = (SRegRequest) extension;
@@ -93,12 +94,10 @@
claimValues = populateAttributeValues(required, userId,
profileName);
setSimpleAttributeRegistrationValues(response, claimValues);
-
- return response;
- } else {
- log.error("Unsupported request type");
- throw new UnsupportedOperationException("TODO");
}
+
+ return response;
+
} catch (MessageException e) {
throw new IdentityProviderException(
IdentityConstants.ErrorCodes.OPENID_RESP_GENERATION_FAILED,
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
Sat Mar 8 10:26:29 2008
@@ -64,6 +64,7 @@
openIDTokenCreationFailed=OpenID token creation failed
requredAttributeMissing=Required attribute,openid.identity, is missing
noUsersFound=No users found, corresponding to the given OpenID
+invalidOpenIDReturnTo=Invalid OpenID return_to url
#db errors
createDuplicateEntity = Duplcate entity exist
_______________________________________________
Identity-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/identity-dev