Author: markt
Date: Wed Apr 5 10:37:50 2017
New Revision: 1790205
URL: http://svn.apache.org/viewvc?rev=1790205&view=rev
Log:
Partial fix for https://bz.apache.org/bugzilla/show_bug.cgi?id=47214
Replace explicitly referenced anonymous inner classes in StandardSession with
named inner classes.
Modified:
tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java
tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
Modified: tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java?rev=1790205&r1=1790204&r2=1790205&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java Wed
Apr 5 10:37:50 2017
@@ -142,7 +142,7 @@ public final class SecurityClassLoad {
loader.loadClass
(basePackage + "StandardSession");
loader.loadClass
- (basePackage + "StandardSession$1");
+ (basePackage + "StandardSession$PrivilegedNewSessionFacade");
loader.loadClass
(basePackage + "StandardManager$PrivilegedDoUnload");
}
Modified: tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/StandardSession.java?rev=1790205&r1=1790204&r2=1790205&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/session/StandardSession.java Wed Apr
5 10:37:50 2017
@@ -638,23 +638,14 @@ public class StandardSession implements
*/
@Override
public HttpSession getSession() {
-
- if (facade == null){
- if (SecurityUtil.isPackageProtectionEnabled()){
- final StandardSession fsession = this;
- facade = AccessController.doPrivileged(
- new PrivilegedAction<StandardSessionFacade>(){
- @Override
- public StandardSessionFacade run(){
- return new StandardSessionFacade(fsession);
- }
- });
+ if (facade == null) {
+ if (SecurityUtil.isPackageProtectionEnabled()) {
+ facade = AccessController.doPrivileged(new
PrivilegedNewSessionFacade(this));
} else {
facade = new StandardSessionFacade(this);
}
}
- return (facade);
-
+ return facade;
}
@@ -1851,10 +1842,23 @@ public class StandardSession implements
(sm.getString("standardSession.attributeEvent"), t);
}
}
-
}
+ private static class PrivilegedNewSessionFacade implements
+ PrivilegedAction<StandardSessionFacade> {
+
+ private final HttpSession session;
+
+ public PrivilegedNewSessionFacade(HttpSession session) {
+ this.session = session;
+ }
+
+ @Override
+ public StandardSessionFacade run(){
+ return new StandardSessionFacade(session);
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]