【问题标题】:How use @Ressource SessionContext right?如何正确使用@Ressource SessionContext?
【发布时间】:2015-07-02 14:40:46
【问题描述】:

我需要一个 bean 来使用 JAAS 注入 @Ressource SessionContext ctx。 使用 SessionContext 可以检查ctx.isCallerInRole("ROLE");的用户权限

但是什么是正确的 Bean 声明呢? @静态的? @无状态?和@SessionScope? 我需要为每个用户创建一个实例。

【问题讨论】:

    标签: ejb jaas


    【解决方案1】:

    我可以使用 SessionContext 检查有关 ctx.isCallerInRole("ROLE") 的用户权限吗?

    是的,你可以。

    但是什么是正确的 Bean 声明呢? @静态? @无状态?和@SessionScope?

    EJB 没有@SessionScope。你可以在@Statful/@Stateless bean 中注入SessionContext。这取决于你需要什么。通常,只要会话存在,用户实例就必须存在。 EJB 没有会话范围的 bean,因此它经常与 CDI(在此处阅读更多信息 CDI + EJB)或其他会话范围的 bean(如 Managed beans)混合使用。

    【讨论】:

    • 我如何保证为每个用户调用正确的 SessionContext?
    • 这是由 Java EE 规范保证的。有关会话的更多信息,请阅读 Web 服务器会话管理。这篇文章可能会有所帮助:stackoverflow.com/questions/10960131/…
    • 我的问题是,一个用户拥有另一个用户的 SessionContext。但现在我认为,这是 CDI Producer 的上下文问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 2020-12-04
    • 2012-07-12
    • 2013-01-21
    相关资源
    最近更新 更多