CAS认证后恢复原始POST请求?

Posted

技术标签:

【中文标题】CAS认证后恢复原始POST请求?【英文标题】:Restore original POST request after CAS authentication? 【发布时间】:2011-11-30 12:05:49 【问题描述】:

我的 json-rpc 服务仅接受 http POST-req,并希望它使用 CAS SSO 身份验证。 当前的请求流程大致是这样的:

POST host/service/  -> 302 redirect 
GET host/cas/login?service=https%3A%2F%2Fhost%2Fservice%2F -> 302 redirect
GET host/service/?ticket=ST-16-0rtrEQunbcbNdP16Eu07-cas -> 302 redirect
GET host/service/  -> 405 GET Method not supported

我想我们需要将最后一个 GET 转换为 POST 并保存原始帖子正文参数。 有什么提示吗?在 spring-sec 链中添加裸 RequestCacheAwareFilter 没有帮助。

【问题讨论】:

【参考方案1】:

看起来解决问题的唯一方法是避免在帖子中重定向。因此,您需要在同一个 webapp 中对一些已知的 GET 接受服务 url 进行正常的 GET(当您在 POST 上检测到 405 代码时)以重定向到/来自 CAS,然后您才能安全地使用 POST。

【讨论】:

以上是关于CAS认证后恢复原始POST请求?的主要内容,如果未能解决你的问题,请参考以下文章

spring boot应用集成cas单点登录,post请求拿不到参数

身份验证过滤器重定向回 Laravel 中的原始 POST 请求

在没有原始数据的情况下重新发送 post/put 请求

如何使用 C# 在 POST 请求中发送 json 数据 [重复]

在 Blockcypher 上广播原始交易,在 POST 请求中收到错误

NEST/Elasticsearch.Net 发送原始JSON请求(Post数据)