Author: prabath
Date: Tue Mar  4 22:31:10 2008
New Revision: 14510

Log:

adding PAPE support + PAPE demo

Modified:
   
trunk/solutions/identity/modules/base/src/main/java/org/wso2/solutions/identity/IdentityConstants.java
   
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/OpenIDUtil.java
   
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/openid/extensions/OpenIDPape.java
   
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/index.html
   
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidaxsubmit.jsp
   
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidloggedin.jsp
   
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidsubmit.jsp
   
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDAuthenticationRequest.java
   
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDConsumer.java
   
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDExtensionFactory.java
   
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/extensions/OpenIDPape.java
   
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDSubmitAction.java

Modified: 
trunk/solutions/identity/modules/base/src/main/java/org/wso2/solutions/identity/IdentityConstants.java
==============================================================================
--- 
trunk/solutions/identity/modules/base/src/main/java/org/wso2/solutions/identity/IdentityConstants.java
      (original)
+++ 
trunk/solutions/identity/modules/base/src/main/java/org/wso2/solutions/identity/IdentityConstants.java
      Tue Mar  4 22:31:10 2008
@@ -159,6 +159,13 @@
                public static final String AUTHENTICATED_AND_APPROVED = 
"authenticatedAndApproved";
                public final static String CANCEL = "cancel";
                public final static String PARAM_LIST = "parameterlist";
+               
+               public static class PapeAttributes
+               {
+                       public final static String AUTH_POLICIES = 
"auth_policies";
+                       public final static String NIST_AUTH_LEVEL = 
"nist_auth_level";
+                       public final static String AUTH_AGE = "auth_age";       
        
+               }
 
                public static class SimpleRegAttributes {
 
@@ -206,7 +213,5 @@
                        public final static String TIMEZONE_NS = NS + 
"/pref/timezone";
 
                }
-
        }
-
 }

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
     Tue Mar  4 22:31:10 2008
@@ -31,24 +31,22 @@
     /**
      * Create an instance of the OpenIDExtension based on the OpenID extension
      * type
+     * @param alias Extension alias
      * @param auth AuthRequest instance
      * @return Appropriate OpenIDExtension instance
      */
-    public OpenIDExtension getExtension(AuthRequest auth) {
+    public OpenIDExtension getExtension(String alias, AuthRequest auth) {
 
-        if (auth
-                .hasExtension(AxMessage.OPENID_NS_AX)) {
+        if (alias.equals(AxMessage.OPENID_NS_AX)) {
             return new OpenIDAttributeExchange(auth);
-        } else if (auth
-                
.hasExtension(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG)
-                || auth.hasExtension(SRegMessage.OPENID_NS_SREG)) {
+        } else if (alias
+                .equals(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG)
+                || alias.equals(SRegMessage.OPENID_NS_SREG)) {
             return new OpenIDSimpleReg(auth);
-        }else if (auth
-                .hasExtension(PapeMessage.OPENID_NS_PAPE)) {
+        } else if (alias.equals(PapeMessage.OPENID_NS_PAPE)) {
             return new OpenIDPape(auth);
         }
 
         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
     Tue Mar  4 22:31:10 2008
@@ -22,6 +22,7 @@
 import org.wso2.solutions.identity.openid.extensions.OpenIDExtension;
 import org.wso2.solutions.identity.persistence.IPPersistenceManager;
 import org.wso2.solutions.identity.persistence.dataobject.OpenIDUserRPDO;
+import org.wso2.solutions.identity.openid.OpenIDExtensionFactory;
 import org.wso2.utils.ServerConfiguration;
 
 public class OpenIDProvider {
@@ -235,11 +236,15 @@
             return message.getDestinationUrl(true);
         else {
             OpenIDExtension extension = null;
-            extension = OpenIDExtensionFactory.getInstance().getExtension(
-                    authReq);
-            if (extension != null)
-                message.addExtension(extension.getMessageExtension(userId,
-                        profileName));
+            
+            for (Object alias : authReq.getExtensions()) {             
+                extension = 
OpenIDExtensionFactory.getInstance().getExtension((String)alias,
+                        authReq);
+                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/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
 Tue Mar  4 22:31:10 2008
@@ -163,5 +163,4 @@
         }
         return normalized.toString();
     }
-
 }

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
      Tue Mar  4 22:31:10 2008
@@ -51,6 +51,7 @@
                 papeResponse = PapeResponse.createPapeResponse();
                 papeResponse.setNistAuthLevel(1);
                 papeResponse.setAuthAge(-1);
+                
papeResponse.setAuthPolicies(PapeMessage.PAPE_POLICY_PHISHING_RESISTANT);
             }
             
           //TODO:

Modified: 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/index.html
==============================================================================
--- 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/index.html
  (original)
+++ 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/index.html
  Tue Mar  4 22:31:10 2008
@@ -95,6 +95,23 @@
 
 <br/>
 
+<h2>OpenID PAPE Demo</h2>
+
+<form name="frm" id="frm" method="post" action="openidpolicyrequest.jsp">  
+               OpenID Url:&nbsp;&nbsp;<input class='openid-url' id='openIdUrl' 
name="openIdUrl" size='30' /><br/><br/>
+          
+             <input type="submit" name="submit" value="Login" />   
+</form>
+
+Specification: <a 
href="http://openid.net/specs/openid-provider-authentication-policy-extension-1_0-01.html";>OpenID
 Provider Authentication Policy Extension 1.0, draft 1</a><br/>
+
+<br/>
+
+
+<hr/>
+
+<br/>
+
 <h2>OpenID Information Cards Demo</h2>
 
 <a href="openidinfocardloggedin.jsp"><img src="images/openid_infocard.png" 
/></a>

Modified: 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidaxsubmit.jsp
==============================================================================
--- 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidaxsubmit.jsp
  (original)
+++ 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidaxsubmit.jsp
  Tue Mar  4 22:31:10 2008
@@ -35,7 +35,7 @@
 
 
                        openIDAuthRequest
-                    .setRequestType(OpenIDRequestType.ATTRIBUTE_EXCHANGE);
+                    .addRequestType(OpenIDRequestType.ATTRIBUTE_EXCHANGE);
 
                  if (useOpenIDSchema != null && useOpenIDSchema 
.equalsIgnoreCase("true"))
                  {

Modified: 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidloggedin.jsp
==============================================================================
--- 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidloggedin.jsp
  (original)
+++ 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidloggedin.jsp
  Tue Mar  4 22:31:10 2008
@@ -27,6 +27,28 @@
                                        <strong>Logged in       
Successfully...!</strong><br />
                                </td>
                        </tr>
+
+                   <% if (request.getAttribute("auth_policies") != null) { %>
+                       <tr>
+                               <td>Authentication Policies:</td>
+                               
<td><%=request.getAttribute("auth_policies")%></td>
+                       </tr>
+                       <%}%>
+                   <% if (request.getAttribute("nist_auth_level") != null) { %>
+                       <tr>
+                               <td>NIST Auth Level:</td>
+                               
<td><%=request.getAttribute("nist_auth_level")%></td>
+                       </tr>
+                       <%}%>
+                   <% if (request.getAttribute("auth_age") != null) { %>
+                       <tr>
+                               <td>Auth Age:</td>
+                               <td><%=request.getAttribute("auth_age")%></td>
+                        <hr/>
+                       </tr>
+                       <%}%>
+
+
                    <% if (request.getAttribute("openid_identifier") != null) { 
%>
                        <tr>
                                <td>Your OpenID:</td>

Modified: 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidsubmit.jsp
==============================================================================
--- 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidsubmit.jsp
    (original)
+++ 
trunk/solutions/identity/modules/samples/servlet-filter/src/main/webapp/openidsubmit.jsp
    Tue Mar  4 22:31:10 2008
@@ -30,7 +30,7 @@
                host = serverConfig.getFirstProperty("HostName");
                httpsPort = serverConfig.getFirstProperty("Ports.HTTPS");     
 
-                  
openIDAuthRequest.setRequestType(OpenIDRequestType.SIMPLE_REGISTRATION);
+                  
openIDAuthRequest.addRequestType(OpenIDRequestType.SIMPLE_REGISTRATION);
 
                        // Set the required claims - I need these claims from 
the OpenID
                // Provider.

Modified: 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDAuthenticationRequest.java
==============================================================================
--- 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDAuthenticationRequest.java
 (original)
+++ 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDAuthenticationRequest.java
 Tue Mar  4 22:31:10 2008
@@ -16,11 +16,13 @@
     private String openIDUrl;
 
     private ArrayList requiredClaims = new ArrayList();
-
-    private OpenIDRequestType requestType;
+    
+    private ArrayList<OpenIDRequestType> requestTypes = new 
ArrayList<OpenIDRequestType>();
 
     private ArrayList<AuthPolicyType> authTypes = new 
ArrayList<AuthPolicyType>();
 
+    private int maxAuthAge;
+
     public OpenIDAuthenticationRequest(HttpServletRequest request,
             HttpServletResponse reponse) {
         super();
@@ -36,12 +38,12 @@
         this.openIDUrl = openIDUrl;
     }
 
-    public OpenIDRequestType getRequestType() {
-        return requestType;
+    public ArrayList<OpenIDRequestType> getRequestTypes() {
+        return requestTypes;
     }
 
-    public void setRequestType(OpenIDRequestType requestType) {
-        this.requestType = requestType;
+    public void addRequestType(OpenIDRequestType requestType) {
+       requestTypes.add(requestType);
     }
 
     public HttpServletResponse getReponse() {
@@ -82,6 +84,14 @@
         requiredClaims.add(axAttributes);
     }
 
+    public int getMaxAuthAge() {
+        return maxAuthAge;
+    }
+
+    public void setMaxAuthAge(int maxAuthAge) {
+        this.maxAuthAge = maxAuthAge;
+    }
+
     public void addAuthPolicy(AuthPolicyType policyType) {
         authTypes.add(policyType);
     }
@@ -89,5 +99,4 @@
     public ArrayList<AuthPolicyType> getAuthTypes() {
         return authTypes;
     }
-
 }
\ No newline at end of file

Modified: 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDConsumer.java
==============================================================================
--- 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDConsumer.java
      (original)
+++ 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDConsumer.java
      Tue Mar  4 22:31:10 2008
@@ -111,11 +111,12 @@
             request.setAttribute(IdentityConstants.OpenId.OPENID_IDENTIFIER,
                     authSuccess.getIdentity());
 
-            extension = OpenIDExtensionFactory.getInstance().getExtension(
-                    authSuccess);
-
-            if (extension != null)
-                extension.setSessionAttributes(request);
+            for (Object alias : authSuccess.getExtensions()) {             
+                extension = OpenIDExtensionFactory.getInstance().getExtension(
+                        (String)alias,authSuccess);
+                if (extension != null)
+                    extension.setSessionAttributes(request);
+            }
 
             request.setAttribute(TokenVerifierConstants.SERVLET_ATTR_STATE,
                     TokenVerifierConstants.STATE_SUCCESS);
@@ -195,7 +196,6 @@
         DiscoveryInformation discovered = null;
 
         try {
-
             // Perform discovery on the user-supplied identifier
             discoveries = manager.discover(request.getOpenIDUrl());
 
@@ -211,9 +211,10 @@
             AuthRequest authReq = manager.authenticate(discovered, request
                     .getReturnUrl());
 
-            authReq.addExtension(OpenIDExtensionFactory.getInstance()
-                    .getExtension(request.getRequestType())
-                    .getMessageExtension(request));
+            for (OpenIDRequestType type : request.getRequestTypes()) {
+                authReq.addExtension(OpenIDExtensionFactory.getInstance()
+                        .getExtension(type).getMessageExtension(request));
+            }
 
             // Redirect to the OpenID provider server for authentication.
             try {

Modified: 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDExtensionFactory.java
==============================================================================
--- 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDExtensionFactory.java
      (original)
+++ 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/OpenIDExtensionFactory.java
      Tue Mar  4 22:31:10 2008
@@ -50,20 +50,19 @@
     /**
      * Create an instance of the OpenIDExtension based on the OpenID extension
      * type
+     * @param alias Extension alias
      * @param auth AuthSuccess instance
      * @return Appropriate OpenIDExtension instance
      */
-    public OpenIDExtension getExtension(AuthSuccess auth) {
+    public OpenIDExtension getExtension(String alias, AuthSuccess auth) {
 
-        if (auth
-                .hasExtension(AxMessage.OPENID_NS_AX)) {
+        if (alias.equals(AxMessage.OPENID_NS_AX)) {
             return new OpenIDAttributeExchange(auth);
-        } else if (auth
-                
.hasExtension(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG)
-                || auth.hasExtension(SRegMessage.OPENID_NS_SREG)) {
+        } else if (alias
+                .equals(IdentityConstants.OpenId.SimpleRegAttributes.NS_SREG)
+                || alias.equals(SRegMessage.OPENID_NS_SREG)) {
             return new OpenIDSimpleReg(auth);
-        }else if (auth
-                .hasExtension(PapeMessage.OPENID_NS_PAPE)) {
+        } else if (alias.equals(PapeMessage.OPENID_NS_PAPE)) {
             return new OpenIDPape(auth);
         }
 

Modified: 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/extensions/OpenIDPape.java
==============================================================================
--- 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/extensions/OpenIDPape.java
       (original)
+++ 
trunk/solutions/identity/modules/token-verifier-core/src/main/java/org/wso2/solutions/identity/relyingparty/openid/extensions/OpenIDPape.java
       Tue Mar  4 22:31:10 2008
@@ -82,10 +82,20 @@
             if (authSuccess.hasExtension(PapeResponse.OPENID_NS_PAPE)) {
                 papeResponse = (PapeResponse) authSuccess
                         .getExtension(PapeResponse.OPENID_NS_PAPE);
+                if (papeResponse != null) {
+                    request
+                            .setAttribute(
+                                    
IdentityConstants.OpenId.PapeAttributes.AUTH_POLICIES,
+                                    papeResponse.getAuthPolicies());
+                    request.setAttribute(
+                            IdentityConstants.OpenId.PapeAttributes.AUTH_AGE,
+                            papeResponse.getAuthAge());
+                    request
+                            .setAttribute(
+                                    
IdentityConstants.OpenId.PapeAttributes.NIST_AUTH_LEVEL,
+                                    papeResponse.getNistAuthLevel());
+                }
             }
-
-            //TODO:
-
         } catch (MessageException e) {
             throw new RelyingPartyException(
                     IdentityConstants.ErrorCodes.OPENID_AUTHENTICATION_FAILED,

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
   Tue Mar  4 22:31:10 2008
@@ -44,7 +44,7 @@
             openIDAuthRequest.setOpenIDUrl(getOpenIdUrl());
 
             openIDAuthRequest
-                    .setRequestType(OpenIDRequestType.SIMPLE_REGISTRATION);
+                    .addRequestType(OpenIDRequestType.SIMPLE_REGISTRATION);
 
             // Set the required claims - I need these claims from the OpenID
             // Provider.

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

Reply via email to