2017-11-03 12 views
0

私は、ユーザーがセッションを持つ必要があるスプリングブートセットアップで持っているいくつかのリソースを持っています。スプリングブート、セッションセキュリティ

今のところ、防御を必要とするこれらのエンドポイントはすべてこのように見えます。

@RequestMapping(value = "/SomeEndpoint", method = RequestMethod.POST) 
public ResponseEntity<SomePacket> Foot(@RequestBody Dummy dummy, 
                  HttpServletRequest request, 
                  HttpServletResponse response) throws IOException, RestSessionException { 
    if (session.getAttribute("clientId") == null) { 
     throw new RestSessionException("No Client"); 
    } 

Each.and.every.one.of.them ...

私は何をしたいのセッションで「のclientId」をチェックすると、私のコードベース全体で重複の量を減らすことです。私はWebSecurityConfigurerAdaptersについて読んだことがありますが、セッションの値を取得することではなく、流暢なインターフェースの周りをもっと回転させるようです。

WebSecurityConfigurerAdapterの特定のエンドポイントのセッションプロパティをどのようにチェックすることができますか?

ご協力いただきまして誠にありがとうございます。

+1

すべてのコントローラに追加する代わりに、代わりにインターセプタを使用できます。これは、一部のURLまたはすべての要求に対してのみ設定できます。 –

+0

私はインターセプターが大好きです。私はそれを試みることになると思います! –

答えて

0

WebSecurityConfigurerAdaptersは、春のセキュリティの実装で、エンドポイントの認可と認証の機能を提供します。 WebSecurityConfigurationAdapterの詳細については、this

を読んでください。フィルタを追加し、doFilterメソッドでclientIdを確認するために必要なロジックを適用するだけで、簡単に要件を達成できます。

関連する問題