SecurityUtil.java 文件源码

java
阅读 38 收藏 0 点赞 0 评论 0

项目:tomcat7 作者:
/**
 * 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);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号