public Serializable getIdentifier(Object resource) { if (resource instanceof String) { return (String) resource; } PermissionHandler handler = getHandlerForResource(resource); return handler != null ? handler.getIdentifier(resource) : null; }
public Class<?> getResourceClass(Object resource) { if (resource instanceof String) { return String.class; } PermissionHandler handler = getHandlerForResource(resource); if (handler == null) { throw new IdentityManagementException(String.format( "No permission handler registered for resource [%s]", resource.toString())); } return handler.unwrapResourceClass(resource); }
private PermissionHandler getHandlerForResource(Object resource) { PermissionHandler handler = null; if (resource.getClass().isAnnotationPresent(PermissionsHandledBy.class)) { Class<? extends PermissionHandler> handlerClass = resource.getClass().getAnnotation(PermissionsHandledBy.class).value(); if (handlerClass != PermissionHandler.class) { try { handler = handlerClass.newInstance(); classHandlers.put(resource.getClass(), handler); } catch (Exception ex) { throw new RuntimeException("Error instantiating IdentifierStrategy for object " + resource, ex); } } } for (PermissionHandler s : registeredHandlers) { if (s.canHandle(resource.getClass())) { handler = s; Class<?> resourceClassKey = resource.getClass(); if (Class.class.isInstance(resource)) { resourceClassKey = (Class<?>) resource; } classHandlers.put(resourceClassKey, handler); break; } } return handler; }
public Class<?> getResourceClass(Object resource) { if (resource instanceof String) { return String.class; } PermissionHandler handler = getHandlerForResource(resource); if (handler == null) { throw new IdentityManagementException(String.format( "No permission handler registered for resource [%s]", resource.toString())); } return handler.unwrapResourceClass(resource); }
private PermissionHandler getHandlerForResource(Object resource) { PermissionHandler handler = null; if (resource.getClass().isAnnotationPresent(PermissionsHandledBy.class)) { Class<? extends PermissionHandler> handlerClass = resource.getClass().getAnnotation(PermissionsHandledBy.class).value(); if (handlerClass != PermissionHandler.class) { try { handler = handlerClass.newInstance(); classHandlers.put(resource.getClass(), handler); } catch (Exception ex) { throw new RuntimeException("Error instantiating IdentifierStrategy for object " + resource, ex); } } } for (PermissionHandler s : registeredHandlers) { if (s.canHandle(resource.getClass())) { handler = s; Class<?> resourceClassKey = resource.getClass(); if (Class.class.isInstance(resource)) { resourceClassKey = (Class<?>) resource; } classHandlers.put(resourceClassKey, handler); break; } } return handler; }
public Serializable getIdentifier(Object resource) { if (resource instanceof String) { return (String) resource; } PermissionHandler handler = getHandlerForResource(resource); return handler != null ? handler.getIdentifier(resource) : null; }