Java Security 入门(从java17之后被弃用)

本文介绍了Java中的核心安全属性`java.security.manager`和`java.security.policy`,用于控制资源访问的配置文件。`java.security.policy`文件定义了不同代码基的权限,如读取目录或系统属性。默认情况下,Java不启用安全管理器,但可以通过设置VM参数启用并指定自定义策略文件。文章提供了配置示例和命令行用法,并提到了官方教程链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

核心概念,如下两个 vm properties:

        java.security.manager

        java.security.policy

java.security.policy属性

        用来控制resource资源的访问的配置文件

        例如属性配置的读取、目录的读写等;所有可配置权限可以参考java自带工具policytool->add policy entry->add permission->permission的下拉选项

        可以直接使用policytool工具进行policy配置文件的生成,生成后文件内容如下:

/* AUTOMATICALLY GENERATED ON Thu Mar 02 08:35:40 CST 2023*/
/* DO NOT EDIT */

grant codeBase "https://docs.oracle.com/javase/tutorial/security/tourl/examples/" {
};

/*注:因为此处代码为使用IDEA进行编写和测试,IDEA会将工程代码编译到对应项目的target/classes目录所以此处的codeBase为如下目录*/
grant codeBase "file:///home/xxxx/workspace/java/learnJava/target/classes/" {
  permission java.util.PropertyPermission "user.home", "read";
  permission java.util.PropertyPermission "java.home", "read";
};

/*注:security.jar是包含要进行policy策略管理的可执行文件的jar包*/
grant codeBase "file:///home/owisho/workspace/java/learnInJava/security/tmp/security.jar" {
  permission java.util.PropertyPermission "user.home", "read";
  permission java.util.PropertyPermission "java.home", "read";
};

        注意:

        1.文件是ASCII编码的文本文件 

        2.文件中的codeBase要格外注意:一定要是xxx.class文件所在的目录或者jar文件,如上面的代码例子/target/classes 和security.jar

        3.java8 本身有默认的security policy配置文件,位于${JAVA_HOME}/jre/lib/security/目录下

        4.人为添加policy策略文件的方式有两种(针对java8):a.使用-Djava.security.policy=${policy配置文件} 这个vm property来新增个人策略 b.修改${JAVA_HOME}/jre/lib/security/目录下的java.security文件增加 policy.url.{n}=${policy配置文件} 来增个人策略

        

java.security.manager属性 

        对是否使用security manager 进行管理的开关,默认不使用,即程序拥有所有权限

        使用java -Djava.security.manager ${java.main} 开启security manager管理

        使用java -Djava.security.manager -Djava.security.policy=${policy配置文件} ${java.main} 开启security manager 管理并使用${policy配置文件}作为自定义策略的补充

        

命令行示例:

java -cp security.jar -Djava.security.manager -Djava.security.policy=security.policy GetProps

java -cp target/classes/ -Djava.security.manager -Djava.security.policy=examplePolicy org.example.GetProps 


#git hub地址:https://github.com/owisho/learnInJava/tree/master/security

官网地址:

https://docs.oracle.com/javase/tutorial/security/index.html

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值