Java ejb方法的声明性安全性
我对JEE7完全是个初学者。 我试图使用Primefaces 4.0和Glassfish 4.0为企业应用程序实现一个安全模型,但当我使用托管bean中的注释调用ejb的安全方法时,它不会检查该方法的安全性。我想在levelsweb和ejb中创建安全性:我已经实现了web上的第一部分,但另一部分是针对ejb方法的,这是我的问题。 有什么帮助吗 这是托管bean buttonControlles.javaJava ejb方法的声明性安全性,java,jsf,jakarta-ee,primefaces,jsf-2.2,Java,Jsf,Jakarta Ee,Primefaces,Jsf 2.2,我对JEE7完全是个初学者。 我试图使用Primefaces 4.0和Glassfish 4.0为企业应用程序实现一个安全模型,但当我使用托管bean中的注释调用ejb的安全方法时,它不会检查该方法的安全性。我想在levelsweb和ejb中创建安全性:我已经实现了web上的第一部分,但另一部分是针对ejb方法的,这是我的问题。 有什么帮助吗 这是托管bean buttonControlles.java @Named @RequestScoped public class buttonCon
@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;
}
}
我已经解决了这个问题,因为我实例化了类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", ""));
}
}