【问题标题】:Shiro and SessionContext CDI => "anonymous"Shiro 和 SessionContext CDI => “匿名”
【发布时间】:2014-01-15 18:21:00
【问题描述】:

我想在我的 EJB 容器中获取我当前的登录用户。 我使用 Shiro for Security 构建了一个 CDI - EJB Web 应用程序。

我现在的问题是,在我的 EJB 类中,sessionContext 每次都是“匿名的”

@Resource
private SessionContext sessionContext;

String userEmail = sessionContext.getCallerPrincipal().getName();

我不知道,自动设置 Shiro 还是应该设置 sessionContext? 有人可以帮帮我吗?

问题是来自 CDI 的连接 ---> EJB 或者为什么它是“匿名的”

【问题讨论】:

    标签: resources shiro sessioncontext


    【解决方案1】:

    @Resource 不是上下文感知的。您想改用@Inject。

    【讨论】:

    • @Inject 不起作用(在我的 glassfish4 实例中)。获取[glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=57 _ThreadName=admin-listener(4)] [timeMillis: 1399386171108] [levelValue: 1000] [[ Exception while loading the app : CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [SessionContext] with qualifiers [@Default] at injection point [[BackedAnnotatedField] @Inject private de.gfz.rz.idm.services.intern.impl.AccountServiceIntranetBean.sessionContext]
    • 你的项目是EE6还是EE7?
    • EE7 - 当前运行在最新的 GF 4.0.1 (build 5) 升级版本上
    猜你喜欢
    • 2018-06-15
    • 2014-02-19
    • 2019-01-06
    • 1970-01-01
    • 2015-10-28
    • 2013-10-30
    • 2013-09-01
    • 2012-09-18
    • 2014-10-13
    相关资源
    最近更新 更多