spring boot security設定についてアドレスを無視すると有効になりません.

1612 ワード

最近、マイクロサービスの改造を試してみましたが、このような問題が発生しました.すべての要求はspring cloud gatewayで認証された後、バックエンドデータ側のサービスにアクセスします.しかし、協調機構のフィードバックが必要です.security認証を行ったので、最終的な方案はコールアドレスを無視してauth認証を行うことです.最終securityの主要コードは以下の通りです.
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

	@Override
	public void configure(WebSecurity web) throws Exception {
		web.ignoring().antMatchers("/v1/prNotifyBack");
	}


	@Override
	protected void configure(HttpSecurity http) throws Exception {
		/**                        */
		http.httpBasic().and().authorizeRequests().anyRequest().fullyAuthenticated();
		/**   Rest           ,       */
		http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
		http.csrf().disable();
	}
}
この過程でいくつかの問題が発生しました.
  • ウェブSecurityConfigrer Adapterを引き継いでconfigur方法を書き直します.この方法は注意してください.彼は二つの異なるパラメータを持っています.HttpSecurityとWebSecurityの役割は違っています.WebSecurityは主にグローバルのルールを無視します.HttpSecurityは主に権限制御規則です.だから最初にHttpSecurityを使うのは住所を無視する目的に達しないです.
  •  protected void configure(HttpSecurity http){.......}
     public void configure(WebSecurity web) {.........}
    
    WebSecurityグローバル要求は、ルール構成(例えば、静的ファイル、例えば登録ページ)、グローバルHttpFirewall構成、debug構成、グローバルSecurityFilterChin配置、prive geevalutor、expressitionHandler、securityInterceptor、HttpSecurityデバイスの権限制御構成規則を無視する.
  • 問題を無視します.
    web.ignoring().antMatchers("/pr/v1/prNotifyBack");
    
    上記のコードが/prを持っていれば、有効になりません.アクセスは依然として401エラーが発生します.prは設定されたプロジェクトパスです.しかし、プロジェクトパスを持っていると効果がないので、この問題には疑問があります.
    server:port:8089 servlet:context-path:/pr