本文整理汇总了Java中sun.security.provider.PolicyFile类的典型用法代码示例。如果您正苦于以下问题:Java PolicyFile类的具体用法?Java PolicyFile怎么用?Java PolicyFile使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PolicyFile类属于sun.security.provider包,在下文中一共展示了PolicyFile类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: checkConfiguration
import sun.security.provider.PolicyFile; //导入依赖的package包/类
/**
* Prints warning message if installed Policy is the default Policy
* implementation and globally granted permissions do not include
* AllPermission or any ExecPermissions/ExecOptionPermissions.
*/
static void checkConfiguration() {
Policy policy =
AccessController.doPrivileged(new PrivilegedAction<Policy>() {
public Policy run() {
return Policy.getPolicy();
}
});
if (!(policy instanceof PolicyFile)) {
return;
}
PermissionCollection perms = getExecPermissions();
for (Enumeration<Permission> e = perms.elements();
e.hasMoreElements();)
{
Permission p = e.nextElement();
if (p instanceof AllPermission ||
p instanceof ExecPermission ||
p instanceof ExecOptionPermission)
{
return;
}
}
System.err.println(getTextResource("rmid.exec.perms.inadequate"));
}
示例2: doBadTest
import sun.security.provider.PolicyFile; //导入依赖的package包/类
private static int doBadTest(PolicyFile policy, int testnum) {
// this principal is not in policy - should not match any policy grants
ProtectionDomain pd = new ProtectionDomain(cs, null, null, badP);
if (policy.implies(pd, FOO)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// this principal is not in policy - should not match any policy grants
if (policy.implies(pd, BAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// this principal is not in policy - should not match any policy grants
if (policy.implies(pd, FOOBAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
return testnum;
}
示例3: doPrincipalTest
import sun.security.provider.PolicyFile; //导入依赖的package包/类
private static int doPrincipalTest(PolicyFile policy, int testnum) {
// security check against one principal should pass
ProtectionDomain pd = new ProtectionDomain(cs, null, null, p1);
if (!policy.implies(pd, FOO)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// should not match BAR grant entry in policy
pd = new ProtectionDomain(cs, null, null, p1);
if (policy.implies(pd, BAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// security check against two principals should pass
pd = new ProtectionDomain(cs, null, null, p2);
if (!policy.implies(pd, BAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// should not match FOOBAR grant entry in policy
pd = new ProtectionDomain(cs, null, null, p1);
if (policy.implies(pd, FOOBAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// should not match FOOBAR grant entry in policy
pd = new ProtectionDomain(cs, null, null, p2);
if (policy.implies(pd, FOOBAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
testnum = doBadTest(policy, testnum);
return testnum;
}
示例4: doComparatorTest
import sun.security.provider.PolicyFile; //导入依赖的package包/类
private static int doComparatorTest(PolicyFile policy, int testnum) {
// security check against one comparator should pass
ProtectionDomain pd = new ProtectionDomain(cs, null, null, p1);
if (!policy.implies(pd, FOO)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// should not match BAR grant entry in policy
pd = new ProtectionDomain(cs, null, null, p1);
if (policy.implies(pd, BAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// security check against two comparators should pass for FOO
pd = new ProtectionDomain(cs, null, null, p3);
if (!policy.implies(pd, FOO)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// security check against two comparators should pass for BAR
pd = new ProtectionDomain(cs, null, null, p3);
if (!policy.implies(pd, BAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// security check should fail against FOOBAR
pd = new ProtectionDomain(cs, null, null, p3);
if (policy.implies(pd, FOOBAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
testnum = doBadTest(policy, testnum);
return testnum;
}
示例5: doCombinedTest
import sun.security.provider.PolicyFile; //导入依赖的package包/类
private static int doCombinedTest(PolicyFile policy, int testnum) {
// security check against principal followed by comparator should pass
ProtectionDomain pd = new ProtectionDomain(cs, null, null, p3);
if (!policy.implies(pd, FOO)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// should not match BAR grant entry in policy
pd = new ProtectionDomain(cs, null, null, p3);
if (policy.implies(pd, BAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// security check against comparator followed by principal should pass
pd = new ProtectionDomain(cs, null, null, p4);
if (!policy.implies(pd, BAR)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// should not match FOO grant entry in policy
pd = new ProtectionDomain(cs, null, null, p4);
if (policy.implies(pd, FOO)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// security check against principal-principal-comparator should pass
pd = new ProtectionDomain(cs, null, null, p5);
if (!policy.implies(pd, HELLO)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// should not match WORLD grant entry in policy
pd = new ProtectionDomain(cs, null, null, p5);
if (policy.implies(pd, WORLD)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// security check against principal-principal-comparator should pass
pd = new ProtectionDomain(cs, null, null, p6);
if (!policy.implies(pd, WORLD)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
// should not match HELLO grant entry in policy
pd = new ProtectionDomain(cs, null, null, p6);
if (policy.implies(pd, HELLO)) {
throw new SecurityException("test." + testnum + " failed");
}
testnum++;
testnum = doBadTest(policy, testnum);
return testnum;
}
示例6: impliesWithAltFilePerm
import sun.security.provider.PolicyFile; //导入依赖的package包/类
/**
* This method has almost the same logic flow as {@link #implies} but
* it ensures some level of FilePermission compatibility after JDK-8164705.
*
* This method is called by {@link AccessControlContext#checkPermission}
* and not intended to be called by an application.
*/
boolean impliesWithAltFilePerm(Permission perm) {
// If FilePermCompat.compat is set (default value), FilePermission
// checking compatibility should be considered.
// If filePermCompatInPD is set, this method checks for alternative
// FilePermission to keep compatibility for any Policy implementation.
// When set to false (default value), implies() is called since
// the PolicyFile implementation already supports compatibility.
// If this is a subclass of ProtectionDomain, call implies()
// because most likely user has overridden it.
if (!filePermCompatInPD || !FilePermCompat.compat ||
getClass() != ProtectionDomain.class) {
return implies(perm);
}
if (hasAllPerm) {
// internal permission collection already has AllPermission -
// no need to go to policy
return true;
}
Permission p2 = null;
boolean p2Calculated = false;
if (!staticPermissions) {
Policy policy = Policy.getPolicyNoCheck();
if (policy instanceof PolicyFile) {
// The PolicyFile implementation supports compatibility
// inside and it also covers the static permissions.
return policy.implies(this, perm);
} else {
if (policy.implies(this, perm)) {
return true;
}
p2 = FilePermCompat.newPermUsingAltPath(perm);
p2Calculated = true;
if (p2 != null && policy.implies(this, p2)) {
return true;
}
}
}
if (permissions != null) {
if (permissions.implies(perm)) {
return true;
} else {
if (!p2Calculated) {
p2 = FilePermCompat.newPermUsingAltPath(perm);
}
if (p2 != null) {
return permissions.implies(p2);
}
}
}
return false;
}