超级注意复杂整合环境中的Filter-Mapping的顺序--配置单点登陆及UrlRewrite有感

    相信大家对Filter都不陌生,当你为你的web站点增加某些特殊功能时,你发现这些功能中有不少都是需要Filter来实现的,需要你在你的web.xml中配置多个功能不同的filter.我最近就在这东西上面吃了不少苦。
    我的站点的运行环境是相对复杂的,web.xml里配置了不少Filter,有struts2的FilterDispatcher,有hibernate的OpenSessionInViewFilter,还有一个cas单点登陆的CASFilter(当然,还有UrlRewrite(即url地址重写的Filter),为了简化,不去理它了!),其实我是严格按照手册上来配置的,发现,我的单点登陆只对jsp页面有效果,对于以action结尾的url都起不到作用。有点奇怪吧,呵呵。
     其实,许多手册上介绍的只是在单一环境下的配置情况,而事实上我们使用某中小功能,却可能是在非常复杂的环境中。因此,我想了一下,明白了,原来以action结尾的url都被struts2的FilterDispatcher过滤掉了,因为我把CASFilter的mapping 放在了最后面。只要把CASFilter的mapping放置于struts2的FilterDispatcher mapping之上,就一切ok了!配置urlRewrite时我也遇到了此问题。
    本文旨在提醒大家注意Fileter mapping的顺序,因此不涉及具体的配置。
    附件是CAS单点登陆在struts2和hibernate下的配置,有需要的朋友可以参考。

你可能感兴趣的:(Hibernate,Web,xml,jsp)