春のセキュリティバージョン:5.0.5.RELEASE
1、入口类:org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration
关键方法:org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration#setFilterChainProxySecurityConfigurer
アプリケーションの起動時に、ブレークポイントは3つのorg.springframework.security.config.annotation.SecurityConfigurerのカスタム構成を見ることができるここに入力します。
次のコードは、その後、割り当てられたWebSecurity社を設定します
(SecurityConfigurer <フィルタ、WebSecurity社> webSecurityConfigurer:webSecurityConfigurers)用{ webSecurity.apply(webSecurityConfigurer)。 }
別の入力方法、org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration#springSecurityFilterChain;
ここでは、ビルドWebSecurity社を見ることができ、
1 公共フィルタspringSecurityFilterChain()がスロー例外{ 2 ブール hasConfigurers =のwebSecurityConfigurers!= NULL 3 &&を!webSecurityConfigurers.isEmpty(); 4 もし(!hasConfigurers){ 5 WebSecurityConfigurerAdapterアダプタ= objectObjectPostProcessor 6 .postProcess(新しいWebSecurityConfigurerAdapter(){ 7 })。 8 webSecurity.apply(アダプタ) 9 } 10 リターンwebSecurity.build(); 11 }
webSecurity.buildを()に従って、org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder#doBuildを入力してください。
1 保護された 最終的な O doBuild()がスロー例外{ 2 同期(configurers){ 3 buildState = BuildState.INITIALIZINGと、 4 5 beforeInit()。 6 のinit(); 7 8 buildState = BuildState.CONFIGURING。 9 10 beforeConfigure()。 11 設定(); 12 13 buildState = BuildState.BUILDING。 14 15 O結果= performBuild()。 16 17 buildState = BuildState.BUILT。 18 19 リターン結果。 20 } 21 }
doBuild方法は、三SecurityConfigurer設定されたアプリケーションを処理するために使用されます。
参考:https://www.jianshu.com/p/0c54788c94f3