JSF Controller忽略@RolesAllowed注释

时间:2015-02-27 18:53:08

标签: jsf java-ee jsf-2 cdi

我有一个名为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

1 个答案:

答案 0 :(得分:4)

这是因为@RolesAllowed@DenyAll在EJB上不在CDI Managed Bean上。尝试将您的控制器转换为CDI会话bean。

@Named
@SessionScoped
@Stateful
public class SomeController {
...
}

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