Status:
dao、サービス、コントローラー、ビューに関するコード例を含む包括的な回答を待っています。
spring 3 + hibernate 4 では、 http://www.cavalr.com/blog/Spring_3_and_Annotation_Based_Hibernate_4_Exampleのようなサービス、dao、コントローラー、ビュー (mvc シナリオ) で、何かを行う前に認証を行うのに適した場所です。例えば
行事:
- ユーザーはログインしていますか? (最初にセッションでチェックし、次にデータベースのユーザー名とパスワードの一致でチェックします)
セッションした?すべてのトランザクションで以前のセッションを取得し、セッションが行われていない場合は認証します。
トランザクションごとにさらに認証を行います。たとえば、データベースから値またはブール値を取得し、真かどうかを確認して (たとえば、このユーザーはさらにユーザーを追加できるか)、続行します。
ユーザーに権限がありますか? 認証が失敗した場合、ユーザーにどのように応答しますか?
対応方法:
a. エラーページにリダイレクトします(ただし、それは好きではありません)
b. エラー メッセージを表示して同じページにリダイレクトする (ok)
c. すべて ajax で行います。(最も推奨) ページのリロードやリダイレクトは行わず、認証のみを行います。
セッションおよびまたは
データベース
ajaxで同じページにエラーメッセージを送ります。
認証が成功した場合に進みます。
ロジックをどこに置くか?ダオ、サービス、コントローラーで? どのようなオプションがありますか?
誰かがサンプルコードを与えることができますか? 私はグーグルで検索しましたが、無関係な例を見つけました。解決策の 1 つが春のセキュリティであることは知っていますが、どう思いますか? 私の質問をすべてカバーするサンプルコードはありますか?
シナリオ例:
私のシナリオはこのようなものです。ユーザーが来て、データベースクエリは、アクセスできるボードを電話/リストします。彼がボードに入るとき。ボックスの権限はリストであり、読み取り可能なボックスのみが表示されます。その後、タスクと同じです。それらのそれぞれには、作成/読み取り/更新/削除のアクセス許可があり、ユーザーがアクセスするときに認識/取得されます。たとえば、ボード/ボックス/タスクを作成/読み取り/更新/削除しようとします。
現在、何百万ものボックス/タスクがあります。それぞれの読み込み許可は非常識かもしれませんか?
認証と承認を行う方法と場所がわかりません。daos、サービス、コントローラー、そして問題をエラーメッセージとしてビューに送信します。1 つの dao が別の dao を呼び出したり、1 つのサービスが別の dao やサービスを呼び出したりすることがあります。すべてまたはほとんどが認証エラーを引き起こす可能性があります。失敗した文字列を渡して、それに応じて配置する方法を教えてください。
ありがとう!