标签:
这篇博客我们还是继续讲如何使用,其他的我自己还需要一些时间来消化。这次因为项目的需要,将登录从shiro中抽出来交给cas来验证。Shiro,只负责权限的验证。shiro在1.2版本之后加入了对cas的支持。我们先从cas入手……然后,在Spring - shiro.xml修改如下配置:
<property name="loginUrl" value="http://localhost:18080/cas/login?service=http://localhost:8080/authority-web/shiro-cas"> </property>
<property name="successUrl" value="http://localhost:8080/authorityn-web/index.jsp"></property>
<property name="filters">
<map> <!--添加cas的过滤器到shiro -->
<entry key="casFilter">
<bean class="org.apache.shiro.cas.CasFilter">
<!--配置验证错误时的失败页面 /main 为系统登录页面 -->
<property name="failureUrl" value="/message.jsp" />
</bean>
</entry>
</map>
</property>
<!-- 过滤器链,请求url对应的过滤器 -->
<property name="filterChainDefinitions">
<value>
/message.jsp=anon
/logout=logout <!--shiro登出过滤器,清理shiro存储的缓存,用户信息等 -->
/shiro-cas=casFilter <!--cas的过滤器的拦截规则 -->
<!--验证所有请求,如果shiro中不存在用户信息,则返回到loginUrl的登录页面 -->
/** =user
</value>
</property>
<property name="casServerUrlPrefix" value="http://localhost:18080/cas"></property>
<property name="casService" value="http://localhost:8080/authorityn-web/shiro-cas"></property>
<property name="subjectFactory" ref="casSubjectFactory"></property>
<bean id="casSubjectFactory" class="org.apache.shiro.cas.CasSubjectFactory" />
<listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener> <filter> <filter-name>singleSignOutFilter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> </filter> <filter-mapping> <filter-name>singleSignOutFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
http://localhst:18080/cas/logout?service=http://localhost:8080/itoo-authority-application-web/logout总结:cas和shiro的集成是将shiro的只能面对单个应用的登录抽离出来,交给cas去验证。前面,说过cas的验证实际上是一个“通票”的概念。
Apache shiro(3)—cas + shiro配置说明
标签:
原文地址:http://blog.csdn.net/zhuojiajin/article/details/42973251