[ http://issues.apache.org/jira/browse/BEEHIVE-635?page=all ]

Rich Feit reassigned BEEHIVE-635:
---------------------------------

    Assign To: Rich Feit

> Tomcat PageflowValve does not check for security-constraints defined in 
> web.xml
> -------------------------------------------------------------------------------
>
>          Key: BEEHIVE-635
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-635
>      Project: Beehive
>         Type: Bug
>   Components: NetUI
>     Versions: V1Alpha, v1m1, V1Beta
>  Environment: Using beehive latest from SVN and Tomcat 5.5.7
>     Reporter: Abdessattar Sassi
>     Assignee: Rich Feit
>      Fix For: V1
>  Attachments: patch.txt
>
> The Tomcat implementation of the Pipeline for a Context is such that only one 
> Valve which is also an Authenticator valve is added to the Pipeline. The 
> standard Tomcat Authenticator valves (e.g. BasicAuthenticator) check for and 
> honor all the security constraints specified in the webapp web.xml descriptor.
> The PageflowValve implementation part of tomcat-server under netui is an 
> Authenticaor valve as it extends BasicAuthenticator, which means that it is 
> mutually exclusive with the regular Tomcat authenticator valves (only one can 
> be in the pipeline). It does not however keep the features that were part of 
> the AuthenticatorBase and the BasicAuthentiocator invoke() method 
> implementation. Such issue results for example in the user-data-constraint 
> elements being completely ignored, and therefore pages who are supposed to be 
> served only with SSL are always served without SSL.
> Following is an example of the code from the regular Tomcat authenticators 
> that is missing from beehive adapter (please note that the code is from 
> Tomcat 5.5.7 with which by the way beehive does not compile, but should give 
> you a good idea of the missing features...):
>         // Enforce any user data constraint for this security constraint
>         if (log.isDebugEnabled()) {
>             log.debug(" Calling hasUserDataPermission()");
>         }
>         Realm realm = this.context.getRealm();
>         // Is this request URI subject to a security constraint?
>         SecurityConstraint [] constraints
>             = realm.findSecurityConstraints(request, this.context);
>         if (!realm.hasUserDataPermission(request, response,
>                                          constraints)) {
>             if (log.isDebugEnabled()) {
>                 log.debug(" Failed hasUserDataPermission() test");
>             }
>             /*
>              * ASSERT: Authenticator already set the appropriate
>              * HTTP status code, so we do not have to do anything special
>              */
>             return;
>         }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to