spring 具有 java 配置的安全自定义过滤器
spring security custom-filter with java configuration
如何在 java 配置中用自定义过滤器替换默认过滤器?在 XML 中,例如:
<bean id="myFilter" class="lalalal.MyFilter">
<property name="authenticationManager" ref="authenticationManager"/>
</bean>
<security:http auto-config="true">
<security:custom-filter ref="myFilter" position="FORM_LOGIN_FILTER"/>
</security:http>
关于 filterBefore、filterAfter 和默认过滤器继承我知道。
假设您对 Spring-security 的 Java 配置有大致的了解,添加过滤器相对简单 (general details of updating spring-security config to java here):
因此,在您的 WebSecurityConfigurerAdapter
实施中,执行如下操作:
@Configuration
@EnableWebSecurity
class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override protected void configure(HttpSecurity http) throws Exception {
//Custom security filters
http.addFilterBefore( myFilter(), BasicAuthenticationFilter.class );
//Rest of the security configuration goes here
...
}
这是一个非常简化的示例 - 但希望能提供足够的帮助 - 您可以在此处放置额外的安全配置(例如基于角色的限制、csrf、会话配置等),myFilter()
是另一种定义 bean 的方法在设置过滤器的问题中提及。还有一个 addFilterAfter() 方法,您可以选择在链中放置过滤器的位置。
Here is an example for API security that shows some custom filters being used.
如何在 java 配置中用自定义过滤器替换默认过滤器?在 XML 中,例如:
<bean id="myFilter" class="lalalal.MyFilter">
<property name="authenticationManager" ref="authenticationManager"/>
</bean>
<security:http auto-config="true">
<security:custom-filter ref="myFilter" position="FORM_LOGIN_FILTER"/>
</security:http>
关于 filterBefore、filterAfter 和默认过滤器继承我知道。
假设您对 Spring-security 的 Java 配置有大致的了解,添加过滤器相对简单 (general details of updating spring-security config to java here):
因此,在您的 WebSecurityConfigurerAdapter
实施中,执行如下操作:
@Configuration
@EnableWebSecurity
class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override protected void configure(HttpSecurity http) throws Exception {
//Custom security filters
http.addFilterBefore( myFilter(), BasicAuthenticationFilter.class );
//Rest of the security configuration goes here
...
}
这是一个非常简化的示例 - 但希望能提供足够的帮助 - 您可以在此处放置额外的安全配置(例如基于角色的限制、csrf、会话配置等),myFilter()
是另一种定义 bean 的方法在设置过滤器的问题中提及。还有一个 addFilterAfter() 方法,您可以选择在链中放置过滤器的位置。
Here is an example for API security that shows some custom filters being used.