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

xey*_*eye 6 java redirect cas spring-security single-sign-on

我有json-rpc服务只接受http POST-req并希望它使用CAS SSO auth.当前的请求流看起来大致如下:

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
Run Code Online (Sandbox Code Playgroud)

我想我们需要将最后的GET转换为POST,并保存原始的post body params.任何提示?在spring-sec链中添加裸RequestCacheAwareFilter并没有帮助.

xey*_*eye 0

看起来解决问题的唯一方法是避免帖子重定向。因此,您需要对同一 Web 应用程序中某个已知的接受 GET 的服务 URL 进行正常的 GET(当您在 POST 上检测到 405 代码时)以重定向到 CAS 或从 CAS 重定向,然后您就可以安全地使用 POST。