nacho       01/04/28 11:39:11

  Modified:    src/facade22/org/apache/tomcat/facade
                        HttpServletRequestFacade.java
  Log:
  Bugzilla#348
  
  security-role-ref not observed in isUserInRole() BugRat Report#626
  
  Revision  Changes    Path
  1.22      +14 -2     
jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java
  
  Index: HttpServletRequestFacade.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpServletRequestFacade.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- HttpServletRequestFacade.java     2001/03/09 23:33:59     1.21
  +++ HttpServletRequestFacade.java     2001/04/28 18:39:11     1.22
  @@ -81,6 +81,8 @@
    * @author James Todd [[EMAIL PROTECTED]]
    * @author Harish Prabandham
    * @author Costin Manolache
  + * @author Ignacio J. Ortega
  + *
    */
   final class HttpServletRequestFacade implements HttpServletRequest {
       private static StringManager sm =
  @@ -331,7 +333,6 @@
        String encoding = request.getCharacterEncoding();
           if (encoding == null) {
               encoding = "8859_1"; // that's the default in HTTP and servlet spec
  -;
           }
        
        InputStreamReader r =
  @@ -417,7 +418,18 @@
       }
   
       public boolean isUserInRole(String role) {
  -     return request.isUserInRole(role);
  +        // get the servletWrapper...
  +        ServletHandler handler=(ServletHandler)request.getHandler();
  +        String realRole=role;
  +        if ( handler!= null ) {
  +            // lookup the alias
  +            String mappedRole = handler.getServletInfo().getSecurityRole(role);
  +            if ( mappedRole != null ) {
  +                // use translated role
  +                realRole = mappedRole;
  +            }
  +        }
  +        return request.isUserInRole(realRole);
       }
   
       public Principal getUserPrincipal() {
  
  
  

Reply via email to