https://issues.apache.org/bugzilla/show_bug.cgi?id=50854
Summary: Additional catalina.policy entries for when Security
Manager enabled, for session display functionality
Product: Tomcat 7
Version: unspecified
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Manager
AssignedTo: [email protected]
ReportedBy: [email protected]
When running under a security manager, in 7.0.x (and also around 6.0.29+), the
Sessions List options in the Tomcat Manager may display an error under certain
conditions.
CONDITION 1:
APR enabled, catalina.base == catalina.home:
- Encountered exception org.apache.jasper.JasperException:
javax.servlet.ServletException: java.lang.NoClassDefFoundError:
org/apache/catalina/ha/session/DeltaSession
This permission is required:
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.ha.*";
CONDITION 2:
Regardless of APR, if catalina.base != catalina.home and catalina.home is the
location of the webapps/manager application, this error displays:
FAIL - Encountered exception org.apache.jasper.JasperException: An exception
occurred processing JSP page /WEB-INF/jsp/sessionsList.jsp at line 99
96: <tbody>
97: <% Iterator iter = activeSessions.iterator();
98: while (iter.hasNext()) {
99: Session currentSession = (Session) iter.next();
100: String currentSessionId =
JspHelper.escapeXml(currentSession.getId());
101: %>
102: <tr>
This is because the policy file assumes there is a per-instance webapps/manager
application in catalina.base, as opposed to a shared one in catalina.home.
Suggested fix, in catalina.policy, replace ...
// The Manager application needs access to the following packages to support
the
// session display functionality
grant codeBase "file:${catalina.base}/webapps/manager/-" {
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.manager";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.manager.util";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.ha.*";
};
... with ...
// The Manager application needs access to the following packages to support
the
// session display functionality
grant codeBase "file:${catalina.home}/webapps/manager/-" {
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.manager";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.manager.util";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.ha.*";
};
// If using a per instance webapps directory, i.e. ${catalina.base}/webapps,
// then the following permission will need to be uncommented
// grant codeBase "file:${catalina.base}/webapps/manager/-" {
// permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina";
// permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.manager";
// permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.manager.util";
// permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.ha.*";
// };
* In the above, I've used the same commented-out approach as the one for the
"file:${catalina.base}/lib/-" permissions for consistency, but the
catalina.base permissions could also be left uncommented if most installations
copy the default webapps folder into each instance and use it from there, to
make larger deployments easier.
Best Regards,
Neale Rudd
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]