java基础(九)--------,java基础--------
分享于 点击 28458 次 点评:62
java基础(九)--------,java基础--------
java基础(九)——— java安全管理器_securityManager
1、 java安全:
总的来说,java安全应该包括两个方面的内容: 一是java平台(即java运行环境)的安全性;二是java语言开发的应用程序的安全性。java平台的安全性由java本身语言的开发者维护,而第二个安全性则需要自己维护。一般可以通过安全管理器机制来完善安全性,安全管理器是安全的实施者,可对此类进行扩展。通过配置安全策略文件达到对网络、本地文件、程序其他部分的访问限制的效果
2、 启动安全管理器:
java程序启动时,默认并不会启动安全管理器,一般有两种方法启动安全管理器:
a. 一种是隐式的: 启动默认的安全管理器的最简单的方法是: 直接在启动命令中添加 -Djava.security.manager
参数即可。可以通过System.getProperty("java.security.manager")
检查该系统属性是否被设置
b. 一种是显式的: 实例化一个java.lang.SecurityManager
或继承他的子类的对象,然后通过System.setSecurityManger()
来设置并启动一个安全管理器
打开:
SecurityManager sm = new SecurityManager();
SecurityManager securityManager = System.getSecurityManager();
System.setSecurityManager(sm);
关闭:
SecurityManager securityManager = System.getSecurityManager();
if ( sm != null ) {
System.setSecurityManager(null);
}
注:
1). 在启动安全管理器时,可以通过-Djava.security.policy选项来指定安全策略文件。如果没有指定策略文件的路径,默认的安全策略文件为 %JAVA_HOME%/jre/lib/security/java.policy。
2). "="表示这个策略文件将和默认的策略文件一同发挥作用; "=="表示只使用指定的策略文件 。如 -Djava.security.policy==E:/temp/test1.policy 或者 -Djava.security.policy=bin/com/test/test1.policy
3). System.setProperty("java.security.policy", "test1.policy");
3、 java中的权限类别:
java.security.AllPermission --所有权限的集合
java.util.PropertyPermission --系统/环境属性权限
java.lang.RuntimePermission --运行时权限
java.net.SocketPermission --Socket权限
java.io.FilePermission --文件权限,包括读写,删除,执行
java.io.SerializablePermission --序列化权限
java.lang.reflect.ReflectPermission --反射权限
java.security.UnresolvedPermission --未解析的权限
java.net.NetPermission --网络权限
java.awt.AWTPermission --AWT权限
java.sql.SQLPermission --数据库sql权限
java.security.SecurityPermission --安全控制方面的权限
java.util.logging.LoggingPermission --日志控制权限
javax.net.ssl.SSLPermission --安全连接权限
javax.security.auth.AuthPermission --认证权限
javax.sound.sampled.AudioPermission --音频系统资源的访问权限
相关文章
- 暂无相关文章
用户点评