Author: prabath
Date: Mon Jan 21 02:11:02 2008
New Revision: 12599

Log:

added SReg support for OpenID Infocards

Modified:
   
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/openid/relyingparty/OpenIDConsumer.java

Modified: 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/openid/relyingparty/OpenIDConsumer.java
==============================================================================
--- 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/openid/relyingparty/OpenIDConsumer.java
      (original)
+++ 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/openid/relyingparty/OpenIDConsumer.java
      Mon Jan 21 02:11:02 2008
@@ -2,8 +2,10 @@
 
 import java.io.IOException;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -25,6 +27,7 @@
 import org.openid4java.message.ParameterList;
 import org.openid4java.message.ax.AxMessage;
 import org.openid4java.message.ax.FetchResponse;
+import org.openid4java.message.sreg.SRegMessage;
 import org.openid4java.message.sreg.SRegRequest;
 import org.openid4java.message.sreg.SRegResponse;
 import org.wso2.solutions.identity.IdentityConstants;
@@ -377,28 +380,51 @@
 
             if (authResponse instanceof AuthSuccess) {
 
-                FetchResponse fetchResp = null;
                 AuthSuccess authSuccess = null;
                 MessageExtension extension = null;
 
                 authSuccess = (AuthSuccess) authResponse;
 
-                extension = authSuccess.getExtension(AxMessage.OPENID_NS_AX);
+                if (authSuccess.hasExtension(AxMessage.OPENID_NS_AX)) {
+                    extension = authSuccess
+                            .getExtension(AxMessage.OPENID_NS_AX);
+
+                    FetchResponse fetchResp = null;
+                    List aliases = null;
+                    Map types = null;
+                    String alias = null;
+                    List values = null;
 
-                if (authSuccess.hasExtension(AxMessage.OPENID_NS_AX)
-                        && extension instanceof FetchResponse) {
                     fetchResp = (FetchResponse) extension;
 
-                    List aliases = fetchResp.getAttributeAliases();
-                    Map types = fetchResp.getAttributeTypes();
-                    String alias;
-                    List values;
+                    aliases = fetchResp.getAttributeAliases();
+                    types = fetchResp.getAttributeTypes();
+
                     for (Object a : aliases) {
                         alias = (String) a;
                         values = fetchResp.getAttributeValues(alias);
                         request.setAttribute(alias.toLowerCase(),
                                 (String) values.get(0));
                     }
+                } else if (authSuccess
+                        
.hasExtension(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG)) {
+
+                    SRegResponse regResponse = null;
+                    Iterator iterator = null;
+                    Map attributes = null;
+                    String key = null;
+
+                    extension = authSuccess
+                            
.getExtension(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG);
+                    regResponse = (SRegResponse) extension;
+
+                    attributes = regResponse.getAttributes();
+                    iterator = attributes.keySet().iterator();
+
+                    while (iterator.hasNext()) {
+                        key = (String)iterator.next();
+                        
request.setAttribute(key.toLowerCase(),attributes.get(key));
+                    }
                 }
             }
         }

_______________________________________________
Identity-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/identity-dev

Reply via email to