java的安全策略
来源:互联网 发布:gta5优化补丁3dm 编辑:程序博客网 时间:2024/06/06 09:02
java的安全策略
if (System.getSecurityManager() != null && factory instanceof SmartFactoryBean) { isEagerInit = AccessController.doPrivileged(new PrivilegedAction<Boolean>() { @Override public Boolean run() { return ((SmartFactoryBean<?>) factory).isEagerInit(); } }, getAccessControlContext()); }
这个是spring 源码中初始化singleton bean的逻辑。
AccessController.doPrivileged 第一次遇见,网上搜索了一些资料。
安全策略背景
众所周知,Java语言具有完善的安全框架,从编程语言,编译器、解释程序到Java虚拟机,都能确保Java系统不被无效的代码或敌对的编译器暗中破坏,基本上,它们保证了Java代码按预定的规则运作。但是,当我们需要逾越这些限制时,例如,读写文件,监听和读写Socket,退出Java系统等,就必须使用数字签名或安全策略文件(*.Policy)。
在企业内部网中,本文提出了使用安全策略文件来设置java程序权限的一种简单的方法。由于企业内部网中各台计算机的位置、用途和安全性明确,更适于使用安全策略文件来设置java的权限,软件的安装、设置、升级和迁移都非常的方便,并且,还可以和数字签名配合使用,更重要的是,可以细分每个java程序的权限,使用起来灵活方便。
什么是安全策略?
Java应用程序环境的安全策略,详细说明了对于不同的代码所拥有的不同资源的许可,它由一个Policy对象来表达。为了让applet(或者运行在SecurityManager下的一个应用程序)能够执行受保护的行为,例如读写文件,applet(或Java应用程序)必须获得那项操作的许可,安全策略文件就是用来实现这些许可。
策略安全文件(*.policy)格式
grant codeBase "file:/C:/zhouhbFile/developments/eclipse-workspaces/ws-xgsdk-jee/AccessControllerTest/bin/*" { permission java.io.FilePermission "f:/temp/AccessControllerTest2.jar", "read"; permission java.lang.RuntimePermission "createClassLoader";};grant codeBase "file:/f:/temp/AccessControllerTest2.jar" { permission java.io.FilePermission "f:/temp/text.txt", "read";};
grant 表示赋予权限的意思
codeBase 表示后面的代码。即赋予权限给后面的代码。如果不限定则表示作用所有的代码。
具体可详情http://www.blogjava.net/china-qd/archive/2006/04/25/42931.html
一个示例说明安全策略
http://blog.csdn.net/zhang__jiayu/article/details/25654867
以上博文的示例,亲自试验是正确的。
如果在policy文件中的grant codeBase "file:/C:/zhouhbFile/developments/eclipse-workspaces/ws-xgsdk-jee/AccessControllerTest/bin/*"
片段中加入如下代码 permission java.io.FilePermission "f:/temp/text.txt", "read";
不使用AccessController.doPrivileged程序也是可以运行的。这表明在调用stack里面,file:/C:/zhouhbFile/developments/eclipse-workspaces/ws-xgsdk-jee/AccessControllerTest/bin/*
是需要读text.txt文件的权限的。博主总结的很好,感谢。
AccessController.doPrivileged(new PrivilegedAction() { public Object run() { doFileOperation(); return null; } });
- 设置Java的安全策略
- 设置Java的安全策略
- java的安全策略
- 关于java安全策略的问题
- Java安全策略
- Java安全策略
- 使用Policy来设置Java的安全策略
- Flex安全策略验证(Java)
- 1 Java安全策略简介
- Java线程安全策略
- java接口调用安全策略
- 使用Policy文件来设置Java的安全策略
- 使用Policy文件来设置Java的安全策略
- 使用Policy文件来设置Java的安全策略
- Oracle 数据库的安全策略
- 别人的安全策略
- windows2003的安全策略
- windows的安全策略
- 字符串相关类
- 逆向工程生成待注解的hibernate实体
- 5-3 多级派生类的构造函数
- 输入框限制
- c++实现正则表达式匹配
- java的安全策略
- kill -3 pid打印trac
- 事件关联
- MATLAB操作界面
- JVM深入与项目中应用--(二)JVM,内存等监控
- vmware虚拟机无法上网的几点解决方案
- java随机生成随机数
- 来自于微信小程序的一封简讯
- Android压缩图片到100K以下并保持不失真的高效方法