3

私はアプリケーションを開発しましたが、今まで、特定の画面のメニューオプションやボタンを表示/非表示にしないことで、画面へのアクセスを制限することに成功しています。しかし、現在の問題は、ユーザーがアドレスバーに url を入力したときに画面にアクセスできることです。

私はこれを行う最初の人ではないことを知っているので、ある種の標準的な慣行が必要です. 誰かがライブラリまたはこれを行う方法を知っている場合は、私に知らせてください。

ありがとうございました。

4

1 に答える 1

2

免責事項-私はこれを使用したことがないので、これがClojureにどのように変換されるかわかりません。

通常、ビューに応答するメソッドを承認ハンドラーで装飾します。このハンドラーは、認証バックエンドと通信する方法を知っています。現在のコンテキストからユーザー識別子(ユーザーID /ユーザー名など)を取得し、要求されたビューに対するユーザーの承認をバックエンドに照会します。

合格すると、ビューが表示されます。

拒否された場合は、ビジネスルール(およびセキュリティガイドライン)に基づいてアクションが実行されます。これらは、友好的な「おっと、ここでは許可されていません」のように単純な場合があります。アクションをログに記録してから、ユーザーのセッションを終了します。

アプリケーションのエンドポイント(URL)のセットが限られている場合は、ユーザーへのエンドポイントの静的マップを作成し、これをアクセス制御リスト(ACL)として使用できます。ただし、最近のほとんどのアプリケーションでは、ACLはさまざまなオブジェクトにわたって制御されます。エンドポイント(URL)は動的であるため、制限されません。たとえば、、/inventory/product/1など/user/admin/3

アップデート:

このリンクは、デコレータパターンの視覚的な図を提供します。

アップデート2:

承認ライブラリは、承認チェックを行うヘルパーを提供します(「このユーザーは表示を許可されていますか」)が、コードでの実装は個々のアプリケーションに任されています。

通常、1つ以上の認証ライブラリ(宣誓など)を使用します。ただし、承認部分は実装に任されています。

簡単なグーグルで、より関連性の高いサンドバーを使用してclojureWebアプリケーションを保護することができました。

于 2012-08-16T05:34:46.733 に答える