已配置對(duì)象的后續(xù)處理
Spring Security的Java配置沒(méi)有公開(kāi)每個(gè)配置對(duì)象的每一個(gè)屬性莹弊,這簡(jiǎn)化了廣大用戶的配置。畢竟如果要配置每一個(gè)屬性翁潘,用戶可以使用標(biāo)準(zhǔn)的Bean配置趁冈。
雖然有一些很好的理由不直接暴露所有屬性,用戶可能仍然需要更多高級(jí)配置拜马,為了解決這個(gè)Spring Security引入了ObjectPostProcessor概念箱歧,用來(lái)替換java配置的對(duì)象實(shí)例。例如:如果你想在filterSecurityPublishAuthorizationSuccess里配置FilterSecurityInterceptor屬性一膨,你可以想下面一樣:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.withObjectPostProcessor(new ObjectPostProcessor<FilterSecurityInterceptor>() {
public <O extends FilterSecurityInterceptor> O postProcess(
O fsi) {
fsi.setPublishAuthorizationSuccess(true);
return fsi;
}
});
}