1

フォームベースの認証(JDBCレルムを使用)を使用して、EEアプリケーションのユーザーを認証しています。/home/*ユーザーがUSERまたはADMINの役割を持っている場合にのみアクセスできるセクションを作成しました。

すべてが正常に機能していますが、問題は、FacesContext.getCurrentInstance().getExternalContext().isUserInRole(role)-Methodを使用すると(たとえば、一部のUIコンポーネントをGUIに表示するかどうかを決定するために)、戻り値が常にfalseになることです。

メソッドが常にfalseを返す理由はまったくわかりません。私は何が欠けていますか?

最も紛らわしいのは、別のプロジェクト(同じglassfish-server-instance)でまったく同じ動作を実装し、そこで機能することです。

4

1 に答える 1

1

@DeclareRoles()問題が見つかりました。注釈を追加するのを忘れました。

アプリケーションのどこかで使用するロールを宣言する必要があります。たとえば、使用しているロールを宣言するSingletonEJBを使用します(DeclareRoles-Annotationを使用)。

例:

@Singleton
@LocalBean
@DeclareRoles({ "ADMIN", "USER" })
public class Application {
}
于 2012-11-26T15:19:17.903 に答える