@Before public void setup() throws Exception { filter = new AuthorizationFilter(); filter.authService = mock(APPAuthenticationServiceBean.class); VOUserDetails user = new VOUserDetails(); user.setLocale("de"); doReturn(user).when(filter.authService).authenticateAdministrator( any(PasswordAuthentication.class)); chain = mock(FilterChain.class); config = mock(FilterConfig.class); req = mock(HttpServletRequest.class); resp = mock(HttpServletResponse.class); session = mock(HttpSession.class); when(req.getSession()).thenReturn(session); when(req.getLocale()).thenReturn(new Locale("en")); when(req.getServletPath()).thenReturn("/xxx"); when(config.getInitParameter(any(String.class))).thenReturn("css"); }
@Test public void testInitCaseSensitivity() throws Exception { // minimal configuration & simple auth handler (Pseudo) AuthenticationFilter filter = new AuthenticationFilter(); try { FilterConfig config = Mockito.mock(FilterConfig.class); Mockito.when(config.getInitParameter(AuthenticationFilter.AUTH_TYPE)).thenReturn("SimPle"); Mockito.when(config.getInitParameter(AuthenticationFilter.AUTH_TOKEN_VALIDITY)).thenReturn( (new Long(TOKEN_VALIDITY_SEC)).toString()); Mockito.when(config.getInitParameterNames()).thenReturn( new Vector<String>(Arrays.asList(AuthenticationFilter.AUTH_TYPE, AuthenticationFilter.AUTH_TOKEN_VALIDITY)).elements()); getMockedServletContextWithStringSigner(config); filter.init(config); Assert.assertEquals(PseudoAuthenticationHandler.class, filter.getAuthenticationHandler().getClass()); } finally { filter.destroy(); } }
/** * Place this filter into service. * * @param filterConfig The filter configuration object */ public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); String value = filterConfig.getInitParameter("ignore"); if (value == null) this.ignore = true; else if (value.equalsIgnoreCase("true")) this.ignore = true; else if (value.equalsIgnoreCase("yes")) this.ignore = true; else this.ignore = false; }
@Override public void init(FilterConfig filterConfig) throws ServletException { super.init(filterConfig); synchronized (this) { if (_opaqueTokenValidator == null) { _opaqueTokenValidator = createTokenValidator(getFilterConfiguration()); _logger.info(() -> String.format("%s successfully initialized", OAuthFilter.class.getSimpleName())); } else { _logger.warning("Attempted to set introspect URI more than once! Ignoring further attempts."); } } }
public static FilterConfig getFilterConfigSpecificOriginAndSupportsCredentialsDisabled() { final String allowedHttpHeaders = CorsFilter.DEFAULT_ALLOWED_HTTP_HEADERS; final String allowedHttpMethods = CorsFilter.DEFAULT_ALLOWED_HTTP_METHODS + ",PUT"; final String allowedOrigins = HTTP_TOMCAT_APACHE_ORG + "," + HTTPS_WWW_APACHE_ORG; final String exposedHeaders = CorsFilter.DEFAULT_EXPOSED_HEADERS; final String supportCredentials = "false"; final String preflightMaxAge = CorsFilter.DEFAULT_PREFLIGHT_MAXAGE; final String decorateRequest = CorsFilter.DEFAULT_DECORATE_REQUEST; return generateFilterConfig(allowedHttpHeaders, allowedHttpMethods, allowedOrigins, exposedHeaders, supportCredentials, preflightMaxAge, decorateRequest); }
@Test public void testGetSimpleAuthDefaultConfiguration() throws ServletException { AuthFilter filter = new AuthFilter(); Map<String, String> m = new HashMap<String,String>(); FilterConfig config = new DummyFilterConfig(m); Properties p = filter.getConfiguration("random", config); Assert.assertEquals("true", p.getProperty(PseudoAuthenticationHandler.ANONYMOUS_ALLOWED)); }
@Override public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; ServletContext servletContext = filterConfig.getServletContext(); // use decorators from context attributes Object contextAttribute = servletContext.getAttribute(SPAN_DECORATORS); if (contextAttribute instanceof Collection) { List<ServletFilterSpanDecorator> decorators = new ArrayList<>(); for (Object decorator: (Collection)contextAttribute) { if (decorator instanceof ServletFilterSpanDecorator) { decorators.add((ServletFilterSpanDecorator) decorator); } else { log.severe(decorator + " is not an instance of " + ServletFilterSpanDecorator.class); } } this.spanDecorators = decorators.size() > 0 ? decorators : this.spanDecorators; } contextAttribute = servletContext.getAttribute(SKIP_PATTERN); if (contextAttribute instanceof Pattern) { skipPattern = (Pattern) contextAttribute; } }
@Before public void setup() throws Exception { proxyFilter = spy(new ProxyFilter()); requestMock = mock(HttpServletRequest.class); doReturn("/oscm-portal").when(requestMock).getContextPath(); doReturn("/oscm-portal/opt/80e8/").when(requestMock) .getRequestURI(); responseMock = mock(HttpServletResponse.class); chainMock = mock(FilterChain.class); responseHandlerMock = mock(ResponseHandler.class); filterConfigMock = mock(FilterConfig.class); serverMock = mock(Server.class); doReturn(serverMock).when(requestMock).getAttribute(eq("proxyServer")); ruleMock = mock(Rule.class); doReturn(ruleMock).when(serverMock).getRule(); doReturn(requestMock).when(serverMock).preExecute( any(HttpServletRequest.class)); doReturn("/oscm-portal/opt/80e8/").when(ruleMock).process( anyString()); doReturn("http").when(requestMock).getScheme(); doReturn("localhost:8180").when(serverMock).getDomainName(); doReturn("").when(serverMock).getPath(); proxyFilter.init(filterConfigMock); }
@Bean public FilterRegistrationBean correlationIdFilter() { return new FilterRegistrationBean(new Filter() { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { chain.doFilter(request, response); } @Override public void destroy() { } }); }
@Test public void testSameOrigin() throws ServletException, IOException { // Setup the configuration settings of the server Map<String, String> conf = new HashMap<String, String>(); conf.put(CrossOriginFilter.ALLOWED_ORIGINS, ""); FilterConfig filterConfig = new FilterConfigTest(conf); // Origin is not specified for same origin requests HttpServletRequest mockReq = mock(HttpServletRequest.class); when(mockReq.getHeader(CrossOriginFilter.ORIGIN)).thenReturn(null); // Objects to verify interactions based on request HttpServletResponse mockRes = mock(HttpServletResponse.class); FilterChain mockChain = mock(FilterChain.class); // Object under test CrossOriginFilter filter = new CrossOriginFilter(); filter.init(filterConfig); filter.doFilter(mockReq, mockRes, mockChain); verifyZeroInteractions(mockRes); verify(mockChain).doFilter(mockReq, mockRes); }
public static FilterConfig getSecureFilterConfig() { final String allowedHttpHeaders = CorsFilter.DEFAULT_ALLOWED_HTTP_HEADERS; final String allowedHttpMethods = CorsFilter.DEFAULT_ALLOWED_HTTP_METHODS + ",PUT"; final String allowedOrigins = HTTPS_WWW_APACHE_ORG; final String exposedHeaders = CorsFilter.DEFAULT_EXPOSED_HEADERS; final String supportCredentials = "true"; final String preflightMaxAge = CorsFilter.DEFAULT_PREFLIGHT_MAXAGE; final String decorateRequest = CorsFilter.DEFAULT_DECORATE_REQUEST; return generateFilterConfig(allowedHttpHeaders, allowedHttpMethods, allowedOrigins, exposedHeaders, supportCredentials, preflightMaxAge, decorateRequest); }
private void initStaticFileList(FilterConfig filterConfig) { // 先初始化默认后缀 ignoreSuffix.addAll(Arrays.asList(DEFULT_STATIC_FILE_SUFFIX)); String staticFileList = this.getPropertyFromInitParams(filterConfig, IGNORE_STATIC_FILE_SUFFIXS, StringUtils.EMPTY); if (StringUtils.isBlank(staticFileList)) { return; } // 如果列表配置不为空,则要清空列表 ignoreSuffix.clear(); // 循环并把配置的加入列表 String[] lists = staticFileList.split(","); List<String> ignoreList = new ArrayList<String>(); if (lists != null && lists.length > 0) { for (String s : lists) { if (StringUtils.isNotBlank(s)) { ignoreList.add(s.trim()); } } if (ignoreList.size() > 0) { ignoreSuffix.addAll(ignoreList); } } }
@Test public void testCrossOriginFilter() throws ServletException, IOException { // Setup the configuration settings of the server Map<String, String> conf = new HashMap<String, String>(); conf.put(CrossOriginFilter.ALLOWED_ORIGINS, "example.com"); FilterConfig filterConfig = new FilterConfigTest(conf); // Origin is not specified for same origin requests HttpServletRequest mockReq = mock(HttpServletRequest.class); when(mockReq.getHeader(CrossOriginFilter.ORIGIN)).thenReturn("example.com"); when(mockReq.getHeader(CrossOriginFilter.ACCESS_CONTROL_REQUEST_METHOD)) .thenReturn("GET"); when(mockReq.getHeader(CrossOriginFilter.ACCESS_CONTROL_REQUEST_HEADERS)) .thenReturn("X-Requested-With"); // Objects to verify interactions based on request HttpServletResponse mockRes = mock(HttpServletResponse.class); FilterChain mockChain = mock(FilterChain.class); // Object under test CrossOriginFilter filter = new CrossOriginFilter(); filter.init(filterConfig); filter.doFilter(mockReq, mockRes, mockChain); verify(mockRes).setHeader(CrossOriginFilter.ACCESS_CONTROL_ALLOW_ORIGIN, "example.com"); verify(mockRes).setHeader( CrossOriginFilter.ACCESS_CONTROL_ALLOW_CREDENTIALS, Boolean.TRUE.toString()); verify(mockRes).setHeader(CrossOriginFilter.ACCESS_CONTROL_ALLOW_METHODS, filter.getAllowedMethodsHeader()); verify(mockRes).setHeader(CrossOriginFilter.ACCESS_CONTROL_ALLOW_HEADERS, filter.getAllowedHeadersHeader()); verify(mockChain).doFilter(mockReq, mockRes); }
@Override public void init(FilterConfig config) throws ServletException { this.filterConfig = config; if (this.filterConfig == null) { logger.info("No configuration for: " + this.getClass().getName()); } init(); }
@Override public void init(FilterConfig filterConfig) throws ServletException { Enumeration<String> paramNames = filterConfig.getInitParameterNames(); while (paramNames.hasMoreElements()) { String paramName = paramNames.nextElement(); if (!IntrospectionUtils.setProperty(this, paramName, filterConfig.getInitParameter(paramName))) { String msg = sm.getString("filterbase.noSuchProperty", paramName, this.getClass().getName()); if (isConfigProblemFatal()) { throw new ServletException(msg); } else { getLogger().warn(msg); } } } }
@Override public void init(FilterConfig filterConfig) throws ServletException { if (servletLatency == null) { Histogram.Builder servletLatencyBuilder = Histogram.build() .name("servlet_request_seconds") .help("The time taken fulfilling servlet requests") .labelNames("context", "method"); if ((filterConfig.getInitParameter(BUCKET_CONFIG_PARAM) != null) && (!filterConfig.getInitParameter(BUCKET_CONFIG_PARAM).isEmpty())) { String[] bucketParams = filterConfig.getInitParameter(BUCKET_CONFIG_PARAM).split(","); double[] buckets = new double[bucketParams.length]; for (int i = 0; i < bucketParams.length; i++) { buckets[i] = Double.parseDouble(bucketParams[i].trim()); } servletLatencyBuilder.buckets(buckets); } else { servletLatencyBuilder.buckets(.01, .05, .1, .25, .5, 1, 2.5, 5, 10, 30); } servletLatency = servletLatencyBuilder.register(); Gauge.Builder servletConcurrentRequestBuilder = Gauge.build() .name("servlet_request_concurrent_total") .help("Number of concurrent requests for given context.") .labelNames("context"); servletConcurrentRequest = servletConcurrentRequestBuilder.register(); Gauge.Builder servletStatusCodesBuilder = Gauge.build() .name("servlet_response_status_total") .help("Number of requests for given context and status code.") .labelNames("context", "status"); servletStatusCodes = servletStatusCodesBuilder.register(); } }
/** * 从配置或context中获取值 * * @param filterConfig * @param propertyName * @param defaultValue * @return */ public final String getPropertyFromInitParams(final FilterConfig filterConfig, final String propertyName, final String defaultValue) { final String value = filterConfig.getInitParameter(propertyName); if (StringUtils.isNotBlank(value)) { logger.info("Property [{}] loaded from FilterConfig.getInitParameter with value [{}]", propertyName, value); return value; } final String value2 = filterConfig.getServletContext().getInitParameter(propertyName); if (StringUtils.isNotBlank(value2)) { logger.info("Property [{}] loaded from ServletContext.getInitParameter with value [{}]", propertyName, value2); return value2; } return defaultValue; }
public void init(FilterConfig filterConfig) throws ServletException { String config = filterConfig.getInitParameter("resources"); if (config != null && config.length() > 0) { String[] configs = Constants.COMMA_SPLIT_PATTERN.split(config); for (String c : configs) { if (c != null && c.length() > 0) { c = c.replace('\\', '/'); if (c.endsWith("/")) { c = c.substring(0, c.length() - 1); } resources.add(c); } } } }
@Test public void testAllowAllOrigins() throws ServletException, IOException { // Setup the configuration settings of the server Map<String, String> conf = new HashMap<String, String>(); conf.put(CrossOriginFilter.ALLOWED_ORIGINS, "*"); FilterConfig filterConfig = new FilterConfigTest(conf); // Object under test CrossOriginFilter filter = new CrossOriginFilter(); filter.init(filterConfig); Assert.assertTrue(filter.areOriginsAllowed("example.com")); }
public void init(FilterConfig filterconfig1) throws ServletException { // 读取文件 String path = XssFilter.class.getResource("/").getFile(); excludeUrls = readFile(path + "xssWhite.txt"); noticeUrls.add("notice!saveNotice"); noticeUrls.add("notice!updateNoticeById"); }
@Override protected Properties getConfiguration(String configPrefix, FilterConfig filterConfig) { Properties conf = new Properties(); conf.setProperty(AUTH_TYPE, DummyDelegationTokenAuthenticationHandler.class.getName()); return conf; }
@Override protected Properties getConfiguration(String configPrefix, FilterConfig filterConfig) { Properties conf = new Properties(); conf.setProperty(AUTH_TYPE, PseudoAuthenticationHandler.TYPE); return conf; }
/** * Returns the configuration to be used by the authentication filter * to initialize the authentication handler. * * This filter retrieves all HBase configurations and passes those started * with REST_PREFIX to the authentication handler. It is useful to support * plugging different authentication handlers. */ @Override protected Properties getConfiguration( String configPrefix, FilterConfig filterConfig) throws ServletException { Properties props = super.getConfiguration(configPrefix, filterConfig); //setting the cookie path to root '/' so it is used for all resources. props.setProperty(AuthenticationFilter.COOKIE_PATH, "/"); Configuration conf = HBaseConfiguration.create(); for (Map.Entry<String, String> entry : conf) { String name = entry.getKey(); if (name.startsWith(REST_PREFIX)) { String value = entry.getValue(); if(name.equals(REST_AUTHENTICATION_PRINCIPAL)) { try { String machineName = Strings.domainNamePointerToHostName( DNS.getDefaultHost(conf.get(REST_DNS_INTERFACE, "default"), conf.get(REST_DNS_NAMESERVER, "default"))); value = SecurityUtil.getServerPrincipal(value, machineName); } catch (IOException ie) { throw new ServletException("Failed to retrieve server principal", ie); } } LOG.debug("Setting property " + name + "=" + value); name = name.substring(REST_PREFIX_LEN); props.setProperty(name, value); } } return props; }
@Override public void init(FilterConfig filterConfig) throws ServletException { String s = filterConfig.getInitParameter("mimeTypes"); if (s != null) { StringTokenizer tok = new StringTokenizer(s, ",", false); while (tok.hasMoreTokens()) { mimeTypes.add(tok.nextToken()); } } }
protected Configuration getProxyuserConfiguration(FilterConfig filterConfig) { Map<String, String> proxyuserConf = KMSWebApp.getConfiguration(). getValByRegex("hadoop\\.kms\\.proxyuser\\."); Configuration conf = new Configuration(false); for (Map.Entry<String, String> entry : proxyuserConf.entrySet()) { conf.set(entry.getKey().substring("hadoop.kms.".length()), entry.getValue()); } return conf; }
static Map<String, String> initParamsMapFrom(FilterConfig config) { Map<String, String> result = new LinkedHashMap<>(); Enumeration<String> names = config.getInitParameterNames(); while (names.hasMoreElements()) { String name = names.nextElement(); result.put(name, config.getInitParameter(name)); } return result; }
@Override public void init(FilterConfig filterConfig) throws ServletException { filterConfig.getServletContext().setAttribute( DelegationTokenAuthenticationFilter.DELEGATION_TOKEN_SECRET_MANAGER_ATTR, secretManager); super.init(filterConfig); }
@Override final public void init(FilterConfig filterConfig) throws ServletException { this.setIgnoreStaticFile(parseBoolean(getPropertyFromInitParams(filterConfig, IGNORE_STATIC_FILE, Boolean.TRUE.toString()))); initStaticFileList(filterConfig); initExClusionPath(filterConfig); initInternal(filterConfig); }
@Override public void init(FilterConfig config) throws ServletException { this.filterConfig = config; notFilteredIPs = config.getInitParameter("notFilteredIPs");// 从web.xml中获取初始化参数 logger.debug("可以访问的IP:{}", notFilteredIPs); if (notFilteredIPs == null) notFilteredIPs = ""; }
public void init(FilterConfig config) throws ServletException { if (enable) { ProxyFilterConfig proxyFilterConfig = new ProxyFilterConfig( config.getServletContext()); proxyFilterConfig.setFilterName(name); proxyFilterConfig.setMap(map); filter.init(proxyFilterConfig); } }
/** {@inheritDoc} */ @Override public void init(FilterConfig config) throws ServletException { super.init(config); if (jira) { logForDebug("JavaMelody is monitoring JIRA"); } else if (confluence) { logForDebug("JavaMelody is monitoring Confluence"); } else if (bamboo) { logForDebug("JavaMelody is monitoring Bamboo"); } else { logForDebug( "JavaMelody is monitoring unknown, access to monitoring reports is not secured by JavaMelody"); } if (PLUGIN_AUTHENTICATION_DISABLED) { logForDebug("Authentication for monitoring reports has been disabled"); } // add atlassian maven public repository for atlassian sources final String mavenRepositories = System.getProperty("user.home") + "/.m2/repository,http://repo1.maven.org/maven2,https://maven.atlassian.com/content/repositories/public/"; Parameter.MAVEN_REPOSITORIES.setValue(mavenRepositories); final String analyticsDisabled = "javamelody.analytics-disabled"; if (System.getProperty(analyticsDisabled) != null || config.getServletContext().getInitParameter(analyticsDisabled) != null) { System.setProperty("javamelody.analytics-id", "disabled"); } }
/** * <p>Initializes the authentication filter and signer secret provider.</p> * It instantiates and initializes the specified {@link * AuthenticationHandler}. * * @param filterConfig filter configuration. * * @throws ServletException thrown if the filter or the authentication handler could not be initialized properly. */ @Override public void init(FilterConfig filterConfig) throws ServletException { String configPrefix = filterConfig.getInitParameter(CONFIG_PREFIX); configPrefix = (configPrefix != null) ? configPrefix + "." : ""; config = getConfiguration(configPrefix, filterConfig); String authHandlerName = config.getProperty(AUTH_TYPE, null); String authHandlerClassName; if (authHandlerName == null) { throw new ServletException("Authentication type must be specified: " + PseudoAuthenticationHandler.TYPE + "|" + KerberosAuthenticationHandler.TYPE + "|<class>"); } if (authHandlerName.toLowerCase(Locale.ENGLISH).equals( PseudoAuthenticationHandler.TYPE)) { authHandlerClassName = PseudoAuthenticationHandler.class.getName(); } else if (authHandlerName.toLowerCase(Locale.ENGLISH).equals( KerberosAuthenticationHandler.TYPE)) { authHandlerClassName = KerberosAuthenticationHandler.class.getName(); } else { authHandlerClassName = authHandlerName; } validity = Long.parseLong(config.getProperty(AUTH_TOKEN_VALIDITY, "36000")) * 1000; //10 hours initializeSecretProvider(filterConfig); initializeAuthHandler(authHandlerClassName, filterConfig); cookieDomain = config.getProperty(COOKIE_DOMAIN, null); cookiePath = config.getProperty(COOKIE_PATH, null); }
/** * Initialize "deny" parameter from web.xml. * * @param filterConfig A filter configuration object used by a servlet container * to pass information to a filter during initialization. */ public void init(final FilterConfig filterConfig) { final String denyParam = filterConfig.getInitParameter("denyUrls"); if (StringUtils.isNotBlank(denyParam)) { this.denyUrls = denyParam.split(","); } final String ignoreParam = filterConfig.getInitParameter("ignoreUrls"); if (StringUtils.isNotBlank(ignoreParam)) { this.ignoreUrls = ignoreParam.split(","); } }
/** * Initialize the filter * * @param config * FitlerConfig * @exception ServletException */ public void init(FilterConfig config) throws ServletException { // Save the context m_context = config.getServletContext(); // Setup the authentication context WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(m_context); ServiceRegistry serviceRegistry = (ServiceRegistry) ctx.getBean(ServiceRegistry.SERVICE_REGISTRY); setNodeService(serviceRegistry.getNodeService()); setAuthenticationService(serviceRegistry.getAuthenticationService()); setTransactionService(serviceRegistry.getTransactionService()); setPersonService((PersonService) ctx.getBean("PersonService")); // transactional and permission-checked m_authComponent = (AuthenticationComponent) ctx.getBean("authenticationComponent"); httpServletRequestAuthHeaderName = config.getInitParameter("httpServletRequestAuthHeaderName"); if(httpServletRequestAuthHeaderName == null) { httpServletRequestAuthHeaderName = "x-user"; } this.m_authPatternString = config.getInitParameter("authPatternString"); if (this.m_authPatternString != null) { try { m_authPattern = Pattern.compile(this.m_authPatternString); } catch (PatternSyntaxException e) { logger.warn("Invalid pattern: " + this.m_authPatternString, e); m_authPattern = null; } } }
@Override public void init(FilterConfig filterConfig) throws ServletException { logger.debug("init..."); long start = System.currentTimeMillis(); // 获取配置类 String configClass = filterConfig.getInitParameter("configClass"); createDispatcherConfig(configClass); ServletContext servletContext = filterConfig.getServletContext(); String realPath = servletContext.getRealPath("/"); logger.info("webRootPath:{}", realPath); Constants.me().setWebRootPath(new File(realPath)); config(); BeanFactory.getInject().injectMembers(ViewManager.me()); ViewManager.me().init(servletContext); String contextPath = servletContext.getContextPath(); logger.info("contextPath:{}", contextPath); contextPathLength = (contextPath == null || "/".equals(contextPath) ? 0 : contextPath.length()); actionHandler = BeanFactory.getBean(ActionHandler.class); actionHandler.init(contextPath); actionConfig.afterStart(); long end = System.currentTimeMillis(); logger.info("init {} ms", (end - start)); }
protected Configuration getProxyuserConfiguration(FilterConfig filterConfig) { Map<String, String> proxyuserConf = HttpFSServerWebApp.get().getConfig(). getValByRegex("httpfs\\.proxyuser\\."); Configuration conf = new Configuration(false); for (Map.Entry<String, String> entry : proxyuserConf.entrySet()) { conf.set(entry.getKey().substring("httpfs.".length()), entry.getValue()); } return conf; }
@Override public void init(FilterConfig filterConfig) throws ServletException { //nothing }