【发布时间】:2014-01-06 19:21:13
【问题描述】:
根据this one之类的文章,完全可以不用修改任何xml文件就可以使用Spring。所以在不修改任何 XML 文件的情况下,我尝试使用 SessionRegistry 访问所有当前登录的用户,就像 here 一样。到目前为止,我尝试过的是,首先,创建一个像这样的 Bean:
@Configuration
public class SomeClass {
[...]
@Bean
SessionRegistry sessionRegistry() {
return new SessionRegistryImpl();
}
[...]
}
然后在我的控制器中注入 Bean:
@Controller
public class SomeController {
@Resource(name = "sessionRegistry")
private SessionRegistryImpl sessionRegistry;
@RequestMapping(value = { "/"})
public String list() {
List<Object> principals = sessionRegistry.getAllPrincipals();
}
[...]
}
但是每当我打印出principals 时,我都会得到一个空列表。所以我的假设可能是,仅仅按照我的方式创建 Bean 是不够的。但为什么?您对如何继续有任何建议?
【问题讨论】:
-
什么是
SessionRegistryImpl? -
它是
org.springframework.security.core.session.SessionRegistryImpl -
我相信这是一个应该由 Spring security 管理的类,而不是你。显然,当您没有添加任何内容时调用
getAllPrincipals将返回一个空列表。 -
好吧,我只是按照使用该类的本教程(krams915.blogspot.de/2010/12/spring-security-mvc-querying.html)进行操作。
-
本教程似乎不仅仅是声明一个
SessionRegistryImplbean。你做了所有这些吗?它似乎需要一个ConcurrentSessionFilterbean 和一堆其他配置。
标签: xml spring session javabeans