Java源码示例:org.apache.commons.collections.EnumerationUtils

示例1
/**
 * Filter {@link JarEntry} list from {@link JarFile}
 *
 * @param jarFile
 *         {@link JarFile}
 * @param jarEntryFilter
 *         {@link JarEntryFilter}
 * @return Read-only List
 */
@Nonnull
public static List<JarEntry> filter(JarFile jarFile, JarEntryFilter jarEntryFilter) {
    if (jarFile == null) {
        return Collections.emptyList();
    }
    Enumeration<JarEntry> jarEntries = jarFile.entries();
    List<JarEntry> jarEntriesList = EnumerationUtils.toList(jarEntries);
    return doFilter(jarEntriesList, jarEntryFilter);
}
 
示例2
private static boolean requestIsHtml(HttpServletRequest optionalRequest) {
    Set headerList = separateOneLineMediaTypes(EnumerationUtils.toList(optionalRequest.getHeaders(HttpHeaders.ACCEPT)));
    Set defaultMediaTypes = ImmutableSet.of(MediaType.TEXT_HTML, MediaType.APPLICATION_XHTML_XML, MediaType.APPLICATION_XML);
    if(CollectionUtils.containsAny(headerList,defaultMediaTypes)){
        return true;
    }
    return false;
}
 
示例3
/**
 * This is a workaround after upgrading to CXF 2.7.0 whereby we could no longer just call "setHideServiceList" on
 * the ServletController. Instead, it is now reading this information from the ServletConfig, so wrapping the base
 * ServletContext to return true or false for hide service list depending on whether or not we are in dev mode.
 */
protected ServletConfig getCXFServletConfig(final ServletConfig baseServletConfig) {
    // disable handling of URLs ending in /services which display CXF generated service lists if we are not in dev mode
    final String shouldHide = Boolean.toString(!ConfigContext.getCurrentContextConfig().getDevMode().booleanValue());
    return new ServletConfig() {
        private static final String HIDE_SERVICE_LIST_PAGE_PARAM = "hide-service-list-page";
        @Override
        public String getServletName() {
            return baseServletConfig.getServletName();
        }
        @Override
        public ServletContext getServletContext() {
            return baseServletConfig.getServletContext();
        }
        @Override
        public String getInitParameter(String parameter) {
            if (HIDE_SERVICE_LIST_PAGE_PARAM.equals(parameter)) {
                return shouldHide;
            }
            return baseServletConfig.getInitParameter(parameter);
        }
        @Override
        public Enumeration<String> getInitParameterNames() {
            List<String> initParameterNames = EnumerationUtils.toList(baseServletConfig.getInitParameterNames());
            initParameterNames.add(HIDE_SERVICE_LIST_PAGE_PARAM);
            return new Vector<String>(initParameterNames).elements();
        }
    };
}
 
示例4
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
    // if header supplied, check it is valid
    String requiredWhenS = request.getHeader(CSRF_TOKEN_REQUIRED_HEADER);
    if (Strings.isNonBlank(requiredWhenS) && getRequiredForRequests(requiredWhenS, null)==null) {
        fail(requestContext, ApiError.builder().errorCode(Response.Status.BAD_REQUEST)
            .message(HEADER_OF_COOKIE(CSRF_TOKEN_REQUIRED_HEADER)+" header if supplied must be one of "
                + Arrays.asList(CsrfTokenRequiredForRequests.values()))
            .build());
        return;
}
    
    if (!request.isRequestedSessionIdValid()) {
        // no session; just return
        return;
    }
    
    @SuppressWarnings("unchecked")
    List<String> suppliedTokensDefault = EnumerationUtils.toList(request.getHeaders(CSRF_TOKEN_VALUE_HEADER));
    @SuppressWarnings("unchecked")
    List<String> suppliedTokensAngular = EnumerationUtils.toList(request.getHeaders(CSRF_TOKEN_VALUE_HEADER_ANGULAR_NAME));
    List<String> suppliedTokens = Lists.newArrayList(suppliedTokensDefault);
    suppliedTokens.addAll(suppliedTokensAngular);

    MultiSessionAttributeAdapter session = MultiSessionAttributeAdapter.of(request);
    Object requiredToken = session.getAttribute(CSRF_TOKEN_VALUE_ATTR);
    CsrfTokenRequiredForRequests whenRequired = (CsrfTokenRequiredForRequests) session.getAttribute(CSRF_TOKEN_REQUIRED_ATTR);

    boolean isRequired;
    
    if (whenRequired==null) {
        if (suppliedTokens.isEmpty()) {
            log.warn("No CSRF token expected or supplied but a cookie-session is active: client should be updated"
                + " (in future CSRF tokens or instructions may be required for session-based clients)"
                + " - " + Entitlements.getEntitlementContext());
            whenRequired = CsrfTokenRequiredForRequests.NONE;
        } else {
            // default
            whenRequired = DEFAULT_REQUIRED_FOR_REQUESTS;
        }
        // remember it to suppress warnings subsequently
        session.setAttribute(CSRF_TOKEN_REQUIRED_ATTR, whenRequired);
    }
    
    switch (whenRequired) {
    case NONE:
        isRequired = false;
        break;
    case WRITE:
        isRequired = !org.eclipse.jetty.http.HttpMethod.GET.toString().equals(requestContext.getMethod());
        break;
    case ALL:
        isRequired = true;
        break;
    default:
        log.warn("Unexpected "+CSRF_TOKEN_REQUIRED_ATTR+" value "+whenRequired);
        isRequired = true;
    }
    
    if (Iterables.any(suppliedTokens, Predicates.equalTo(requiredToken))) {
        // matching token supplied, or not being used 
        return;
    }
    
    if (!isRequired) {
        // csrf not required, but it doesn't match
        if (requiredToken!=null) {
            log.trace("CSRF optional token mismatch: client did not send valid token, but it isn't required so proceeding");
        }
        return;
    }

    if (suppliedTokens.isEmpty()) {
        fail(requestContext, ApiError.builder().errorCode(Response.Status.FORBIDDEN)
                .message(HEADER_OF_COOKIE(CSRF_TOKEN_VALUE_COOKIE)+" header is required, containing token previously returned from server in cookie")
                .build());
    } else {
        fail(requestContext, ApiError.builder().errorCode(Response.Status.FORBIDDEN)
            .message(HEADER_OF_COOKIE(CSRF_TOKEN_VALUE_COOKIE)+" header did not match expected CSRF token")
            .build());
    }
}
 
示例5
@SuppressWarnings({ "unchecked" })
@Override
public Collection<Object> getAttributeKeys() throws InvalidSessionException {
    return EnumerationUtils.toList( request.getAttributeNames() );
}
 
示例6
/**
 * Get the resource URLs Set under specified resource name and type
 *
 * @param classLoader
 *         ClassLoader
 * @param resourceType
 *         {@link ResourceType} Enum
 * @param resourceName
 *         resource name ,e.g : <br /> <ul> <li>Resource Name :<code>"/com/abc/def.log"</code></li> <li>Class Name :
 *         <code>"java.lang.String"</code></li> </ul>
 * @return the resource URL under specified resource name and type
 * @throws NullPointerException
 *         If any argument is <code>null</code>
 * @throws IOException
 * @version 1.0.0
 * @since 1.0.0
 */
public static Set<URL> getResources(ClassLoader classLoader, ResourceType resourceType, String resourceName) throws NullPointerException, IOException {
    String normalizedResourceName = resourceType.resolve(resourceName);
    Enumeration<URL> resources = classLoader.getResources(normalizedResourceName);
    return resources != null && resources.hasMoreElements() ? Sets.newLinkedHashSet(EnumerationUtils.toList(resources)) : Collections.<URL>emptySet();
}