java - Spring 安全: How to persist each anonymous user?

标签 java spring spring-security

  1. 我需要什么:

对于访问我网站的每个新用户,我都会创建一个 MyUser 对象(与此类由什么组成无关)并将其保存到数据库。

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

对我来说,它看起来几乎像匿名身份验证。所以我禁用了它并用我自己的过滤器替换:

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

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

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

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

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

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

感谢您的关注。每次我写下这句话时,版主都会将其删除。但我永远不会停止写它=)

最佳答案

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

关于java - Spring 安全: How to persist each anonymous user?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197429/

相关文章:

java - 根据 Activity 配置文件或 yml 属性值启用/禁用数据库连接

java - 启动服务器时出现异常 : java. lang.NoSuchMethodException : org. springframework.security.authentication.ProviderManager.<init>()

spring-boot - Spring 安全: Custom CSRF Implementation by extending CsrfRepository

java - Spring Security ACL - 具有 READ 权限的用户可以撤销自己的访问权限吗?

spring - 生成器类没有生成方法(名称 : 'build' ) - Jackson

spring-mvc - 使用 kerberos/spnego 身份验证的 spring 安全性

java - jsp无法使用响应重定向页面

java - 通过 Maven 运行 testng 测试时更改控制台输出

java - 使用 url redirect 更改部分 url

java - 循环并重复捕获异常