/** * Perform work as a particular <code>Subject</code>. Here the work will be * granted to a <code>null</code> subject. * * @param methodName * the method to apply the security restriction * @param targetObject * the <code>Filter</code> on which the method will be called. * @param targetParameterTypes * <code>Class</code> array used to instantiate a * <code>Method</code> object. * @param targetParameterValues * <code>Object</code> array contains the runtime parameters * instance. * @param principal * the <code>Principal</code> to which the security privilege * apply */ public static void doAsPrivilege(final String methodName, final Filter targetObject, final Class<?>[] targetParameterTypes, final Object[] targetParameterValues, Principal principal) throws java.lang.Exception { // CometFilter instances must not be cached as Filter or // NoSuchMethodException will be thrown. Class<? extends Filter> targetType = targetObject instanceof CometFilter ? CometFilter.class : Filter.class; Method method = null; Method[] methodsCache = classCache.get(Filter.class); if (methodsCache == null) { method = createMethodAndCacheIt(methodsCache, targetType, methodName, targetParameterTypes); } else { method = findMethod(methodsCache, methodName); if (method == null) { method = createMethodAndCacheIt(methodsCache, targetType, methodName, targetParameterTypes); } } execute(method, targetObject, targetParameterValues, principal); }
/** * Perform work as a particular <code>Subject</code>. Here the work * will be granted to a <code>null</code> subject. * * @param methodName the method to apply the security restriction * @param targetObject the <code>Filter</code> on which the method will * be called. * @param targetParameterTypes <code>Class</code> array used to instantiate a * <code>Method</code> object. * @param targetParameterValues <code>Object</code> array contains the * runtime parameters instance. * @param principal the <code>Principal</code> to which the security * privilege apply */ public static void doAsPrivilege(final String methodName, final Filter targetObject, final Class<?>[] targetParameterTypes, final Object[] targetParameterValues, Principal principal) throws java.lang.Exception{ // CometFilter instances must not be cached as Filter or // NoSuchMethodException will be thrown. Class<? extends Filter> targetType = targetObject instanceof CometFilter ? CometFilter.class : Filter.class; Method method = null; Method[] methodsCache = classCache.get(Filter.class); if(methodsCache == null) { method = createMethodAndCacheIt(methodsCache, targetType, methodName, targetParameterTypes); } else { method = findMethod(methodsCache, methodName); if (method == null) { method = createMethodAndCacheIt(methodsCache, targetType, methodName, targetParameterTypes); } } execute(method, targetObject, targetParameterValues, principal); }