Author: prabath
Date: Wed Mar  5 03:16:51 2008
New Revision: 14526

Log:

adding PAPE support

Modified:
   
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/OpenIDProvider.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/OpenIDPape.java
   
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDSimpleReg.java
   
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthVerificationAction.java
   
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthenticationAction.java
   
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDSubmitAction.java
   
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDUserApprovalAction.java

Modified: 
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/OpenIDExtensionFactory.java
     (original)
+++ 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/OpenIDExtensionFactory.java
     Wed Mar  5 03:16:51 2008
@@ -35,16 +35,18 @@
      * @param auth AuthRequest instance
      * @return Appropriate OpenIDExtension instance
      */
-    public OpenIDExtension getExtension(String alias, AuthRequest auth) {
+    public OpenIDExtension getExtension(OpenIDAuthenticationRequest request) {
+        
+        String alias = request.getExtensionAlias();
 
         if (alias.equals(AxMessage.OPENID_NS_AX)) {
-            return new OpenIDAttributeExchange(auth);
+            return new OpenIDAttributeExchange(request);
         } else if (alias
                 .equals(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG)
                 || alias.equals(SRegMessage.OPENID_NS_SREG)) {
-            return new OpenIDSimpleReg(auth);
+            return new OpenIDSimpleReg(request);
         } else if (alias.equals(PapeMessage.OPENID_NS_PAPE)) {
-            return new OpenIDPape(auth);
+            return new OpenIDPape(request);
         }
 
         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
     Wed Mar  5 03:16:51 2008
@@ -236,15 +236,31 @@
             return message.getDestinationUrl(true);
         else {
             OpenIDExtension extension = null;
-            
-            for (Object alias : authReq.getExtensions()) {             
-                extension = 
OpenIDExtensionFactory.getInstance().getExtension((String)alias,
-                        authReq);
+            OpenIDAuthenticationRequest req = null;
+
+            req = new OpenIDAuthenticationRequest();
+
+            if ("true".equals(session.getAttribute("infocardsignin"))) {
+                req.setPhishingResistanceLogin(true);
+                session.removeAttribute("infocardsignin");
+            }
+
+            if ("true".equals(session.getAttribute("multifactorlogin"))) {
+                req.setMultifactorLogin(true);
+                session.removeAttribute("multifactorlogin");
+            }
+
+            req.setAuthRequest(authReq);
+
+            for (Object alias : authReq.getExtensions()) {
+                req.setExtensionAlias((String) alias);
+                extension = OpenIDExtensionFactory.getInstance().getExtension(
+                        req);
                 if (extension != null)
                     message.addExtension(extension.getMessageExtension(userId,
                             profileName));
             }
-            
+
             return message.getDestinationUrl(true);
         }
     }

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
 Wed Mar  5 03:16:51 2008
@@ -15,21 +15,22 @@
 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.OpenIDAuthenticationRequest;
 import org.wso2.solutions.identity.openid.OpenIDClaim;
 import org.wso2.solutions.identity.persistence.dataobject.ClaimDO;
 
 public class OpenIDAttributeExchange extends OpenIDExtension {
 
-    private AuthRequest authRequest;
+    private OpenIDAuthenticationRequest request;
 
     private static Log log = LogFactory.getLog(OpenIDAttributeExchange.class);
 
     /**
      * Constructed during building the response
-     * @param authSuccess An instance of AuthRequest
+     * @param request An instance of OpenIDAuthenticationRequest
      */
-    public OpenIDAttributeExchange(AuthRequest authRequest) {
-        this.authRequest = authRequest;
+    public OpenIDAttributeExchange(OpenIDAuthenticationRequest request) {
+        this.request = request;
     }
 
     /**
@@ -43,8 +44,10 @@
             String profileName) throws IdentityProviderException {
 
         MessageExtension extensions = null;
+        AuthRequest authRequest = null;
 
         try {
+            authRequest = request.getAuthRequest();
             extensions = authRequest.getExtension(FetchRequest.OPENID_NS_AX);
 
             if (extensions instanceof FetchRequest) {

Modified: 
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/OpenIDPape.java
      (original)
+++ 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDPape.java
      Wed Mar  5 03:16:51 2008
@@ -12,19 +12,20 @@
 import org.openid4java.message.pape.PapeResponse;
 import org.wso2.solutions.identity.IdentityConstants;
 import org.wso2.solutions.identity.IdentityProviderException;
+import org.wso2.solutions.identity.openid.OpenIDAuthenticationRequest;
 
 public class OpenIDPape extends OpenIDExtension {
 
-    private AuthRequest authRequest;
+    private OpenIDAuthenticationRequest request;
 
     private static Log log = LogFactory.getLog(OpenIDPape.class);
 
     /**
      * Constructed during building the response
-     * @param authSuccess An instance of AuthRequest
+     * @param request An instance of OpenIDAuthenticationRequest
      */
-    public OpenIDPape(AuthRequest authRequest) {
-        this.authRequest = authRequest;
+    public OpenIDPape(OpenIDAuthenticationRequest request) {
+        this.request = request;
     }
 
     /**
@@ -41,8 +42,10 @@
         PapeRequest papeRequest = null;
         PapeResponse papeResponse = null;
         List preferredPolicies = null;
+        AuthRequest authRequest = null;
 
         try {
+            authRequest = request.getAuthRequest();
             message = authRequest.getExtension(PapeMessage.OPENID_NS_PAPE);
 
             if (message instanceof PapeRequest) {
@@ -50,11 +53,18 @@
                 preferredPolicies = papeRequest.getPreferredAuthPoliciesList();
                 papeResponse = PapeResponse.createPapeResponse();
                 papeResponse.setNistAuthLevel(1);
-                papeResponse.setAuthAge(-1);
-                
papeResponse.setAuthPolicies(PapeMessage.PAPE_POLICY_PHISHING_RESISTANT);
+                papeResponse.setAuthAge(1);
+
+                if (request.isPhishingResistanceLogin())
+                    papeResponse
+                            
.setAuthPolicies(PapeMessage.PAPE_POLICY_PHISHING_RESISTANT);
+
+                if (request.isMultifactorLogin())
+                    papeResponse
+                            
.setAuthPolicies(PapeMessage.PAPE_POLICY_MULTI_FACTOR);
             }
-            
-          //TODO:
+
+            // TODO:
 
         } catch (MessageException e) {
             throw new IdentityProviderException(

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
 Wed Mar  5 03:16:51 2008
@@ -16,20 +16,21 @@
 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.OpenIDAuthenticationRequest;
 import org.wso2.solutions.identity.openid.OpenIDClaim;
 import org.wso2.solutions.identity.persistence.dataobject.ClaimDO;
 
 public class OpenIDSimpleReg extends OpenIDExtension {
 
-    private AuthRequest authRequest;
+    private OpenIDAuthenticationRequest request;
     private static Log log = LogFactory.getLog(OpenIDSimpleReg.class);
 
     /**
      * Constructed during building the response
-     * @param authSuccess An instance of AuthRequest
+     * @param request An instance of OpenIDAuthenticationRequest
      */
-    public OpenIDSimpleReg(AuthRequest authRequest) {
-        this.authRequest = authRequest;
+    public OpenIDSimpleReg(OpenIDAuthenticationRequest request) {
+        this.request = request;
     }
 
     /**
@@ -42,8 +43,10 @@
     public MessageExtension getMessageExtension(String userId,
             String profileName) throws IdentityProviderException {
         MessageExtension extension = null;
+        AuthRequest authRequest = null;
 
         try {
+            authRequest = request.getAuthRequest();
             extension = authRequest.getExtension(SRegRequest.OPENID_NS_SREG);
 
             if (extension == null)

Modified: 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthVerificationAction.java
==============================================================================
--- 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthVerificationAction.java
 (original)
+++ 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthVerificationAction.java
 Wed Mar  5 03:16:51 2008
@@ -106,6 +106,10 @@
                 infocardCookie.setSecure(true);
                 response.addCookie(infocardCookie);
 
+                // OpenID Provider needs to know which authentication mechanism
+                // the user went through while authenticating to the OP.
+                session.setAttribute("infocardsignin", "true");
+
                 if (!isRequiredUserApproval(request)) {
                     // User has already agreed to accept request from this RP
                     // always.

Modified: 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthenticationAction.java
==============================================================================
--- 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthenticationAction.java
   (original)
+++ 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthenticationAction.java
   Wed Mar  5 03:16:51 2008
@@ -88,5 +88,4 @@
         }
         return SUCCESS;
     }
-
 }
\ No newline at end of file

Modified: 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDSubmitAction.java
==============================================================================
--- 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDSubmitAction.java
   (original)
+++ 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDSubmitAction.java
   Wed Mar  5 03:16:51 2008
@@ -97,5 +97,4 @@
     public void setOpenIdUrl(String openIdUrl) {
         this.openIdUrl = openIdUrl;
     }
-
-}
+}
\ No newline at end of file

Modified: 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDUserApprovalAction.java
==============================================================================
--- 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDUserApprovalAction.java
     (original)
+++ 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDUserApprovalAction.java
     Wed Mar  5 03:16:51 2008
@@ -1,20 +1,16 @@
 package org.wso2.solutions.identity.user.ui.action;
 
 import java.util.Date;
-import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.struts2.StrutsStatics;
 import org.openid4java.message.ParameterList;
 import org.wso2.solutions.identity.IdentityConstants;
-import org.wso2.solutions.identity.UserStore;
 import org.wso2.solutions.identity.admin.RelyingPartyAdmin;
 import org.wso2.solutions.identity.persistence.IPPersistenceManager;
 import org.wso2.solutions.identity.persistence.dataobject.OpenIDUserRPDO;
 import org.wso2.solutions.identity.user.ui.util.UserUtil;
-import org.wso2.solutions.identity.users.IdentityDefaultRealm;
-import org.wso2.solutions.identity.users.IdentityUserStoreReader;
 
 import com.opensymphony.xwork2.ActionContext;
 
@@ -63,7 +59,7 @@
                     
.getParameterValue(IdentityConstants.OpenId.ATTR_RETURN_TO);
             String openididentity = requestp
                     .getParameterValue(IdentityConstants.OpenId.ATTR_IDENTITY);
-            
+
             rpUrl = UserUtil.getRelyingPartyUrl(rpUrl);
 
             if (openididentity == null || rpUrl == null) {
@@ -72,7 +68,7 @@
             }
 
             String userName = UserUtil.getUserName(openididentity);
-        
+
             OpenIDUserRPDO rpdo = null;
             rpdo = new OpenIDUserRPDO();
 
@@ -122,5 +118,4 @@
     public void setProfileName(String profileName) {
         this.profileName = profileName;
     }
-
-}
+}
\ No newline at end of file

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

Reply via email to