- 浏览: 76831 次
文章分类
最新评论
权限设定文件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 457public static void sendMessag ... -
利用快速排序算法快速的取出前一千条数据
2013-08-06 15:49 514实现代码如下:原理是利用了快速排序‘分治’思想,判断左边区域 ... -
java的JNI本地调用代码
2013-06-21 11:56 453Jni中C++和Java的参数传递 如何使用JNI的一些基 ... -
如何解决在window下高并发TCP请求端口被占用问题
2013-05-02 09:43 3029当客户端启动到服务器的 TCP/IP 套接字连接时,客户端通 ... -
Maven的简单使用
2013-04-26 11:44 686----------------准备工作---------- ... -
js 压缩工具使用
2013-04-19 11:40 703//测试代码 compiler("F:\\com ... -
解决加载相同的类
2013-04-19 09:38 605URLClassLoader classLoader1 = ... -
将长url转化为短url
2013-02-21 18:05 683public class ShortAddressUtil ... -
如何判断上传的图片是否是正真的图片 防止上传恶意的非图片文件
2013-02-19 17:03 990final String JPG = "ffd ... -
ChartDirect使用<制作统计图的组件>
2012-11-30 11:39 1523//创建一个由X,Y轴 ... -
获取字符拼音首字母
2012-10-08 13:41 760/** * @date 2010-1-22 * @bu ... -
jetty嵌入式采用xml配置
2012-09-24 09:40 1004Server server = new Server(); ... -
生成验证码图片
2012-08-29 17:29 895Java生成验证码 为了防止用户恶意,或者使用软 ... -
WebService分布式应用实现
2012-08-28 17:30 1109WebService 是一种跨语言的系统间交互标准,对外提供功 ... -
利用MulticastSocket发送广播信息
2012-08-24 11:35 788多播组通过 D 类 IP 地址和标准 UDP 端口号指定。D ... -
插件类的一种加载形式URLClassLoader
2012-08-22 10:11 764URL url = new URL("file ... -
部署RMI应用(服务器与RMI注册表分离方式)
2012-08-20 17:56 2128一般情况下,我们的部署RMI应用的时候是把服务器和RMI注册表 ... -
RMI远程调用
2012-08-03 17:42 754第一步:远程对象接口 WareHose.java pack ... -
使用JNDI获取DataSource对象
2012-08-03 14:24 806Tomcat的conf/context.xml在<Con ... -
获取摘要、加密、解密
2012-08-02 16:57 1192生成SHA或MD5摘要 MessageDigest sha ...
相关推荐
创建安全管理器利用安全管理器public static void main(String args[]){方法调用此方法时,返回所有新创建的线程实例化后所在的线
SecurityManager : 安全管理器(关联 Realm) Realm :Shiro 连接数据的桥梁 【备注】 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java学习者。 也可作为课程设计、期末大作业。包含:项目源码、...
Shiro安全框架,整合了springboot项目,作为认证和授权两大功能 ... SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。 Realm: Realm充当了Shiro与应用安全数据间的"桥梁"或者"连接器"。也...
安全管理人员和程序开发人员可以肯定地确定了安全代理人的干部操作。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...
3.10.1 使用安全管理器的实例 51 3.10.2 JDK1.2中没有改变的API 52 3.10.3 JDK1.2中禁用的方法 53 3.11 java.security.AccessController 56 3.11.1 AceessController的界面设计 57 3.11.2 基础访问控制算法 57 ...
3.10.1 使用安全管理器的实例 51 3.10.2 JDK1.2中没有改变的API 52 3.10.3 JDK1.2中禁用的方法 53 3.11 java.security.AccessController 56 3.11.1 AceessController的界面设计 57 3.11.2 基础访问控制算法 57 ...
org.liveSense.service.securityManager.zip,LiveSense安全管理器服务,LiveSense安全管理器服务
只需在Flask Appbuilder应用程序中覆盖默认的安全管理器即可。 from fab_oidc . security import OIDCSecurityManager appbuilder = AppBuilder ( app , db . session , security_manager_class = ...
安全管理器 SecurityManager; 过滤器工厂 ShiroFilterFactoryBean(设置自定义过滤器和设置哪些路径是允许匿名访问); 自定义realm(数据源,从数据库获得真实用户信息(密码权限),并封装成...
2. SecurityManager 为安全管理员 这是 Shiro 架构的核心,是 Shiro 内部所有原件的保护伞。项目中一般都会配置 SecurityManager,开发人员将大部分精力放在了 Subject 认证主体上,与 Subject 交互背后的安全操作...
在现代的Java Web应用开发中,使用SSM(Spring + Spring MVC + MyBatis)框架组合是一种非常流行的做法。...在权限控制方面,可以配置Shiro的安全管理器(SecurityManager)和授权信息(如角色和权限)。
Java Shiro 是一个强大且灵活的开源安全框架,用于身份认证、授权和会话管理等安全领域的应用开发。学习 Java Shiro 可以通过思维导图来梳理核心概念和学习路径,以下是一个简要的 Java Shiro 学习思维导图。 Java ...
SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务 Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说...
除了Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 ...
对于任何一个应用程序,Shiro都可以提供全面的安全管理服务。其不仅可以用在JavaSE环境,也可以用在JavaEE环境。1.从外部来看Shiro,即从应用程序角度来观察如何使用Shiro完成工作。如下图:2.从Shiro内部看Shiro的...
SecurityManager : 安全管理器(关联 Realm) Realm :Shiro 连接数据的桥梁 数据库表 shiro 引入 <groupId>org.apache.shiro <artifactId>shiro-spring <version>1.4.0 简单拦截 public ...
对于任何一个应用程序,Shiro都可以提供全面的安全管理服务。并且相对于其他安全框架,Shiro要简单的多。 二、Shiro的架构介绍 首先,来了解一下Shiro的三个核心组件:Subject, SecurityManager 和 Realms. 如...
安全经理Java安全管理器的定制实现,旨在为Web应用程序提供额外的保护和保证。 它允许使用更灵活的许可算法,以更好地满足J2EE环境的安全需求。背景默认的Java安全管理器实现被设计为用于不受信任的代码的通用沙箱。...