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() {