Author: prabath
Date: Wed Jan 9 01:35:08 2008
New Revision: 12034
Log:
OpenID integration
Modified:
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/OpenIdTokenIssuer.java
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
Wed Jan 9 01:35:08 2008
@@ -17,13 +17,20 @@
import org.apache.rahas.TrustUtil;
import org.apache.ws.security.message.WSSecEncryptedKey;
import org.apache.ws.security.util.XmlSchemaDateFormat;
+import org.openid4java.infocard.OpenIDToken;
+import org.openid4java.message.Message;
+import org.openid4java.message.MessageException;
+import org.openid4java.message.Parameter;
+import org.openid4java.message.ParameterList;
import org.opensaml.SAMLAssertion;
import org.opensaml.SAMLException;
import org.w3c.dom.Document;
+import org.wso2.solutions.identity.IdentityConstants;
import org.wso2.solutions.identity.IdentityProviderConstants;
import org.wso2.solutions.identity.IdentityProviderException;
+import org.wso2.solutions.identity.openid.OpenIDInfoCardToken;
import org.wso2.solutions.identity.sts.IdentityProviderData.RequestedClaimData;
public class OpenIdTokenIssuer extends IdentityTokenIssuer {
@@ -88,7 +95,11 @@
OMElement reqSecTokenElem = TrustUtil
.createRequestedSecurityTokenElement(wstVersion, rstrElem);
- createOpenIdToken(reqSecTokenElem);
+ try {
+ createOpenIdToken(reqSecTokenElem);
+ } catch (MessageException e) {
+ throw new IdentityProviderException(e.getMessage());
+ }
createAttachedRef(rstrElem, assertion.getId());
createUnattachedRef(rstrElem, assertion.getId());
@@ -108,43 +119,64 @@
*
* @param rstrElem
* @return
+ * @throws MessageException
*/
- private OMElement createOpenIdToken(OMElement rstrElem) {
+ private OMElement createOpenIdToken(OMElement rstrElem)
+ throws MessageException {
OMElement rdt = IdentityProviderUtil
.createOpenIdToken(rstrElem, ipData);
- String text = null;
+ OpenIDInfoCardToken token = null;
+ Message message = null;
+ ParameterList params = null;
+
+ params = new ParameterList();
+
+ params.set(new Parameter("openid.ns",
+ "http://specs.openid.net/auth/2.0"));
+ params.set(new Parameter("openid.op_endpoint",
+ "https://openidcards.sxip.com/op"));
+ params.set(new Parameter("openid.claimed_id",
+ "http://localhost:12080/user/prabath"));
+ params.set(new Parameter("openid.response_nonce",
+ "2007-12-14T09:25:50Z0"));
+ params.set(new Parameter("openid.mode", "id_res"));
+ params.set(new Parameter("openid.identity",
+ "http://localhost:12080/user/prabath"));
+ params.set(new Parameter("openid.return_to",
+ "https://openidcards.sxip.com/demorp/"));
+ params.set(new Parameter("openid.assoc_handle", "e242741d76b42a6"));
+ params
+ .set(new Parameter("openid.signed",
+
"op_endpoint,claimed_id,identity,return_to,response_nonce,assoc_handle"));
+ params.set(new Parameter("openid.sig",
"ug3AMXHi6fnBDNk1ey0TyP+GI5o="));
+ params.set(new Parameter("openid.ns.sreg",
+ IdentityConstants.OpenId.NS_SREG));
+
+ params
+ .set(new Parameter(
+ IdentityConstants.OpenId.SREG
+ +
IdentityConstants.OpenId.SimpleRegAttributes.FULL_NAME,
+ ((RequestedClaimData) ipData.requestedClaims
+
.get(IdentityProviderConstants.ATTR_NS_SURNAME)).value));
+ params
+ .set(new Parameter(
+ IdentityConstants.OpenId.SREG
+ +
IdentityConstants.OpenId.SimpleRegAttributes.NICK_NAME,
+ ((RequestedClaimData) ipData.requestedClaims
+
.get(IdentityProviderConstants.ATTR_NS_GIVEN_NAME)).value));
+ params
+ .set(new Parameter(
+ IdentityConstants.OpenId.SREG
+ +
IdentityConstants.OpenId.SimpleRegAttributes.EMAIL,
+ ((RequestedClaimData) ipData.requestedClaims
+
.get(IdentityProviderConstants.ATTR_NS_EMAIL_ADDRESS)).value));
+
+ message = Message.createMessage(params);
- // TODO: need to build the OpenID Token
- text = "openid.ns:http://specs.openid.net/auth/2.0\n";
- text += "openid.op_endpoint:https://openidcards.sxip.com/op/\n";
- text += "openid.claimed_id:http://localhost:12080/user/prabath\n";
- text += "openid.response_nonce:2007-12-14T09:25:50Z0\n";
- text += "openid.mode:id_res\n";
- text += "openid.identity:http://localhost:12080/user/prabath\n";
- text += "openid.return_to:https://openidcards.sxip.com/demorp/\n";
- text += "openid.assoc_handle:e242741d76b42a6\n";
- text +=
"openid.signed:op_endpoint,claimed_id,identity,return_to,response_nonce,assoc_handle\n";
- text += "openid.sig:ug3AMXHi6fnBDNk1ey0TyP+GI5o=\n";
- text += "openid.ns.ext1:http://openid.net/srv/ax/1.0\n";
- text += "openid.ext1.mode:fetch_response\n";
- text +=
"openid.ext1.type.FullName:http://axschema.org/namePerson/fullname\n";
- text += "openid.ext1.value.FullName:"
- + ((RequestedClaimData) ipData.requestedClaims
- .get(IdentityProviderConstants.ATTR_NS_SURNAME)).value
- + "\n";
- text +=
"openid.ext1.type.NickName:http://axschema.org/namePerson/nickname\n";
- text += "openid.ext1.value.NickName:"
- + ((RequestedClaimData) ipData.requestedClaims
-
.get(IdentityProviderConstants.ATTR_NS_GIVEN_NAME)).value
- + "\n";
- text += "openid.ext1.type.Email:http://axschema.org/contact/email\n";
- text += "openid.ext1.value.Email:"
- + ((RequestedClaimData) ipData.requestedClaims
-
.get(IdentityProviderConstants.ATTR_NS_EMAIL_ADDRESS)).value
- + "\n";
+ token = new OpenIDInfoCardToken(message);
- rdt.setText(text);
+ rdt.setText(token.getToken());
return rdt;
}
_______________________________________________
Identity-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/identity-dev