Spring-security 登录后重定向地址参数丢失

问题描述

开发Spring Security OAuth应用时,输入认证登录地址:
http://localhost:20200/auth/oauth/authorize?response_type=token&client_id=client&redirect_uri=http://localhost:20100/api/userservice/user/info?a=3&b=4
时,登录后跳转地址为:
http://localhost:20100/api/userservice/user/info?a=3
丢失参数b=4

问题分析

由于redirect_uri中包含了特殊字符?/&,后端不能识别是整体URL参数,还是和redirect_url中其他字符作为一个整体,引起了这个问题,导致任务redirect_url 为
http://localhost:20100/api/userservice/user/info?a=3
任务b=4是作为/oauth/authorize的参数

解决办法

将redirect_uri进行编码,执行encodeURIComponent(redirect_url) 编码后,再传入到参数中,最终请求地址为:
http://localhost:20200/auth/oauth/authorize?response_type=token&client_id=client&http%3A%2F%2Flocalhost%3A20100%2Fapi%2Fuserservice%2Fuser%2Finfo%3Fa%3D3%26b%3D4

其他问题

当redirect_url中包含了hash参数时,如/api/userservice/user/info#a=3&b=4,若进行encodeURIComponent编码,会引起hash参数丢失问题

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值