List of usage examples for org.apache.shiro.authz.permission WildcardPermission implies
public boolean implies(Permission p)
From source file:com.ace.console.service.sys.impl.ResourceServiceImpl.java
License:Apache License
private boolean hasPermission(String permission, String actualResourceIdentity) { //?? ?a:b:create --->?a:b String permissionResourceIdentity = permission.substring(0, permission.lastIndexOf(":")); //??? ?? ?? a:b a:b?? if (permissionResourceIdentity.startsWith(actualResourceIdentity)) { return true; }// ww w . j a v a 2 s. co m //?? WildcardPermission p1 = new WildcardPermission(permissionResourceIdentity); WildcardPermission p2 = new WildcardPermission(actualResourceIdentity); return p1.implies(p2) || p2.implies(p1); }
From source file:ddf.security.permission.KeyValuePermission.java
License:Open Source License
/** * Returns {@code true} if this current instance <em>implies</em> all the functionality and/or * resource access described by the specified {@code Permission} argurment, {@code false} * otherwise.// w w w . j a va2 s . co m * * <p>That is, this current instance must be exactly equal to or a <em>superset</em> of the * functionality and/or resource access described by the given {@code Permission} argument. Yet * another way of saying this would be: * * <p>If "permission1 implies permission2", i.e. <code>permission1.implies(permission2) * </code> , then any Subject granted {@code permission1} would have ability greater than or equal * to that defined by {@code permission2}. * * <p>For KeyValuePermission objects this is determined as follows: * * <p>If the keys of each permission are equal and if the values from this object implies the * values from the passed in permission, then this permission will imply the passed in permission. * * @param p permission to checked to see if this permission implies p * @return {@code true} if this current instance <em>implies</em> all the functionality and/or * resource access described by the specified {@code Permission} argument, {@code false} * otherwise. */ @Override public boolean implies(Permission p) { if (p instanceof KeyValuePermission) { if (getKey().equals(((KeyValuePermission) p).getKey())) { WildcardPermission thisWildCard = buildWildcardFromKeyValue(this); WildcardPermission implied = buildWildcardFromKeyValue((KeyValuePermission) p); return thisWildCard.implies(implied); } } else if (p instanceof KeyValueCollectionPermission) { WildcardPermission thisWildCard = buildWildcardFromKeyValue(this); List<KeyValuePermission> permissionList = ((KeyValueCollectionPermission) p) .getKeyValuePermissionList(); for (KeyValuePermission keyValuePermission : permissionList) { if (getKey().equals(keyValuePermission.getKey())) { WildcardPermission implied = buildWildcardFromKeyValue(keyValuePermission); return thisWildCard.implies(implied); } } } else if (p instanceof MatchOneCollectionPermission) { MatchOneCollectionPermission matchOneCollectionPermission = (MatchOneCollectionPermission) p; return matchOneCollectionPermission.implies(this); } else if (p instanceof WildcardPermission) { WildcardPermission thisWildCard = buildWildcardFromKeyValue(this); return thisWildCard.implies(p); } return false; }
From source file:org.apache.geode.management.internal.security.ResourcePermissionTest.java
License:Apache License
@Test public void testImples() { WildcardPermission role = new WildcardPermission("*:read"); role.implies(new ResourcePermission("data", "read")); role.implies(new ResourcePermission("cluster", "read")); role = new WildcardPermission("*:read:*"); role.implies(new ResourcePermission("data", "read", "testRegion")); role.implies(new ResourcePermission("cluster", "read", "anotherRegion", "key1")); role = new WildcardPermission("data:*:testRegion"); role.implies(new ResourcePermission("data", "read", "testRegion")); role.implies(new ResourcePermission("data", "write", "testRegion")); }
From source file:org.obiba.mica.security.realm.ExtendedWildcardPermission.java
License:Open Source License
@Override public boolean implies(Permission p) { boolean rval = impliesInternal(p); if (rval)/*from w w w . j a v a2s . c om*/ return true; for (WildcardPermission derived : derivedPermissions) { if (derived.implies(p)) return true; } return false; }
From source file:org.sonatype.security.realms.MemoryRealm.java
License:Open Source License
/** * This method is overridden, explicitly to dis-allow access to certain permissions * that aren't going to be used when using an external security system * //from w w w. ja v a 2 s . c o m * @see org.jsecurity.realm.AuthorizingRealm#isPermitted(org.jsecurity.subject.PrincipalCollection, org.jsecurity.authz.Permission) */ @Override public boolean isPermitted(PrincipalCollection principals, Permission permission) { if (WildcardPermission.class.isAssignableFrom(permission.getClass())) { for (WildcardPermission perm : blockedPermissions) { if (perm.implies(permission)) { return false; } } } return super.isPermitted(principals, permission); }
From source file:uk.q3c.krail.core.option.cache.OptionPermissionTest.java
License:Apache License
@Test public void userLevelOnly() { //given/*from w w w .j a va2s. com*/ OptionKey<Integer> optionKey = new OptionKey<>(33, LocaleContainer.class, LabelKey.Error); //when OptionPermission permissionToVerifyDs = new OptionPermission(OptionPermission.Action.EDIT, simpleHierarchy, 0, optionKey, "ds"); OptionPermission permissionToVerifyDa = new OptionPermission(OptionPermission.Action.EDIT, simpleHierarchy, 0, optionKey, "da"); WildcardPermission editAllUserLevelOptions = new WildcardPermission( "option:edit:SimpleUserHierarchy:ds:0:*:*"); WildcardPermission editAllUserLevelOptions_differentUser = new WildcardPermission( "option:edit:SimpleUserHierarchy:da:0:*:*"); //then assertThat(editAllUserLevelOptions.implies(permissionToVerifyDs)).isTrue(); assertThat(editAllUserLevelOptions.implies(permissionToVerifyDa)).isFalse(); assertThat(editAllUserLevelOptions_differentUser.implies(permissionToVerifyDs)).isFalse(); }
From source file:uk.q3c.krail.core.shiro.PagePermissionTest.java
License:Apache License
@Test public void implies() { // given/*from w w w.ja v a 2 s. co m*/ String uri = "private/wiggly/id=1"; NavigationState navigationState = uriHandler.navigationState(uri); WildcardPermission wcp = new WildcardPermission("page:view:private:*"); // when PagePermission p = new PagePermission(navigationState, true); // then assertThat(p.implies(wcp)).isFalse(); assertThat(wcp.implies(p)).isTrue(); }