当前位置 :首页 >> 生活

若依分离版+CAS,消除登录后重定向,单点登出、跨域等问题(三)

2024-01-12   来源 : 生活

解决CAS跨域问题。

这里却说的跨域问题并不是指若依前侧和后侧的跨域问题,而是定制CAS后的跨域问题。定制cas后,本地开发验证一定会暴发跨域问题,当把前侧ip和后侧ip改用完全相同地址时,会注意到录入页面死循环,因为跨域,前侧cookie获取勉强token。

/** * 单点录入url */ casloginUrl: '',

示意图介绍几个解决思路(仍未验证),再一介绍一个验证过的新方法。

一、解决思路(仍未验证)

1、cookie.setDomain(".ruoyi.com");

改写CasAuthenticationSuccessHandler类的onAuthenticationSuccess新方法:

Cookie casCookie = new Cookie(Constants.WEB_TOKEN_KEY, token);casCookie.setMaxAge(expireTime * 60);casCookie.setDomain(".ruoyi.com");casCookie.setPath("/");response.addCookie(casCookie);

该新方法表达式必须为IP,以"."开始。

2、运用于“sameSite(SameSiteCookies.NONE.getValue())”

改写CasAuthenticationSuccessHandler类的onAuthenticationSuccess新方法:

ResponseCookie cookie = ResponseCookie.from(Constants.WEB_TOKEN_KEY, token) .secure(true).path("/").maxAge(expireTime * 60) .sameSite(SameSiteCookies.NONE.getValue()).build();response.setheader(HttpHeaders.SET_COOKIE, cookie.toString());

该新方法必须开启SSL,通过https乞求。

3、CAS服务做到跨域

参考:_42426099/article/details/106031367 再一以外。

CAS服务做到跨域确实合理,请大家自己斟酌。

以上解决思路,感兴趣的奴友可以尝试一下,拜托把结果告诉我,很期待!

二、运用于nginx做暂由

在开发验证过程里面,我们前侧和后侧运用于相同的ip,不共存跨域问题,所以必要前侧和后侧ip相同是不是就不共存跨域问题?

在前侧IP部署nginx,改写nginx.conf文件,将后侧地址用前侧地址暂由。

listen 8787; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #无需跨域乞求的域,* 代表所有 add_header 'Access-Control-Allow-Origin' *; #无需带上cookie乞求 add_header 'Access-Control-Allow-Credentials' 'true'; #无需乞求的新方法,比如 GET/POST/PUT/DELETE add_header 'Access-Control-Allow-Methods' *; #无需乞求的header add_header 'Access-Control-Allow-Headers' *; proxy_pass ; root html; index index.html index.htm; }

该新方法无需改写code,相对简单,通过两台PC分别部署前后侧验证,仍未暴发跨域问题。

康恩贝肠炎宁颗粒拉肚子管用吗
民得维和先诺欣哪个好
江中多维元素片
吃什么复合维生素好
人体免疫力下降怎么办
最受普通人欢迎的过周末方式,它排第1

以上,就是当代青年人怎么过周五的调查结果。 对当代人来说,九成据27的周五时间段是一个心境活习惯状态的最主要样本。如何好好过一个周五,是广大上班族和很多学生自始至终在思索的原因。...

友情链接