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

Reply via email to