我目前正在为使用Spring Boot的网站编写评论系统,该系统将基于一个简单的REST API.
为了让人们删除或更新他们之前发布的评论,我想在Cookie中存储一个唯一的令牌来记住/识别它们.用户不要求为了发表评论注册.当用户删除cookie或其过期时,将无法获得删除/修改注释的权限.
当然可以自己使用过滤器来实现这样的功能,但是我想知道在Spring中是否有一种标准的方法(可能使用Spring Security)?我认为这是一种常见的情况,但我能找到的所有示例都包括身份验证信息,如用户名/密码.
这可以通过创建自定义实现来实现SecurityContextRepository
.
创建一个SecurityContextRepository
从cookie加载身份验证信息的实现.
创建一个实现,AuthenticationProvider
以检查cookie是否包含有效值.可以将前缀和/或后缀添加到cookie值,并且可以对值进行加密以确保真实性并防止冒充.
我有一个示例应用程序,演示了要实现的组件.该示例将身份验证信息存储在内存缓存中,但可以根据需要将其存储在HttpSession
任何其他数据存储中.代码在Scala中,但对Java程序员来说应该是可读的.