私は CAS を使用しており、3.4.8 から 3.5.1 に更新したばかりです。私がほとんどを処理したと思う千の変更がありました。ただ、完了時のexternalRedirectはなぜか壊れているようです。login-webflow の最初にループバックするだけです。これはどのように起こりますか?
これは、到達している最終状態です。
<!-- The "redirect" end state allows CAS to properly end the workflow while
still redirecting the user back to the service required. -->
<end-state id="redirectView"
view="externalRedirect:${requestScope.response.url}" />
org.springframework.webflow.action.ExternalRedirectAction
このメソッド(の)にブレークポイントを設定したため、到達していることがわかります。
protected Event doExecute(RequestContext context) throws Exception {
String resourceUri = (String) this.resourceUri.getValue(context);
context.getExternalContext().requestExternalRedirect(resourceUri);
return success();
}
このメソッドが戻る前に resourceUri の値を調べると、このリクエストのリダイレクト先の URI が表示されます。
http://mycompany.com:8080/c/portal/login?redirect=%2Fweb%2Fguest%2Fhome&ticket=ST-4-jVOtEEZcy9bXdb4xiV3l-cas
ただし、そのブレークポイントから実行すると、そのページにリダイレクトされるのではなく、同じ login-webflow が最初からやり直されます。ここで何が起きてるの?どこを見ればいいですか?デバッグに関するヒントはありますか?
- - - - - - - - アップデート - - - - - - - -
そのため、コードをまったく変更せず、いくつかのブレークポイントを追加しただけで、期待どおりに動作するようになりました。ここで何が起こっているのかわかりませんが、最終的に実際のリダイレクトが発生する場所を見つけました。興味のある方のために、リダイレクトは次の場所で行われます。
org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handleFlowExecutionResult(
FlowExecutionResult result, ServletExternalContext context,
HttpServletRequest request, HttpServletResponse response, FlowHandler handler)