web项目中,配置filter的init-param 如何使用外部参数

路人甲陈惟鲜 2017-08-23 05:02:34
情况是这样。当前公司系统较多,做一个单点登录,但是看了当前java流行的也就是cas。
服务端,按照配置基本完成了。客户端,根据配置也完成了。功能测试,也算ok了。
可是如果需要部署到线上的话,那些跳转链接地址不能写死在web.xml中。

<filter>
<filter-name>cas20ProxyReceivingTicketValidationFilter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>http://100.248.61.101:8381/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://100.248.61.55:8580</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>cas20ProxyReceivingTicketValidationFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


而且在开发环境与测试环境、生产环境3个环境的地址路径都不一样。写死了,就相当不好了。。
因为使用了spirng,所以想要。修改为外部引入,因为当前我配置文件都在外面。所以如下:

<filter>
<filter-name>cas20ProxyReceivingTicketValidationFilter</filter-name>
<filter-class>com.iafclub.demoSsoServer.cas.CasProxyFilter</filter-class>
<!-- <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> -->
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>${cas.serverUrl}</param-value>
<!--<param-value>http://100.248.61.101:8381/cas</param-value> -->
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>${cas.applicationUrl}</param-value>
<!--<param-value>http://100.248.61.55:8580</param-value> -->
</init-param>
</filter>
<filter-mapping>
<filter-name>cas20ProxyReceivingTicketValidationFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


可是现在修改了,却不生效。我查询了下,因为这个filter加载,在spring加载之前。这个参数引入,是通过spring来引入的。

<!-- 引入application.properties属性文件 -->
<!-- 可通过order排序先后加载<context:property-placeholder order="0" location="classpath:application.properties" /> -->
<context:property-placeholder location="classpath:application.properties" />
<!-- <context:property-placeholder location="file:/app/p2p/config/common/application.properties" /> -->


我该怎么做。
...全文
675 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
路人甲陈惟鲜 2017-08-23
  • 打赏
  • 举报
回复
然后想通过spring的bean将参数值填写进去,可是这里是 <init-param> <param-name>casServerUrlPrefix</param-name> <param-value>${cas.serverUrl}</param-value> <!--<param-value>http://100.248.61.101:8381/cas</param-value> --> </init-param> 而参数casServerUrlPrefix 在org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter中并没有get和set方法。。。所以无法设进去。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧