下面列出了怎么用org.springframework.boot.context.embedded.FilterRegistrationBean的API类实例代码及写法,或者点击链接到github查看源代码。
@Bean
@ConditionalOnExpression("${in.clouthink.daas.sbb.support.cors.enabled:true}")
@Autowired
public FilterRegistrationBean filterRegistrationBean(CorsSupportProperties corsSupportProperties) {
final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
final CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowCredentials(corsSupportProperties.isAllowCredentials());
corsConfiguration.addAllowedOrigin(corsSupportProperties.getAllowOrigin());
corsConfiguration.addAllowedHeader(corsSupportProperties.getAllowHeader());
corsConfiguration.addAllowedMethod(corsSupportProperties.getAllowMethod());
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
CorsFilter corsFilter = new CorsFilter(urlBasedCorsConfigurationSource);
FilterRegistrationBean registration = new FilterRegistrationBean(corsFilter);
registration.addUrlPatterns("/*");
registration.setOrder(corsSupportProperties.getOrder());
return registration;
}
@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() {
}
});
}
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setForceEncoding(true);
characterEncodingFilter.setEncoding("UTF-8");
registrationBean.setFilter(characterEncodingFilter);
return registrationBean;
}
@Bean
public FilterRegistrationBean httpMethodFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(httpMethodFilter());
registration.addUrlPatterns("/*");
registration.setName("httpMethodFilter");
registration.setOrder(Ordered.HIGHEST_PRECEDENCE + 1);
return registration;
}
@Bean
public FilterRegistrationBean httpMethodFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(httpMethodFilter());
registration.addUrlPatterns("/*");
registration.setName("httpMethodFilter");
registration.setOrder(Ordered.HIGHEST_PRECEDENCE + 1);
return registration;
}
@Bean(name = "shiroFilter")
@DependsOn("securityManager")
@ConditionalOnMissingBean
public FilterRegistrationBean filterRegistrationBean(SecurityManager securityManager) throws Exception {
FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
//该值缺省为false,表示生命周期由SpringApplicationContext管理,设置为true则表示由ServletContainer管理
filterRegistration.addInitParameter("targetFilterLifecycle", "true");
filterRegistration.setFilter((Filter) getShiroFilterFactoryBean(securityManager).getObject());
filterRegistration.setEnabled(true);
filterRegistration.addUrlPatterns("/*");
return filterRegistration;
}
@Bean
public FilterRegistrationBean jwtFilter() {
final FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new JwtFilter());
registrationBean.setInitParameters(Collections.singletonMap("services.auth", authService));
registrationBean.addUrlPatterns("/protected-resource");
return registrationBean;
}
@Bean
@ConditionalOnProperty(value = "l10n.security.oauth2.enabled", havingValue = "true")
public FilterRegistrationBean oauth2ClientFilterRegistration(OAuth2ClientContextFilter filter) {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(filter);
registration.setOrder(-100);
return registration;
}
@Bean
public FilterRegistrationBean domainValidateFilter() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
Supplier<String> expectedDomainName = () -> {
// toLowerCase() to match metaServerConfig retrieve info
String dcName = FoundationService.DEFAULT.getDataCenter().toLowerCase();
DcInfo dcInfo = metaServerConfig.getDcInofs().get(dcName);
return dcInfo.getMetaServerAddress();
};
DomainValidateFilter filter = new DomainValidateFilter(()->metaServerConfig.validateDomain(), expectedDomainName);
registrationBean.setFilter(filter);
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
@Bean
public FilterRegistrationBean catFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new CatFilter());
bean.setName("cat-filter");
bean.addUrlPatterns("/*");
bean.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.FORWARD);
return bean;
}
@Bean
public FilterRegistrationBean monetaPerformanceFilter() {
FilterRegistrationBean registration =
new FilterRegistrationBean(new MonetaPerformanceFilter(),
monetaServlet(), monetaTopicListServlet());
return registration;
}
@Bean
public FilterRegistrationBean reportCorrelationFilter() {
FilterRegistrationBean registration =
new FilterRegistrationBean(new RequestCorrelationFilter(),
monetaServlet(), monetaTopicListServlet());
return registration;
}
@Bean
public FilterRegistrationBean securityHeadersFilter(@Value("${pds.piwik.url}") String urlPiwik) {
return filter(2, new OncePerRequestFilter() {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
filterChain.doFilter(request, response);
response.setHeader("X-XSS-Protection", "0");
response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Content-Security-Policy", "script-src: 'self' 'unsafe-inline' '" + urlPiwik + "' 'barra.brasil.gov.br'; default-src: 'self'");
}
});
}
@Bean
public FilterRegistrationBean loggingFilterRegistration() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(loggingFilter());
registrationBean.setUrlPatterns(Collections.singletonList("/*"));
registrationBean.setName("LoggingFilter");
return registrationBean;
}
@Bean
public FilterRegistrationBean requestCorrelationFilterBean(RequestCorrelationFilter correlationFilter) {
final FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
filterRegistration.setFilter(correlationFilter);
filterRegistration.setMatchAfter(false);
filterRegistration.setDispatcherTypes(
EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ASYNC));
filterRegistration.setAsyncSupported(true);
filterRegistration.setOrder(Ordered.HIGHEST_PRECEDENCE);
return filterRegistration;
}
@Bean
public FilterRegistrationBean securityFilterChain(@Qualifier(AbstractSecurityWebApplicationInitializer.DEFAULT_FILTER_NAME) Filter securityFilter) {
FilterRegistrationBean registration = new FilterRegistrationBean(securityFilter);
registration.setOrder(Integer.MAX_VALUE - 1);
registration.setName(AbstractSecurityWebApplicationInitializer.DEFAULT_FILTER_NAME);
return registration;
}
@Bean
public FilterRegistrationBean PostAuthorizationFilterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(postAuthorizationFilter);
registrationBean.setOrder(Integer.MAX_VALUE);
return registrationBean;
}
@Bean
public FilterRegistrationBean ticketFilter(Iterator<UUID> tickets) {
return filter(0, new TicketFilter(tickets));
}
@Bean
public FilterRegistrationBean loggingFilter() {
return filter(1, new LoggingFilter());
}
@Bean
public FilterRegistrationBean dandelionFilterRegistrationBean() {
return new FilterRegistrationBean(new DandelionFilter());
}
@Bean
public FilterRegistrationBean datatableFilterRegistrationBean() {
return new FilterRegistrationBean(new DatatablesFilter());
}
@Bean
public FilterRegistrationBean hiddenFilterRegistrationBean() {
return new FilterRegistrationBean(new HiddenHttpMethodFilter());
}