![个人头像照片](https://ucc.alicdn.com/avatar/avatar3.jpg)
暂无个人介绍
2022年10月
两个权限在比较的时候,不是直接相等而是看permission文件里面蕴含不蕴含现在正在操作的权限。
例: 如果我们有这样一个设置如下:
permission java.io.filepermission”/tmp/*”,”read,write”;
若有一个用户要去写/temp/a.txt文件马上就可以比较permisssion出现的文件是否蕴含,需要判断是否包含权限。从而去判断两个权限是否相等
implies是所谓蕴含的意思,就是说在permission上有自定义的implies方法,将来就会如a implies(b),这个含义就是a蕴含了b,如果返回是ture就说明a这个权限是包含b这个权限的,如果是false就说明a这个权限不包含b 。
如果不覆盖ecquals和hashCode两个方法,默认情况下对象就是1,引用来比较两个对象是否相同的,这既使两个对象权限一模一样,按照地址去比较也会判断不同。
判断两个权限是否相等要按照对象的内容来而不是按照引用来,所以必须覆盖ecquals和hashCode两个方法。看target和action是否一样,如果一样就认为是同一个权限。
一个权限重要的是要定义target是什么,对它能做什么样的action。target和action要在构造器里面传递进去,对哪一个target授一个什么样的action。action有一个或多个列表。
需要既安装安全管理器又要让安全管理器明白policy是什么,然后安全管理器就会按照policy的权限去执行class文件。
如果让它不检查可以直接写GetProps
java-Djava.security.manager
-Djava.security.policy=Getprops.policy GetProps
要注意在跑policy file应用的前要进行安全性检查,这是在运行java虚拟机的时候指定的。可以让它检查也可以不检查。
Getprops是一个简单的类,可以读取当前系统的属性,Java的版本和系统的名字还有Java的home。它只是读了三个系统属性然后将他们输出了。
可以在standard locations安装policy文件,默认情况下有两个位置: 1、The file java.policy in the Java platform home directory 2、The file.java.policy(notice the period at the beginning of the file name)in the user home directory
grant codebasehttp://www.horstmann.com/classes
{
permission java.io.Filepermission”/tmp/*”,”read,weite”;
};
codeBase是按代码位置来划分domain的,domain意思是凡是来自 http://www.horstmann.com/classes的代码,可以把位于这里的所有的类授予一个权限,这种代码具有文件操作的权限。
网络权限、文件读写权限。权限类图如下:
将代码划分成不同的domain然后不同domain代码里具有不同的权限机,来自同一个domain有相同的权限机。
运行自定义权限集程序的时候要用安全管理器跑。
因为在前面就是用逗号将所有不良单词给分隔开的,如下:
WordCheckPermission”sex,drugs”,”avoid”
set剔除重复元素,例如如果前面在写sex,dugs,C++的时候又写了一遍sex,不需要重复元素就会放到set中将重复元素给剔除掉。
代码如下:
public Set<String> badwordset()
{
Set<String> set =new HashSet<String>();
set.addAII(Arrays.asList(getName().split(“,“)));
return set;
}
private string action;
}
辨认当前不良单词集里面的每一个单词,每一个单词b要求到插入的话里面去找,只要有一个能找到即它的索引是大于等于0的,就意味着不允许插入。如果整个循环都没有 return就说明所有的单词在当前插入的没有出现过。
for (String badword : badwordSet())
if (b.getName().index0f(badword)>=0)
return false;
return true;
}
将b.badWordSet的不良单词集拿出来看是否包含当前不良单词集里面的所有单词,如果包含了说明b的不良单词集是多余或等于当前不良单词集的。