我有一个名为Named和这样的SessionScoped的JSF控制器
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
@Named
@SessionScoped
public class SomeController {
...
将@RolesAllowed或@DenyAll添加到控制器无效。当此控制器调用具有@RolesAllowed批注的EJB时,它可以在这些bean调用上正常工作。
我正在使用jsf 2.2并将我的应用程序部署到Wildfy 8.1
答案 0 :(得分:4)
这是因为@RolesAllowed
和@DenyAll
在EJB上不在CDI Managed Bean上。尝试将您的控制器转换为CDI会话bean。
@Named
@SessionScoped
@Stateful
public class SomeController {
...
}
您应该能够在其上添加安全注释,因为您将拥有一个具有EJB和CDI功能的组件。