%JAVA_HOME%--皆指代jdk的安装目录
java.policy 文件许可权
Java 2 安全性使用几个策略文件确定每个 Java 程序的已授权许可权。
java.policy 文件是节点上的 Java 虚拟机(JVM)中运行的所有 Java 程序共享的全局缺省策略文件。更改 java.policy 文件对于节点是本地的。自动选取缺省 Java 策略。策略文件中的语法错误将导致应用程序服务器失败。更新的 java.policy 文件应用于本地节点上的所有 JVM 中运行的所有 Java 程序。重新启动程序,以使更新生效。建议不要修改此文件。如果节点上的某些 Java 程序需要特定更改,并且 java.policy 文件需要更新,那么请使用策略工具谨慎修改 java.policy 文件。有关更多信息,请参阅使用 PolicyTool 来编辑策略文件 。
java.policy 文件的缺省许可权
java.policy 文件位于"%JAVA_HOME%\jre\lib\security"路径下。 其中包含缺省的许可权。
如果节点上的一些 Java 程序需要不是 java.policy 文件中定义为缺省值的许可权,那么考虑更新 java.policy 文件。大多数情况下,更新其他策略文件,而不是 java.policy 文件。缺少许可权将导致发生 java.security.AccessControlException 异常。缺少的许可权在异常信息中显示。
引用
java.security.AccessControlException: access denied (java.io.FilePermission
%JAVA_HOME%\jre\lib\ext\xxx.jar read)
当遇到此异常,并且程序确实需要允许的话,在 java.policy 文件中添加许可权。
引用
grant codeBase "file:%JAVA_HOME%\jre\lib\ext\xxx.jar" {
permission java.io.FilePermission "%JAVA_HOME%\jre\lib\ext\xxx.jar","read";
};
常用配置
引用
grant {
//对系统和用户目录“读”的权限
permission java.util.PropertyPermission “user.dir", “read";
permission java.util.PropertyPermission “user.home", “read";
permission java.util.PropertyPermission “java.home", “read";
permission java.util.PropertyPermission “java.class.path", “read";
permission java.util.PropertyPermission “user.name", “read";
//对线程和线程组的操作权限
permission java.lang.RuntimePermission “modifyThread";
permission java.lang.RuntimePermission “modifyThreadGroup";
//操作Socket端口的各种权限
permission java.net.SocketPermission “-", “listen";
permission java.net.SocketPermission “-", “accept";
permission java.net.SocketPermission “-", “connect";
permission java.net.SocketPermission “-", “read";
permission java.net.SocketPermission “-", “write";
//读写文件的权限
permission java.io.FilePermission “-", “read";
permission java.io.FilePermission “-", “write";
//退出系统的权限,例如System.exit(0)
permission java.lang.RuntimePermission “exitVM";
};
本文参考:
1.http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rsec_javapolicy.html
2.http://www.ehelper.com.cn/blog/post/java-policy.html
分享到:
相关推荐
拒绝访问异常处理(AccessDeniedException)_spring security例子 博客:blog.csdn.net/dsundsun
11. **异常处理与安全异常**:在处理安全相关的操作时,可能会抛出特定的`java.security`包下的异常,如`AccessControlException`。开发者需要熟悉这些异常,并适当地捕获和处理。 12. **安全配置**:Java安全可以...
这一章可能涵盖如何使用`java.security.Permission`类来定义和管理权限,以及`AccessController`和`AccessControlException`在决定代码能否执行特定操作时的作用。 3. **ch8** - 可能讨论“数字签名与加密”。这...
Java安全相关的API主要分布在java.security包下,包括以下关键类和接口: 1. `java.security.Security`: 提供了安全服务的全局信息和配置,如注册安全服务提供者、获取安全属性等。 2. `java.security.Policy`: ...
12. **异常处理**:在尝试执行没有相应权限的操作时,Java会抛出`AccessControlException`。程序应该适当地捕获并处理这个异常,以确保程序的健壮性。 13. **Java安全框架**:包括`java.security`包中的各种类和...
Ant是Apache软件基金会下的一个Java项目,它是一个基于XML的构建工具,常用于自动化Java项目的构建、测试和部署。而Eclipse则是一个流行的开源集成开发环境(IDE),支持多种编程语言,尤其对Java开发者来说,...
在Java中,`java.security.AccessController`和`java.security.Permission`类用于实现这一功能,它们定义了权限对象并检查是否具备执行特定操作的权限。 3. **访问控制列表(ACL)**:这是一个记录了哪些用户或组...
否则,抛出`java.security.AccessControlException`异常。 在实际应用中,我们可以通过以下方式管理权限: 1. 编写策略文件:使用特定格式编写策略文件,定义权限规则。 2. 配置Security Manager:在应用程序启动时...
如果当前线程没有足够的权限执行特定操作,会抛出`java.security.AccessControlException`。 5. **策略文件**:Java的默认权限策略通常不足以满足复杂的应用需求,因此可能需要自定义策略文件(如java.policy),...
Exception in thread "main" java.security.AccessControlException: access denied (java.lang.reflect.ReflectPermission suppressAccessChecks) ``` 这表明当前运行环境中的安全策略不允许反射代码忽略访问检查...
引起的 java.security.AccessControlException: access denied ("java.net.NetPermission" "setDefaultAuthenticator")at java.security.AccessControlContext.checkPermission(AccessControlContext.java:375)设置...
`java.security.Permission`类是所有权限的基类,而`java.security.Policy`接口则提供了动态管理安全策略的方法。 4. AccessController和AccessControlException:访问控制器负责执行权限检查,如果权限不足,会抛...
当代码试图执行无权限的操作时,会抛出`java.security.AccessControlException`。开发者需要捕获此异常,并在必要时向用户提供有关为何需要权限以及如何授予权限的说明。 6. **最小权限原则** 为了最大化安全性,...
5. **加密**:Java提供了强大的加密库,包括`java.security`和`javax.crypto`包,支持各种加密算法,如RSA、AES等,用于数据加密和解密,保证信息安全传输。 6. **数字签名与证书**:Java使用数字签名验证代码的...
* ERROR at line 1: ORA-29532: Java call terminated by uncaught Java exception: java.security.AccessControlException: th (java.io.FilePermission D:OCCdboratrace ack read) has not been granted to ...
你可以在JVM启动参数增加 -Djava.security.manager 启用安全管理器,如果有该参数,它将检测正在关闭接入检测的代码是否许可了这样做,上述代码执行时会抛出 java.security.AccessControlException异常。 评论对您...
程序员可以通过`java.security.Permission`类的子类来声明所需的权限。 4. **安全管理器(Security Manager)**:是Java安全模型的核心组件。当你在程序中安装了安全管理器后,所有受限的操作都会触发检查。如果...
首先,要实现自定义权限,你需要创建一个继承自`java.security.Permission`的类。这个类通常会包含权限的相关信息,如名称、动作和描述。例如,你可以创建一个名为`CustomPermission`的类: ```java public class ...