- 浏览: 78973 次
文章分类
最新评论
权限设定文件F:/my.policy类容如下:
作用:在应用程序中访问F:盘符下的所有文件时只能读取不能写入。
在这里其实有很多的权限设定如:
执行上述代码会出现如下异常:
底层实现原理解析:
下面是FileOutputStream构造函数的方法:
checkWriter方法中的代码
grant{ permission java.io.FilePermission "F:/*", "read"; };
作用:在应用程序中访问F:盘符下的所有文件时只能读取不能写入。
在这里其实有很多的权限设定如:
- AllPermission
- BasicPermission
- FilePermission
- SocketPermission
System.setProperty("java.security.policy", "F:/my.policy");//设置权限定义文件位置 System.setSecurityManager(new SecurityManager());//安装权限管理,从此处开始生效 FileOutputStream out = new FileOutputStream("f:/temp.sql",true); out.write("test".getBytes()); out.flush();
执行上述代码会出现如下异常:
Exception in thread "main" java.security.AccessControlException: access denied (java.io.FilePermission f:\temp.sql write) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.SecurityManager.checkWrite(SecurityManager.java:962) at java.io.FileOutputStream.<init>(FileOutputStream.java:169) at java.io.FileOutputStream.<init>(FileOutputStream.java:102) at org.plugbase.util.Test.main(Test.java:28)
底层实现原理解析:
下面是FileOutputStream构造函数的方法:
public FileOutputStream(File file, boolean append) throws FileNotFoundException { String name = (file != null ? file.getPath() : null); SecurityManager security = System.getSecurityManager(); if (security != null) {//判断是否安装了安全管理器默认下是不安装的 security.checkWrite(name);//如果安装了进行检查如果检查未通过将会抛出异常 } if (name == null) { throw new NullPointerException(); } fd = new FileDescriptor(); this.append = append; if (append) { openAppend(name); } else { open(name); } }
checkWriter方法中的代码
public void checkWrite(String file) { checkPermission(new FilePermission(file, SecurityConstants.FILE_WRITE_ACTION));//这是在检查FilePermission中的安全设置,在my.policy中已经设置为read }
发表评论
-
使用javamail组件-----邮件发送
2013-08-09 16:35 486public static void sendMessag ... -
利用快速排序算法快速的取出前一千条数据
2013-08-06 15:49 535实现代码如下:原理是利用了快速排序‘分治’思想,判断左边区域 ... -
java的JNI本地调用代码
2013-06-21 11:56 474Jni中C++和Java的参数传递 如何使用JNI的一些基 ... -
如何解决在window下高并发TCP请求端口被占用问题
2013-05-02 09:43 3089当客户端启动到服务器的 TCP/IP 套接字连接时,客户端通 ... -
Maven的简单使用
2013-04-26 11:44 714----------------准备工作---------- ... -
js 压缩工具使用
2013-04-19 11:40 732//测试代码 compiler("F:\\com ... -
解决加载相同的类
2013-04-19 09:38 626URLClassLoader classLoader1 = ... -
将长url转化为短url
2013-02-21 18:05 711public class ShortAddressUtil ... -
如何判断上传的图片是否是正真的图片 防止上传恶意的非图片文件
2013-02-19 17:03 1016final String JPG = "ffd ... -
ChartDirect使用<制作统计图的组件>
2012-11-30 11:39 1541//创建一个由X,Y轴 ... -
获取字符拼音首字母
2012-10-08 13:41 781/** * @date 2010-1-22 * @bu ... -
jetty嵌入式采用xml配置
2012-09-24 09:40 1028Server server = new Server(); ... -
生成验证码图片
2012-08-29 17:29 925Java生成验证码 为了防止用户恶意,或者使用软 ... -
WebService分布式应用实现
2012-08-28 17:30 1165WebService 是一种跨语言的系统间交互标准,对外提供功 ... -
利用MulticastSocket发送广播信息
2012-08-24 11:35 809多播组通过 D 类 IP 地址和标准 UDP 端口号指定。D ... -
插件类的一种加载形式URLClassLoader
2012-08-22 10:11 790URL url = new URL("file ... -
部署RMI应用(服务器与RMI注册表分离方式)
2012-08-20 17:56 2151一般情况下,我们的部署RMI应用的时候是把服务器和RMI注册表 ... -
RMI远程调用
2012-08-03 17:42 770第一步:远程对象接口 WareHose.java pack ... -
使用JNDI获取DataSource对象
2012-08-03 14:24 834Tomcat的conf/context.xml在<Con ... -
获取摘要、加密、解密
2012-08-02 16:57 1227生成SHA或MD5摘要 MessageDigest sha ...
相关推荐
在Java编程语言中,`SecurityManager`(安全管理器)是一个重要的安全组件,它允许开发者对应用程序的安全性进行精细控制。`SecurityManager`是Java虚拟机(JVM)的一部分,用于实施一套安全策略,以防止代码执行...
(2)Subject 在 Shiro 框架内部调用 Shiro SecurityManager 安全管理器。 (3)安全管理器调用 Realm 对象,来连接安全数据。 Spring 框架提供了一个灵活、强大和可扩展的基础结构,用于构建企业级应用程序。通过...
创建安全管理器利用安全管理器public static void main(String args[]){方法调用此方法时,返回所有新创建的线程实例化后所在的线
Apache Shiro 是一个强大...理解其类结构和职责对于正确地集成和使用 Shiro 进行安全管理至关重要。在设计和实现应用的安全策略时,应确保充分利用 `SecurityManager` 的功能,以实现高效、灵活且易于维护的安全机制。
* SecurityManager(安全性管理器):使用户能够管理用户、角色、权限及 profiles。 * StorageManager(存储管理器):允许用户创建和修改表空间、数据文件和回滚段。 * InstanceManager(实例管理器):允许用户...
* SecurityManager:即安全管理器,对全部的Subject进行安全管理,是Shiro的核心,负责对所有的Subject进行安全管理。 * Realm:即领域,相当于datasource数据源,SecurityManager进行安全认证需要通过Realm获取用户...
Spring Boot以其简洁的配置和快速的应用开发能力而闻名,而Shiro则是一个强大的安全管理框架,提供了认证、授权、会话管理和安全加密等功能。通过结合两者,我们可以构建一个高效且易于维护的安全系统。 首先,我们...
Java安全管理器(SecurityManager)是Java中的一种安全机制,允许应用程序实现安全策略。它包含了很多名称以单词check开头的方法,Java库中的各种方法在执行某些潜在的敏感操作前可以调用这些方法。安全管理器通过抛...
Shiro安全框架,整合了springboot项目,作为认证和授权两大功能 ... SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
权限对象代表特定的操作,保护域包含了拥有这些权限的代码,而安全管理器是执行权限检查的组件。 API设计在Java2平台安全技术中扮演着关键角色。Java提供了丰富的安全相关的API,如java.security包下的Permission、...
Java安全模型基于一种称为安全管理器(SecurityManager)的机制,它是Java平台上的一个关键组件。当应用程序被加载时,如果系统设置了SecurityManager,那么JVM会根据这个安全管理者来执行一系列安全检查,确保代码...
开发者可以通过定制安全管理器和安全策略文件来细化安全控制。安全策略文件定义了哪些代码可以从哪些来源获取权限,以及这些代码可以执行哪些操作。 五、异常处理与权限检查 在进行敏感操作时,Java会抛出`...
SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。 Realm: Realm充当了Shiro与应用安全数据间的"桥梁"或者"连接器"。也...
3. java.lang.SecurityManager:这是安全管理器的实现类,通过设置System属性`java.security.manager`,可以启用安全管理器。 4. java.security.AccessController:在需要进行安全性检查的地方,会调用Access...
SecurityManager:安全管理器 Shiro架构中最核心的组件,通过它可以协调其他组件完成用户认证和授权。实际上,SecurityManager就是Shiro框架的控制器。 Realm:域对象 定义了访问数据的方式,用来连接不同的数据源...
开发者可以通过实现`java.lang.SecurityManager`类来创建自定义的安全管理器。 4. Java Security API:这是Java提供的用于实现安全功能的一组接口和类,包括证书、密钥管理、加密算法、安全协议等。 压缩包内的...
3. 安全管理器:Java的`java.lang.SecurityManager`是实现安全策略的关键组件。当安全管理器被启用时,它会执行权限检查,决定是否允许执行特定操作。开发者可以通过自定义安全管理器实现更复杂的策略。 4. 类加载...
安全管理人员和程序开发人员可以肯定地确定了安全代理人的干部操作。daccess-ods.un.org daccess-ods.un.org daccess-ods.un.org daccess-ods.un.org daccess-ods.un.org daccess-ods.un.org 临时临时雇员(SSIAP 1...
- **java.lang.SecurityManager**:安全管理器的实现类,可以通过设置系统属性`System.setSecurityManager()`来启用。 3. **实现**: - **权限管理**:Java通过`Permissions`对象表示特定操作的权限,`Access...
SecurityManager : 安全管理器(关联 Realm) Realm :Shiro 连接数据的桥梁 【备注】 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java学习者。 也可作为课程设计、期末大作业。包含:项目源码、...