You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by na...@apache.org on 2001/04/28 20:39:11 UTC

cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade HttpServletRequestFacade.java

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 [gonzo@eng.sun.com]
    * @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() {