【问题标题】:Get all Active Session in spring security在 Spring Security 中获取所有活动会话
【发布时间】:2018-01-17 07:13:39
【问题描述】:

我有自定义身份验证提供程序和自定义身份验证处理程序,用于 Spring 安全性和自定义用户类,它实现了 UserDetails 接口。 现在我想要我的应用程序中的所有活动用户列表。 我在 web.xml 中添加了以下代码

<listener>
<listener-class>
    org.springframework.security.web.session.HttpSessionEventPublisher
</listener-class>
</listener>

app-context.xml 中的以下代码

<bean id="sessionRegistry"
    class="org.springframework.security.core.session.SessionRegistryImpl" />

security.xml 中的以下代码

<session-management>
        <concurrency-control
            session-registry-alias="sessionRegistry"  />
    </session-management>

在我的控制器中我使用过

@Autowired
SessionRegistry sessionRegistry;
List<Object> allPrincipal = sessionRegistry.getAllPrincipals();
    System.out.println(sessionRegistry.getAllPrincipals().size());

System.out.println 的结果是 0。

【问题讨论】:

    标签: java spring spring-security


    【解决方案1】:

    也许这可能是一个重复的问题:sessionRegistry is empty when I use ConcurrentSessionControlAuthenticationStrategy instead of ConcurrentSessionControlStrategy,但最常见的问题通常是加载弹簧上下文两次。检查您是否也没有基于注释的上下文和 applicationContext.xml。

    【讨论】:

    • 在我的控制器中,我还使用了@autowired SessionRegistry sessionRegistry;这不是正确的方法吗?
    猜你喜欢
    • 2019-01-30
    • 1970-01-01
    • 2019-08-26
    • 2012-02-09
    • 2018-04-26
    • 2016-12-31
    • 1970-01-01
    • 2012-12-28
    • 2019-01-29
    相关资源
    最近更新 更多