在Tomcat中,有一个众所周知的配置选项可conf/context.xml用于禁用会话持久性:
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<Manager pathname="" />
Run Code Online (Sandbox Code Playgroud)
当如此处所示取消注释时,org.apache.catalina.Manager(例如org.apache.catalina.session.StandardManager)的应用实现没有pathname告诉它将会话存储到磁盘的位置,因此它不会将会话文件写入磁盘(例如,在关闭时),这是我们想要的.
换句话说,这会禁用标准Tomcat功能以通过服务器重新启动来维持会话.
如何在嵌入式Tomcat的Spring Boot中实现同样的目标?
也许可以以某种方式获取Manager对象以将属性路径名设置为null?
Spring Security是一个非常灵活的框架,当然可以创建无状态每请求身份验证的实现来保护Business-2-Business REST API.
但是,最好的方法是什么?
OAuth和OAuth2超出了此问题的范围.
特别感兴趣的是基于API-Key和API-Secret对的解决方案,其中:
有关实现和配置详细信息,实现每个请求身份验证并启用基于GrantedAuthorities的后续访问控制的方法是什么?
这是一篇博客文章,其中有一个值得注意的建议,但这看起来非常具体且相当复杂.