示意图
简述
1. tomcat为平台,如果应用A调用了平台的例如退出方法,将会导致tomcat停机和其他应用都停止服务
2. securityManager通过-Djava.security.manager 开启 -Djava.security.policy 指定配置文件
3. 可以指定访问哪些包需求权限,指定哪些jar包拥有哪些权限
4. A访问B 会检查权限,B访问C会检查权限,如果对B中的某些方法进行AccessController#doPrivileged 则该方法中调用C,不会再依次检查权限。
关键代码入口
1. getServlet
org.apache.catalina.core.ApplicationContextFacade#getServlet
2. 从classCache,objectCache中获取 方法和类字节org.apache.catalina.core.ApplicationContextFacade#invokeMethod
3. 公开反射调用的方法,不向下检查权限org.apache.catalina.core.ApplicationContextFacade#executeMethod
标签:core,catalina,ApplicationContextFacade,tomcat,securityManager,context,apache,org From: https://blog.51cto.com/u_15913327/6011964