我正在尝试在我们的Web服务中集成CAS认证,并使用基于Spring的webapp的Jasig CAS server(v.4.2)。Jasig CAS - 如何在登录成功后自定义WebFlow重定向用户?
不幸的是,Jasig CAS服务器在成功登录后只能使用服务ID进行重定向。 这是不可接受的,因为CAS服务器位于反向代理之后,我们不'使用DNS。 所以,登录网址看起来像:
http://a.b.c.d/cas/login?service=http://x.x.x.x/context-path/auth-entry-point
其中
- ABCD - 外部(代理)IP地址
- XXXX - 内部(服务/ CAS客户端)IP地址
我读过Jasig文档,但发现无法混淆服务URL。 现在我试图实现自定义逻辑。我想通过重定向URL作为单独的PARAM:
http://a.b.c.d/login?service=<serviceUID_like_YYY-YYY-YYY>&redirect=<base64_encoded_URL>
..并使用此参数有关重定向,而不是服务ID。
根据doc Jasig CAS使用Spring Webflow实现登录场景(login-webflow.xml)。 而这正是重定向造成的地方:
<end-state id="redirectView" view="externalRedirect:#{requestScope.response.url}"/>
因为我不熟悉Spring Weblow的问题是:
我怎样才能收到“重定向” URL PARAM,解码和使用重定向?
P.S.对不起,我的英文不好,我希望它至少可以解析:-)