0

アプリケーションで Spring Security を使用しています。

全ページ確保しました。ただし、システム ユーザーと匿名ユーザーの両方が使用できる URL がいくつか必要です。

ただし、匿名ユーザーは URL に直接アクセスできません。彼は一意のトークンでリンクを取得し、このトークンが有効な場合はいくつかの URL にアクセスできます。私がやりたいことは次のとおりです。

  1. コントローラーで、URL のトークンが有効かどうかを確認します
  2. そうである場合は、事前定義されたログインとパスワードを使用して、プログラムでシステム内のユーザーを認証します。このユーザーは、必要な URL にアクセスする権限を持つように構成されます。

問題は、トークンが有効な場合、コントローラーでいくつかのロールを使用してプログラムでユーザー認証を実行する正しいアプローチですか? これは安全なアプローチですか?

4

2 に答える 2

0

セキュリティは側面です。アスペクトをメインコード(コントローラー)から切り離して、コードの重複を減らし、柔軟性を向上させることができます。認証コードをコントローラーから新しいフィルターに移動します(このフィルターがスプリングセキュリティフィルターチェーンの後に実行されることを確認してください)。web.xml(ゼロ行のコード)を介して新しいURLを保護できるようになります。

于 2012-12-20T14:43:02.987 に答える
0

これを行うより良い方法は次のとおりだと思います。

  • 共有操作をサービス層に移動する
  • それらの匿名ユーザーのコントローラーを定義し、その権限を匿名として作成します
  • このコントローラのトークンの有効性を確認してください
  • 有効な場合は、いくつかのサービス メソッドを呼び出して操作を実行します。
  • このコントローラで結果をレンダリングします
于 2012-12-21T07:14:14.450 に答える