JSF Controller忽略@RolesAllowed批注

Chr*_*ike 2 jsf java-ee cdi jsf-2

我有一个这样命名和SessionScoped的JSF控制器

import javax.inject.Named;
import javax.enterprise.context.SessionScoped;

@Named
@SessionScoped
public class SomeController {
...
Run Code Online (Sandbox Code Playgroud)

将@RolesAllowed或@DenyAll添加到控制器无效。当此控制器调用具有@RolesAllowed批注的EJB时,它将在那些bean调用上正常工作。

我正在使用jsf 2.2并将我的应用程序部署到Wildfy 8.1

Ant*_*and 5

这是因为@RolesAllowed@DenyAll在EJB上而不在CDI托管Bean上处于活动状态。尝试将您的控制器转换为CDI会话Bean。

@Named
@SessionScoped
@Stateful
public class SomeController {
...
}
Run Code Online (Sandbox Code Playgroud)

您应该能够在上面添加安全注释,因为您将拥有一个具有EJB和CDI功能的组件。