2014-10-31 37 views
1

这可能是一个非常简单的Spring EL问题。如何在cas-login流程中访问spring webflow中的配置属性

的https:// myhost的:我已经如下定义了一个新的最终状态CAS登录流量8443/mymodule中/ SomePage的” />

我们需要使用cas.properties定义,而不是网址硬编码在externalRedirect新名称的URL。是否有可能使用的东西

和cas.properties定义myurl。

我们usign CAS 3.5.2

回答

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表达式找到解决方案,请告诉我,因为我需要相同的确切信息!

+0

谢谢。我使用了一个简单的解决方法,因为我需要一些无需开发代码的东西我在请求参数中传递了URL,并在最终状态中使用了请求参数。 – sohail 2014-11-17 01:29:12

0

我一直在努力解决同样的问题,但找到了更好的解决方案。

<view-state id="orderExternalView" view="externalRedirect:#{propertyConfigurer.getProperty('link.externalOrderView')}" /> 
相关问题