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日志的权限。
分享到:
相关推荐
第1章 servlet概述第2章 Java Web服务器第3章 第一个servlet 第4章 servlet链第5章 servlet-side Includes 第6章 会话管理第7章 安全性 第8章 HTML表单第9章 在servlet中使用JDBC 第10章 applet与servlet的通信第11...
Java Applet实例编程
Java的线程和Java AppletJava的线程和Java AppletJava的线程和Java AppletJava的线程和Java AppletJava的线程和Java Applet
本书以大量的实例介绍了Java安全性编程方面的概念和技术,全书共计9章。经过精心设计,每个小节的实例着重说明一个问题,又相互贯穿和联系。内容涉及Java加密和解密,反编译和反反编译,对类、成员变量、方法的攻击...
Java+Applet实例讲解(分为1和2两部分)、Java+Applet实例编程、java+Applet登录、JavaApplet教程.pdf、JAVA_applet应用实例.ppt、JavaApplet编程技巧实例专辑、javaapplet例子.doc、Applet类.doc等教程。...
# 本章解决的是数据内容的安全性,介绍Java的加密和解密技术。学完该章可以通过Java编程对各种数据进行各种形式的加密。密码学也是安全机制的基础。 # 第三章 # 解决的主要问题——和源代码相关的安全性 # 编写好...
<Java安全性编程实例>书和代码,内容涉及Java加密和解密,反编译和反反编译,对类、成员变量、方法的攻击和保护,消息摘要,消息验证码,数字签名,口令保护,数字证书和证书链的生成、签发、检验和维护,SSL和HTTPS...
第7章 使用JAVA进行面向对象的程序设计 第8章 JAVA语法基础 第9章 Applet图形应用程序和基本绘图 第10章 处理鼠标和键盘事件 第11章 窗口 第12章 使用布局管理器安排窗口 第13章 图形用户界面控件 第14章 使用JAVA...
本教程详尽的介绍了如何进行Applet的开发。
Java Applet实例编程.rar
完整版 Java编程基础入门教程 Java语言程序设计 第7章_流和文件(共63页).ppt 完整版 Java编程基础入门教程 Java语言程序设计 第8章_多线程与异常处理(共72页).ppt 完整版 Java编程基础入门教程 Java语言程序设计...
第1章 Java 程序设计概述 ...第7章 图形程序设计 第8章 事件处理 第9章 Swing用户界面组件 第10章 部署应用程序和applet 第11章 异常、日志、断言和调试 第12章 泛型程序设计 第13章 集合 第14章 多线程
javaapplication和javaapplet的区别
全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、泛型程序设计、集合以及多线程等内容。. 全书对Java...
《Java高手真经(编程基础卷):Java核心编程技术》详细讲解了Java语言基础开发中的各种技术,主要内容包括如下。Java开发入门:JDK、JVM、Eclipse、Linux。Java语法基础:类、抽象类、接口、内部类、匿名类、异常、...
完整版 Java编程基础入门教程 Java语言程序设计 第7章_流和文件(共63页).ppt 完整版 Java编程基础入门教程 Java语言程序设计 第8章_多线程与异常处理(共72页).ppt 完整版 Java编程基础入门教程 Java语言程序设计...
第1章 Java 程序设计概述 ...第7章 图形程序设计 第8章 事件处理 第9章 Swing用户界面组件 第10章 部署应用程序和applet 第11章 异常、日志、断言和调试 第12章 泛型程序设计 第13章 集合 第14章 多线程