1

我正在使用基于表单的身份验证(使用 JDBC 领域)来验证我的 EE 应用程序中的用户。我创建了一个/home/*部分,只有当用户处于角色 USER 或 ADMIN 时才能访问该部分。

一切正常,但问题是当我使用FacesContext.getCurrentInstance().getExternalContext().isUserInRole(role)-Method 时(例如决定是否在 gui 上显示某些 UI 组件),返回值始终为 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 回答