安全管理器及策略
来源:互联网 发布:软件开发设计方案模板 编辑:程序博客网 时间:2024/05/09 04:15
SecurityManager
作用:开关,是否启用沙箱环境;
启用方式:
- JVM启动参数中添加-Djava.security.manager;
- 通过代码安装System.setSecurityManager(new MySecurityManager());
沙箱策略
策略:指定某些代码对某些资源具有某些访问权限,如/home/admin目录下的代码对/logs目录下文件有只读权限,示例如下图所示:
JDK的Policy: 在任何时候JVM中只能有一个Policy对象起作用,可以通过Policy.getPolicy()查看当前安装的Policy对象(需要getPolicy权限),通过调用Policy.setPolicy()更改当前安装的Policy对象(需要setPolicy权限),通过implies()检查代码是否相应权限,并提供refresh()支持策略文件的热更新,如下图所示:
自定义Policy: 通过更改JRE的lib/security目录中安全属性文件java.security文件实现,更新属性policy.provider的值即可,如下图所示:
系统默认Policy:
- refresh逻辑:重新加载所有的策略文件,用于热更新;
- 策略文件加载:首先,加载安全属性文件java.security指定文件;其次,加载系统属性java.security.policy或者java.security.auth.policy指定文件,如下图所示:
策略文件的语法请参考:http://hubingforever.blog.163.com/blog/static/17104057920118238033494/
Policy热更新示例:
import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.security.Policy;public class SandBoxTest { public static void file() { File f = new File("D:/mvn.txt"); InputStream is; try { is = new FileInputStream(f); byte[] content = new byte[1024]; while (is.read(content) != -1) { System.out.println(new String(content)); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { for(int i = 0; i < 10; i++){ System.out.println(i); file(); Thread.sleep(5000); Policy.getPolicy().refresh(); //刷新安全策略 } }}
阅读全文
0 0
- 安全管理器及策略
- 安全管理器
- 计算机网络信息安全及防护策略探讨
- 网络信息安全及防范策略
- javascript 同源策略及web安全
- 组策略管理器历险
- 内存管理器及其策略
- java安全沙箱(四)之安全管理器及Java API
- Java中4种安全沙箱机制之安全管理器及Java API
- [读书笔记][java][安全]安全管理器
- java安全-安全管理器
- java安全管理器
- java安全管理器
- java安全管理器
- Java 安全管理器--SecurityManager
- 五,安全管理器
- java安全管理器
- Java 安全管理器--SecurityManager
- mysql用户和库的权限设置
- TransformPoint和TransformDirection函数
- 这可能是最好的RxJava 2.x 入门教程(一)
- 简述JVM垃圾回收机制
- 简单的ffmpeg广播和视频监控
- 安全管理器及策略
- 苹果越狱教程
- Visual Studio 各版本下载
- 【23种设计模式——单例模式】
- 关于cookei的设置和删除
- [日推荐]『讯飞快读』人工智能高效管理时间
- 基于HTML5的WebGL经典3D虚拟机房漫游动画
- Python踩坑之路-datetime模块的timedelta应用
- 【备忘】年薪50万2017年最新北风网Spark2.0从入门到精通教程