java security 学习总结

来源:互联网 发布:犀牛软件和solidworks 编辑:程序博客网 时间:2024/05/20 11:50

1 在$jre_home/lib/security目录里面,有java.security和.java.policy文件可用于进行java中permission的配置。

2 SecurityManager向上提供check*()的接口。将构成permission类的细节,进行屏蔽,在SecurityManager中自动根据参数构造permission,传递给AccessController,AccessController是SecurityManager的基础。

3 AccessController构建于4个概念上:Code Source,Permissions,Policies,Protection domains.
这四类分别代表四组class。

4 在ClassLoader中,会使用SecurityManager进行一些permission的认证。比如checkPackageAccess 和 checkPackageDefinition是检验当前程序有没有权限接触这个包内的class。
ClassLoader补充:
SystemClassLoader是用来加载基本的core api。URLClassLoader是用来加载classpath中的类。
继承关系:ClassLoader<-SecureClassLoader<-URLClassLoader。

A:The secure class loader provides additional functionality in dealing with code sources and protection domains.
You should always use this class as the basis of any class loader you work with;

B:If you're loading classes through the filesystem or from an HTTP server, then the URLClassLoader
provides a complete definition of a class loader. In addition, you can override some of its methods if you wan
to modify the security policy of classes that it defines.

5 在其他函数中,特别是底层接触资源的函数也会调用SecurityManager来进行当前线程的permission的检查。

原创粉丝点击