JSESSIONID在spring boot应用程序中没有设置'Secure‘标志。这个应用程序支持SSO,使用OKTA作为我们的IDP,我们使用Spring Security-SAML
下面是应用程序的简单流程。
Browser -> HTTPS -> AWS-ALB -> HTTP -> Spring Boot APP --> OKTA URL (HTTPS)。
这里的SSL终止发生在ALB上,从Spring boot应用程序的角度来看,应用程序是在HTTP上。
问题是我们的安全工具分析报告抱怨JSESSIONID没有启用'secure‘标志。当我尝试启用安全cookie时,如下所示,初始请求的JSESSIONID为“secure”,并且在身份验证之后删除了“secure”标志。
server.session.cookie.secure: true虽然这个SO thread提供了一种添加“安全”标志的方法,但我不能将其与ALB端的SSL终止联系起来。
你知道如何设置/保留JessionID上的安全标志吗?
发布于 2019-02-01 22:10:25
在spring boot配置中添加server.tomcat.protocol-header=x-forwarded-proto解决了这个问题。
我误解了Cookie标志(安全的,仅限http的)将显示在Chrome开发工具的请求报头中,但事实并非如此,因为标志只显示在响应报头中,因为Set-Cookie报头只在响应中显示。
https://stackoverflow.com/questions/54466893
复制相似问题