我有两个Spring启动应用程序,一个是客户端UI应用程序,另一个用作授权服务器(使用spring security oauth,隐式流和表单登录)。
当两个应用程序在localhost(不同端口)上运行时,我可以看到以下流程:
客户端向oauth / ahthorize发出请求以检索令牌。 由于客户端未经过身份验证,服务器会以302重定向响应其登录表单,同时设置两个cookie(XSRF,JSESSIONID)。
用户输入他的凭据,并在登录表单中执行POST。由于这两个应用程序在localhost中运行,因此两个Cookie将在POST请求中发送。
这样,服务器就会检索此JSESSIONID的SavedRequest,并按预期执行重定向到已保存的客户端URL。
问题是在不同域中运行这两个应用程序时(我试图在Pivotal Web服务环境中运行它)。
在登录表单的POST上不发送JSESSIONID cookie。
这是有道理的,因为cookie是为客户端域设置的,而登录表单位于不同的域中,无法访问cookie。
这导致服务器找不到SavedRequest对象来检索重定向URL 客户端,它重定向到服务器的根目录(/)
我错过了什么?