我想禁用安全链中的一个Spring Security过滤器。
我已经看到了阻止Spring Boot注册servlet筛选器的问题--接受应该有效,但不幸的是不行。
使用代码:
@Bean
public FilterRegistrationBean registration(AnonymousAuthenticationFilter filter) {
FilterRegistrationBean registration = new FilterRegistrationBean(filter);
registration.setEnabled(false);
return registration;
}
春靴会及时宣布没有排位豆,可悲:
原因:org.springframework.beans.factory.NosuchBeanDefinitionException:找不到依赖项得[org.springframework.security.web.authentication.anonymousauthenticationfilter]类型得合格bean:需要至少一个符合此依赖项自动候选条件得bean.依赖项批注:{}
创建另一个bean后:
@SuppressWarnings("deprecation") // Oh, there be dragons
@Bean
public AnonymousAuthenticationFilter anonymousAuthenticationFilter() {
return new AnonymousAuthenticationFilter();
}
我被攻击了
原因:java.lang.IllegalArgumentException:[Assertion failed]-此字符串参数必须有长度;不能为空或为空
这是完全不稳定的;afterPropertiesSet()
方法https://github.com/spring-projects/spring-security/blob/master/web/src/main/java/org/springframework/security/web/authentication/anonymousauthenticationfilter.java中的assert
阻止了我使用默认构造函数。使用另一种方法:
@Bean
public AnonymousAuthenticationFilter anonymousAuthenticationFilter() {
// it will be disabled anyway so...
return new AnonymousAuthenticationFilter("_", new Object(), new ArrayList<GrantedAuthority>());
}
一切都好得多:
信息4916---[ost-startStop-1]O.S.B.C.Embedded.FilterRegistrationBean:未注册筛选器anonymousAuthenticationFilter(已禁用)
调试4916---[ost-startStop-1]o.security.web.FilterChainProxy:正在初始化筛选器“Spring SecurityFilterChain”
调试4916---[ost-startStop-1]o.security.web.FilterChainProxy:筛选器“Spring SecurityFilterChain”配置成功
但在访问了一些资源后,我得到了:
调试4916---[nio-8080-exec-3]O.Security.web.filterChainProxy:/user位于附加筛选器链中13个位置的第10个位置;正在激发筛选器:“AnonymousAuthenticationFilter”
调试4916---[nio-8080-exec-3]O.S.S.W.A.AnonymousAuthenticationFilter:使用匿名令牌填充SecurityContextHolder:'org.springframework.security.Authentication.AnonymousAuthenticationToken@90572420:principal:AnonymousUser;全权证书:[受保护];已认证:真实;详细信息:org.springframework.security.web.authentication.webauthenticationdetails@255f8:RemoteIpAddress:127.0.0.1;SessionID:6B9D974A4634548750FE78C18F62A6B0;授予的权限:role_anonymous'
由于某种原因,AnonymousAuthenticationFilter仍在工作。问题是:在Spring Boot应用程序中有没有一种方法可以禁用这样的过滤器?
Spring Security捆绑了HttpSecurity
配置中的所有过滤器。要禁用匿名身份验证,请使用以下操作:
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.anonymous().disable()
...
}
...
}
如果希望禁用Spring Security中的所有默认值,可以将true传递到父类构造函数中以禁用默认值。例如:
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
public SecurityConfig() {
super(true);
}
...
}
问题内容: 有一个Spring Boot WebMVC应用程序,还有一个从AbstractPreAuthenticatedProcessingFilter继承的bean,我将其显式添加到Spring Security过滤器链中的特定位置。我的Spring Security配置如下所示: 安全配置有效。问题是,因为PreAuthenticationFilter类继承自AbstractPreAuthe
void register_prefilter(mixed function) Use this to dynamically register prefilters to run templates through before they are compiled. See template prefilters for more information on how to setup a pr
void register_postfilter(mixed function) Use this to dynamically register postfilters to run templates through after they are compiled. See template postfilters for more information on how to setup a
void register_outputfilter(mixed function) Use this to dynamically register outputfilters to operate on a template's output before it is displayed. See template output filters for more information on
本文向大家介绍php防止sql注入之过滤分页参数实例,包括了php防止sql注入之过滤分页参数实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php防止sql注入中过滤分页参数的方法。分享给大家供大家参考。具体分析如下: 就网络安全而言,在网络上不要相信任何输入信息,对于任何输入信息我们都必须进行参数过滤。对此,我们先来看看下面的实例: 其中: 这两句判断了参数是否为数字。防止非法字符
我不明白两者之间有什么区别,为什么我要用一个而不是另一个?