【问题标题】:declarative security for ejb methodsejb 方法的声明式安全性
【发布时间】:2014-06-08 09:51:13
【问题描述】:

我完全是 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;
    }
}

【问题讨论】:

    标签: java jsf jakarta-ee primefaces jsf-2.2


    【解决方案1】:

    我已经解决了这个问题,因为我实例化了 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", "")); 
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      相关资源
      最近更新 更多