1

アプリケーションに役割ベースのアクセス制御を実装して、Struts2.3アプリケーションを安全にしたいと思います。

以下は私が探している機能です:

  1. セッションタイムアウトを使用したユーザー認証とセッション管理。
  2. ユーザーの役割に基づく承認。

私はこのトピックについてたくさん検索しましたが、適切な解決策を見つけることができません。

アプリケーションにAcegiセキュリティを実装しましStruts1.2たが、にセキュリティを実装するための適切なソリューションが見つかりませんでしたStruts2.3

これに関するポインタは本当に役に立ちます。

ありがとう

4

2 に答える 2

2

Acegi SecuritySpring Security2007年からと呼ばれるようになりました。

あなたのすべての質問はここで答えられます。

ドキュメントは複数のページにまたがるので、確認する必要があるトピックについて簡単に説明します。

ユーザー認証:他の認証プロバイダーの使用

セッション管理:セッション管理

承認: Spring Security のアクセス制御 (承認)

于 2012-06-02T17:02:46.070 に答える
0

認証 : アプリケーション サーバーとの LDAP 統合が進むべき道です

openDJ をダウンロードし、ユーザーと単一のグループを設定し、ユーザーをグループに割り当てます

例としてglassfishを使用して、glassfish LDAPレルムを設定し、レルムがLDAPサーバーを指すようにします

glassfish.xml と web.xml を設定します。LDAP グループに従ってディレクトリ ベースの制限を指定します。したがって、異なる LDAP ユーザーが Web アプリの異なる領域にアクセスできます。

セキュリティで保護されたフォルダーを作成し、ログイン ページを除いてすべての Web ページをそれらのフォルダーに配置します。

ポイントは、キーワードj_security_checkを介してログインを使用すると、ldapでglassfish認証を使用して、安全なフォルダー内のものにアクセスできるようにすることです

欠点は、ldap に権限の概念がないことです

ユーザー権限 :

       for well defined permission access. you have to implement on you own 

許可テーブルはすべての許可アクティビティを保持します

すでに持っている必要があるユーザーテーブル

役割テーブルはすべての役割を定義します

役割とユーザーの多対多の関係

役割とパーミッションの多対多の関係

user <-->    role <-> permission

ユーザーのためにアクションを実行したいときはいつでも、現在のユーザー名を取得します

セッションから、このユーザーが持っているロールのリストを取得します

次に、ユーザーロールが持っている権限を取得します

次に、アクションをチェックして、それが許可されているかどうかを確認します。

これは 1 つの方法にすぎません。LDAPがあなたに能力を与えてくれることを願っています

パーミッションを定義するには、明らかにそうではありません

于 2012-06-02T10:30:12.123 に答える