六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 51|回复: 0

java安全管理器-SecurityManager

[复制链接]

升级  70%

45

主题

45

主题

45

主题

秀才

Rank: 2

积分
155
 楼主| 发表于 2013-2-3 14:41:41 | 显示全部楼层 |阅读模式
当java应用程序启动时,它还没有安全管理器,应用程序可以通过将一个指向java.lang.SecurityManager或是其子类的实例传给System.setSecurityManager()来安装一个安全管理器,安全管理器的作用嘛,谁用谁知道,留下个例子代码吧,见代码....

import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class MySecurityManager extends SecurityManager {    @Override    public void checkRead(String file) {        if (file.endsWith("Security.txt"))            throw new SecurityException("这个你是没有权限读滴...");    }    /**     *     * @param args     * @return void     */    public static void main(String[] args) {        //设置安全管理器        System.setSecurityManager(new MySecurityManager());        try {//            new FileOutputStream("Security.txt");            FileInputStream fis = new FileInputStream("Security.txt");            System.out.println(fis.read());        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}

输出:
Exception in thread "main" java.lang.SecurityException: 这个你是没有权限读滴...at com.jvm.threee.securitymanager.MySecurityManager.checkRead(MySecurityManager.java:14)at java.io.FileInputStream.<init>(FileInputStream.java:100)at java.io.FileInputStream.<init>(FileInputStream.java:66)at com.jvm.threee.securitymanager.MySecurityManager.main(MySecurityManager.java:27)

可以程序显示的安装安全管理器,同样可以让它自动安装默认的安全管理器(给jvm加上-Djava.security.manager就可以了)
当然还有安全策略文件,这个就不举例了,参考http://blog.csdn.net/neusoftware_20063500/article/details/4200458
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表