当前位置: 首页 > news >正文

记一次重定向问题(浏览器安全)解决

近期做单点登陆功能,本身应该是一个很简单的功能,却发生了意向不到的问题…让我们看下:
首先第三方给出的地址需要通过JWT框架获取token拼接后跳转,我这边为了方便首选肯定是考虑用response.sendRedirect(url),但是做好后发现了一个问题,由于客户系统域名是https的,但是第三方地址是http的,浏览器的安全策略会自动将我重定向的地址转成https的,若我在服务器用ip登陆客户系统(http)进行重定向则不会出现这类问题,如下:

在这里插入图片描述

一开始我找不到问题的关键,我先是怀疑了ng的问题,因为是通过我的接口转换出去的,但最终网上查资料定位到了浏览器安全策略上,不过修改浏览器配置并不实际,让第三方加https证书也需要成本,所以还是需要从重定向方式动手,期间我也试过以下方式想要跳过浏览器安全策略,但是不可行…

//返回编码改为301,跳过安全策略
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location", url);

转换下思路,若后端重定向不行,那前端的window.location.href和window.open可行么,于是我想到了加一个html页面或者jsp然后通过前端重定向的方式,地址的获取可以通过jsp合并去写java代码或者通过ajax调用接口去获取,js如下:

<script language="javascript" src="/js/jquery/jquery_wev8.js"></script>
<script>$.ajax({url:"/xxxxx/不给你们看",data:{},type:"POST",async:false,dataType:"json",success:function(result) {//获取单点地址// console.log(result);if (result.success){var url = result.url;window.location.href=url;}else{alert(result.msg);}}});
</script>

结论是真的可以…OH
注意注意,如果还是出现问题清除缓存重试。

相关文章:

  • Java基础——Optional
  • Vue框架-路由
  • vuejs路由和组件系统
  • 算法-可完成的最大任务数
  • Linux防火墙(以iptables为例)
  • 十种常用数据分析模型
  • 万界星空科技定制化MES系统帮助实现数字化生产
  • 自建公式,VBA在Excel中解一元一次方程
  • docker命令总结
  • upload-labs 21关解析
  • 手把手教你写Java项目(1)——流程
  • 什么是深拷贝和浅拷贝?
  • 微服务架构的优势 与 不足
  • 常见排序算法之选择排序
  • 内网安全-隧道搭建穿透上线内网穿透-nps自定义上线内网渗透-Linux上线-cs上线Linux主机
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Apache Zeppelin在Apache Trafodion上的可视化
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JSONP原理
  • Redis字符串类型内部编码剖析
  • SQLServer之创建数据库快照
  • Swift 中的尾递归和蹦床
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 分布式任务队列Celery
  • 猴子数据域名防封接口降低小说被封的风险
  • 免费小说阅读小程序
  • 前端临床手札——文件上传
  • 我的面试准备过程--容器(更新中)
  • 我看到的前端
  • 应用生命周期终极 DevOps 工具包
  • scrapy中间件源码分析及常用中间件大全
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #### golang中【堆】的使用及底层 ####
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (k8s)kubernetes 部署Promehteus学习之路
  • (搬运以学习)flask 上下文的实现
  • (二) 初入MySQL 【数据库管理】
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (五)Python 垃圾回收机制
  • (一)认识微服务
  • (转载)利用webkit抓取动态网页和链接
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .NET 分布式技术比较
  • .net 提取注释生成API文档 帮助文档
  • .net分布式压力测试工具(Beetle.DT)
  • .NET面试题(二)
  • @angular/cli项目构建--http(2)
  • @Bean有哪些属性
  • @column注解_MyBatis注解开发 -MyBatis(15)