JWTトークンを使用して休止/ステートレスAPIを保護するためにスプリングセキュリティを使用しようとしています。私が見てきた研究から、春のセキュリティセッション管理をオフにしてから、ユーザーのログインやjwtトークンのチェックを行うカスタムフィルタを追加する必要があります。スプリングセキュリティとスプリングブートを使用したフィルタの順序付け
私が気にする問題は、フィルタを追加すると、必要なエンドポイントだけでなく、すべてのフィルタが実行されることです。私は、ログインエンドポイントを開くだけでなく、保護する必要のない登録と参照データを容易にするいくつかのものを開く必要があります。
@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/api/user").permitAll()
.anyRequest().authenticated().and()
.addFilterBefore(new StatelessAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
;
}
}
すべてのStatelessAuthenticationFilterは「ここに」印刷されます。私はあなたがlocalhost:8080/api/orderに行くときにそのメッセージプリントを見ることを期待しているだけですが、localhost:8080/api/userに行くと表示されます。
この現象を起こす方法はありますか?
かかわら
のconfigure(WebSecurity社)メソッドをオーバーライドしてしまった、それが働きました!また、configure(Websecurity)メソッドをオーバーライドし、ignoring()メソッドを使用してエンドポイントを無視できることも確認しました。どの方法が好ましいかわからない。 – tfecw