private String resourceNameFromField(final Field f, final AdminCommand command) throws IllegalArgumentException, IllegalAccessException { f.setAccessible(true); if (ConfigBeanProxy.class.isAssignableFrom(f.getType())) { return AccessRequired.Util.resourceNameFromConfigBeanProxy((ConfigBeanProxy) f.get(command)); } else if (ConfigBean.class.isAssignableFrom(f.getType())) { return AccessRequired.Util.resourceNameFromDom((ConfigBean) f.get(command)); } else { final String savedResourceName = namedResourceMgr.find(f.get(command)); if (savedResourceName != null) { return savedResourceName; } } final Object fieldValue = f.get(command); if (fieldValue == null) { throw new IllegalArgumentException(command.getClass().getName() + "." + f.getName() + "== null"); } return fieldValue.toString(); }
@Override public Collection<? extends AccessRequired.AccessCheck> getAccessChecks() { final Collection<AccessRequired.AccessCheck> result = new ArrayList<AccessRequired.AccessCheck>(); result.add(new AccessRequired.AccessCheck(AccessRequired.Util.resourceNameFromConfigBeanProxy(spb), "update")); return result; }
@Override public Collection<? extends AccessRequired.AccessCheck> getAccessChecks() { final Collection<AccessRequired.AccessCheck> result = new ArrayList<AccessRequired.AccessCheck>(); result.add(new AccessRequired.AccessCheck(AccessRequired.Util.resourceNameFromConfigBeanProxy(spb), "update")); return result; }
@Override public Collection<? extends AccessCheck> getAccessChecks() { final Collection<AccessCheck> checks = new ArrayList<AccessCheck>(); checks.add(new AccessCheck(AccessRequired.Util.resourceNameFromConfigBeanProxy(parentBean), "read")); if (longOpt) { try { List<ConfigBeanProxy> children = (List<ConfigBeanProxy>) targetMethod.invoke(parentBean); for (ConfigBeanProxy child : children) { if (name == null || name.equals(Dom.unwrap(child).getKey())) { checks.add(new AccessCheck(AccessRequired.Util.resourceNameFromConfigBeanProxy(child), "read")); } } } catch (Exception ex) { String msg = localStrings.getLocalString(GenericCrudCommand.class, "GenericListCommand.accesschecks", "Exception while creating access checks for generic command {0}: {1}", commandName, ex.getMessage()); LogHelper.log(logger, Level.SEVERE, ConfigApiLoggerInfo.ACCESS_CHK_CREATE_FAILED, ex, commandName); throw new RuntimeException(msg, ex); } } return checks; }
/** * Returns the resource name, if any was set when the access check was created. * @return */ public String resourceName() { if (resource != null) { return Util.resourceNameFromConfigBeanProxy(resource); } if (parent != null) { if (childName == null) { return Util.resourceNameFromConfigBeanType(parent, null, childType); } else { return Util.resourceNameFromConfigBeanTypeAndName(parent, childType, childName); } } return resourceName; }
/** * Returns the resource name, if any was set when the access check was created. * @return */ public String resourceName() { if (resource != null) { return Util.resourceNameFromConfigBeanProxy(resource); } if (parent != null) { if (childName == null) { return Util.resourceNameFromConfigBeanType(parent, null, childType); } else { return Util.resourceNameFromConfigBeanTypeAndName(parent, childType, childName); } } return resourceName; }
@Override public Collection<? extends AccessCheck> getAccessChecks() { final Collection<AccessCheck> result = new ArrayList<AccessCheck>(); result.add(new AccessCheck(AccessRequired.Util.resourceNameFromConfigBeanProxy(spb), "update")); return result; }
private static String resourceNameFromRestEndpoint(Class<? extends ConfigBeanProxy> c, final String path, final ServiceLocator locator) { ConfigBeanProxy b = locator.getService(c); String name = (b != null ? AccessRequired.Util.resourceNameFromConfigBeanProxy(b) : "?"); if (path != null) { name += '/' + path; } return name; }