Spring安全:如何坚持每个匿名用户?

时间:2012-02-08 16:29:52

标签: java spring spring-security

  1. 我需要的是:
  2. 对于访问我网站的每个新用户,我创建了一个MyUser对象(这个类包含的内容并不重要)并将其保存到DB。

    我希望每次有相同sessionId的用户访问我的网站时都会使用此对象。

    对我来说,它看起来几乎像anonymousAuthentication。所以我禁用了它并替换为我自己的过滤器:

    <http auto-config="true">
        ...
        <anonymous enabled="false"/>        
        <custom-filter ref="userGeneratorFilter" position="ANONYMOUS_FILTER"/>
    </http>
    

    我认为securityContext包含以前经过身份验证的用户的主体,但它看起来像filterchain中的一个过滤器为每个请求手动添加它。

    换句话说,每次我进入我的UserGeneratorFilter.doFilter

    SecurityContextHolder.getContext().getAuthentication() == null;
    

    那么我如何理解是否需要创建一个新的MyUser对象或从数据库中获取现有的对象?

    PS。我认为我选择了一种错误的方式=(关于我的任务的几句话:我希望未经授权的用户对我的资源进行有限的访问,但是当他注册时我希望他输入的所有数据在未经授权的情况下被合并到他的正常状态帐户。

    感谢您的关注。每次我写这个句子主持人删除它。但我永远不会停止写它=)

2 个答案:

答案 0 :(得分:2)

只需设置一个不会过期的Cookie,标识用户的CookieIDVisitorID。当人们访问您的网站时检查此cookie,它应该识别用户。

答案 1 :(得分:0)

Spring安全性中有options告诉安全性应如何处理会话迁移,这可能会对您有所帮助。