在Spring中区分未经身份验证的用户

pvo*_*orb 10 java spring spring-mvc spring-security spring-boot

我目前正在为使用Spring Boot的网站编写评论系统,该系统将基于一个简单的REST API.

为了让人们删除或更新他们之前发布的评论,我想在Cookie中存储一个唯一的令牌来记住/识别它们.用户要求为了发表评论注册.当用户删除cookie或其过期时,将无法获得删除/修改注释的权限.

当然可以自己使用过滤器来实现这样的功能,但是我想知道在Spring中是否有一种标准的方法(可能使用Spring Security)?我认为这是一种常见的情况,但我能找到的所有示例都包括身份验证信息,如用户名/密码.

man*_*ish 6

这可以通过创建自定义实现来实现SecurityContextRepository.

  1. 创建一个SecurityContextRepository从cookie加载身份验证信息的实现.
  2. 创建一个实现,AuthenticationProvider以检查cookie是否包含有效值.可以将前缀和/或后缀添加到cookie值,并且可以对值进行加密以确保真实性并防止冒充.

我有一个示例应用程序,演示了要实现的组件.该示例将身份验证信息存储在内存缓存中,但可以根据需要将其存储在HttpSession任何其他数据存储中.代码在Scala中,但对Java程序员来说应该是可读的.