我是JEE 7的初学者。 我正在尝试使用(Primefaces 4.0和Glassfish 4.0)为企业应用程序实现安全模型,但是当我使用来自托管bean的注释调用ejb'安全方法时,它不会检查方法的安全性。我想在两个级别(web和ejb)中创建安全性:我已经实现的Web上的第一部分,但另一部分是ejb方法是我的问题。 任何帮助??
这是托管bean(buttonControlles.java)
@Named
@RequestScoped
public class buttonController {
mySec myClass;
public buttonController(){
myClass = new mySec();
}
public void adminMethod()
{
if(myClass.ifManager())
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Hello Manager", ""));
}
}
,ejb类是MySec.java
@DeclareRoles({"admin","users","manager"})
@Stateless public class mySec {
@RolesAllowed("manager")
public boolean ifManager()
{
return true;
}
}
答案 0 :(得分:0)
我已经解决了问题,因为我实例化了MySec.java类 它必须在未实例化的托管bean中注入
@Named
@RequestScoped
public class buttonController {
@EJB mySec myClass;
public buttonController(){
}
public void adminMethod()
{
if(myClass.ifManager())
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Hello Manager", ""));
}
}