Java安全管理器
Java安全管理器处理必要的权限检查。缺省的实现是Java.lang.SecurityManager类中,如有必要可以派生出子类或取代之。对于不安全的行为,Java就会强制安全管理器进行安全检查。
安全管理器是如何工作的:
- 你的代码调用需要权限的代码,如new FileInputStream("filename")
- 那代码就会调用安全管理器检查权限
- 安全管理器决定权限是否允许。这通常(而不是必须的)会与java.security.AccessController交互。如果没有权限,就会出现运行异常:java.lang.SecurityException,否则不会返回异常而正常运行。安全管理器会监督整个执行线程已确保每个类都有相应权限。
- 如果没有异常,说明有足够的权限,程序将继续正常运行。
设置安全管理器有2个常用的方法
- 执行命令 java -Djava.security.manager FileWriteTest
- 程序中指定
SecurityManager security = new SecurityManager();
System.setSecurityManager(security);
Java.policy文件
某些权限必须赋予类,这是在java.policy文件中定义,java.policy文件保存在目录$JAVA_HOME/jre/lib/security中。
Java中的权限
Java本身定义了许多权限,顶层类包括:
- java.security.AllPermission—对所有文件都有的全部权限
- java.security.BasicPermission—大多数简单权限的超类
- java.io.FilePermission—文件读写权限
- java.net.SocketPermission—打开连接远程计算机的包,并用DNS解析主机名
BasicPermission有许多派生类定义其他权限
- javax.sound.sampled.AudioPermission—访问音频函数的权限,如播放、录音等。
- javax.awt.AWTPermission—与图形有关的行为的权限,比如访问剪贴板或读AWT事件。
- java.net.NetPermission—处理URL的权限,必然增加一个口令认证。
- java.util.PropertyPermission—读写系统属性的权限。
- java.lang.reflect.ReflectPermission—使用reflection的权限。
- java.lang.RuntimePermission—运行时安全元素的权限,比如设置类装载器或安全管理器。
- java.security.SecurityPermission—安全元素的权限,像安全策略和加密服务。
- java.io.SerializablePermission—读写可序列化对象的权限。
- java.sql.SQLPermission—设置SQL日志的权限。
分享到:
相关推荐
Applet部分可能涉及到浏览器兼容性和安全性的考虑,因为Applet已逐渐被Web应用的新技术如WebSockets和Web Apps所取代。 在实际开发过程中,考虑到Applet的安全性和现代浏览器对其的支持度下降,更现代的解决方案...
2. **面向对象的**:这是Java的核心特性,支持封装、继承和多态,使程序设计更加模块化和可维护。 3. **健壮的**:Java拥有严格的类型检查机制,自动管理内存,提供垃圾回收机制,减少了程序出错的可能性。 4. **...
掌握WebLogic、JBoss等J2EE应用服务器的管理与配置,以及如何利用其高级特性(如集群、连接池、分布式事务支持),对于优化应用性能、确保高可用性和安全性具有重要意义。 #### 14. 面向方面编程(AOP) 最后,...
9. **安全性更新**:JDK11对SSL/TLS协议进行了升级,增强了加密算法的安全性,例如默认禁用了弱的RSA密钥和DES密码。 10. **其他改进**:还有许多其他的小改进,比如JShell(也称REPL,Read-Eval-Print Loop)的...
2. **安全性**:讨论JavaScript的安全边界,如同源策略、沙盒环境、跨域资源共享(CORS)、XSS(跨站脚本攻击)防护和CSRF(跨站请求伪造)防御等,帮助开发者构建安全的Web应用。 3. **词法结构**:详细解析...
- **概念**:J2EE(Java 2 Platform, Enterprise Edition)是一种基于Java的平台,用于开发和部署企业级应用。分布式多层应用是指应用由多个逻辑层组成,每一层负责不同的功能,这些层可以分布在不同的物理服务器上...
J2EE(Java 2 Platform, Enterprise Edition)是一种专为企业级应用开发设计的技术框架,它旨在通过简化和标准化应用程序的开发与部署过程,提高应用系统的可移植性、安全性及复用价值。J2EE的核心是一组技术规范和...
#### 第7章 JSP数据库操作例程 ##### 7.1 安装mysql - **7.1.1 第一步:下载mysql**:这部分介绍了如何下载MySQL数据库。 - **7.1.2 第二步:安装、配置mysql**:这里详细解释了MySQL数据库的安装和配置过程。 - *...