1

Hibernate Web アプリケーションを使用してStruts2を開発しています。私は、Ian Roughley 著の Practical Apache Struts 2 web 2.0 projectsという本を読んでいます。その本の中で、著者は、Web リソースにアクセスするための認証を行う 3 つの方法を示しています。Acegiライブラリを使用するコンテナ ベース、およびカスタムモードです。

したがって、私のアプリには少なくとも 3 つのモードがあり、これに応じてアクションにアクセスする必要があります。

カスタムモードを使用するのは、それが私に最も適しているためです ( Struts2で開発していることを考慮して)。

カスタム モードでは、struts.xmlアクションに aSecurityInterceptorおよび aを使用します。アクションクラスの先頭に制限したいアノテーションを追加すると、認証が機能します。SecureStack@RequiresAuthentication

RequiresAuthentication本によって与えられた注釈の定義は次のとおりです。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresAuthentication {
}

したがって、作成者は、より複雑な役割ベースのセキュリティが必要な場合は、アクションを呼び出すことができる役割を指定するように注釈を拡張できることを明確に残しました。したがって、この注釈を 3 つ以上のモードに実装する方法を知りたいです。

4

1 に答える 1

0

そのため、いくつかの変数をカスタム アノテーション (ロールなど) に追加し、インターセプターでその値を確認します。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresAuthentication {
   public String[] roles();
}

ただし、カスタム ソリューションの代わりに、何らかのセキュリティ フレームワーク (Spring Security、Apache Shiro など) の使用を検討する必要があります。

于 2012-11-16T11:55:55.173 に答える