ie浏览器可正常访问是因为登入后jsessionid一致,谷歌浏览器每次请求新接口后jsessionid就被修改,所以被要求重新登入。
打jar包使用SpringBoot内置tomcat启动的处理方式:
参考:https://blog.csdn.net/aoshilang2249/article/details/107687791
修改完SameSite属性和secure属性后将tomcat设置为https访问即可。
applicayion.yml配置:
#使用自治SSL证书,将tomcat改为https访问(测试使用)
#cookie的secure属性属性设置为true
server:
ssl:
key-store: E:/keystore.p12
key-alias: tomcat
key-store-password: 123456
servlet:
session:
cookie:
secure: true
配置类:设置Cookie的SameSite为NONE:
@Configuration
public class TomcatConfiguration {
@Bean
public TomcatContextCustomizer sameSiteCookiesConfig() {
return context -> {
final Rfc6265CookieProcessor cookieProcessor = new Rfc6265CookieProcessor();
// 设置Cookie的SameSite为NONE
cookieProcessor.setSameSiteCookies(SameSiteCookies.NONE.getValue());
context.setCookieProcessor(cookieProcessor);
};
}
}
ps:如果访问https接口时出现以下错误,直接将接口复制到浏览器地址栏打开即可。
打war包使用tomcat9.0.38启动的处理方式:
1、修改tomcat中的server.xml配置文件:
<Connector port="443" protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:\apache-tomcat-9.0.38\conf\key\javaboy.p12"
keystorePass="123456"/>
2、在tomcat中的context.xml配置文件中添加如下配置:
<CookieProcessor sameSiteCookies="None" />
3、tomcat启动,使用https port:443启动