这可能是一个非常简单的Spring EL问题。我在cas login-flow中定义了一个新的end-state,如下所示:
的https://为myhost:8443 / MyModule的/ SomePage的" />
我们需要使用cas.properties中定义的URL,而不是使用externalRedirect新名称对URL进行硬编码。是否可以使用
并在cas.properties中定义myurl。
我们是CAS 3.5.2
答案 0 :(得分:0)
也许这不是您正在寻找的解决方案,但我使用了cas-servlet.xml
中定义的bean。
<bean id="loadUrls" class="yourpackage.LoadUrls" c:url="${cas.property.myUrl}"/>
然后,在LoadUrls
类中,我有以下代码:
public class LoadUrls{
private String url;
public LoadUrls(String url) {
this.url= url;
}
public void loadUrlsFromWebflow(RequestContext context) {
// [I used flowScope, you can use any other if you want]
context.getFlowScope().put("urlWebflow", this.url);
}
}
您需要的最后一件事是从Webflow调用此方法:
<action-state id="stateLoadUrl">
<evaluate expression="loadUrls.loadUrlsFromWebflow(flowRequestContext)"/>
<transition to="redirectAction"/>
</action-state>
<end-state id="redirectAction" view="externalRedirect:#{flowScope.urlWebflow}"/>
这只是一个想法,您可以调整它以满足您的需求。顺便说一下,如果你只使用EL Spring表达式找到解决方案,请告诉我,因为我需要同样的东西!
答案 1 :(得分:0)
我遇到了同样的问题,但找到了一个更好的解决方案。
<view-state id="orderExternalView" view="externalRedirect:#{propertyConfigurer.getProperty('link.externalOrderView')}" />