pac4j探索(二): buji-pac4j+Cas+Shiro+SpringMvc实现单点登录

在pac4j探索的上一篇文章大致讲述了一下buji-pac4j+CAS的认证流程。这里记录一下本人实现的最简单的单点登录,仅作为笔记、学习交流之用,戳这里获取本文源码。一、项目框架 1、 buji-pac4j(v.3.0.0) 2、shiro (v.1.4.0) 3、springmvc (v.4.3.2) 4、CAS (v.4.2.6) 5
摘要由CSDN通过智能技术生成

在pac4j探索的上一篇文章大致讲述了一下buji-pac4j+CAS的认证流程。这里记录一下本人实现的最简单的单点登录,仅作为笔记、学习交流之用,戳这里获取本文源码

一、项目框架
1、 buji-pac4j(v.3.0.0)
2、shiro (v.1.4.0)
3、springmvc (v.4.3.2)
4、CAS (v.4.2.6)
5、pac4j-cas(v.2.2.1)

在maven项目的pom.xml里配置以上相关依赖,具体依赖配置可以查看我的项目,这里不再赘述。

二、目录结构
客户端项目(pac4jtest1)目录结构如下:
这里写图片描述
1、java文件目录中,Redirect2CasLoginFilter是测试用的,可以不管,MyCasClient类是继承自CasClient的自定义客户端,ShiroCasLogoutHandler类是单点登出时对shiro的一些操作,Controller类是请求控制器,util包里的是单点登出相关的类;

2、配置文件目录中,log4j.properties是日志管理文件,url.properties配置了项目中用到的各种url,spring-comm.xml配置了shiro集成pac4j的配置,spring-mvc.xml是springmvc的相关配置;

3、另外还有个index.jsp,就是受保护的页面,请求访问前需要先认证。

二、springMvc配置
这里springmvc作最简单的配置:

    <!-- 自动扫描的包名 -->  
    <context:component-scan base-package="com.pac4j.rest"/>  

    <!-- 默认的注解映射的支持,自动注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter -->  
    <mvc:annotation-driven />  

    <!-- 视图解释类 -->  
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <property name="prefix" value="/WEB-INF/jsp/"/>  
        <property name="suffix" value=".jsp"/>  
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />  
    </bean>  

      <!-- 对静态资源文件的访问-->  
    <mvc:resources mapping="/images/**" location="/WEB-INF/images/"/>  
    <mvc:resources mapping="/js/**" location="/WEB-INF/js/" />  
    <mvc:resources mapping="/css/**" location="/WEB-INF/css/"/> 

三、pac4j配置
spring-comm.xml是shiro整合pac4j的配置,具体配置如下:

<!-- 地址配置 -->
     <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>/WEB-INF/classes/url.properties</value>
            </list>
        </property>
    </bean>

    <!-- pac4j configurations -->
    <!-- 请求cas服务端配置 -->
    <bean id="casConfig" class="org.pac4j.cas.config.CasConfiguration">
        <!-- CAS server登录链接 -->
       <property name="loginUrl" value="${sso.cas.server.loginUrl}"></property>
        <!-- CAS server服务前缀 -->
       <property name="prefixUrl" value="${sso.cas.server.prefixUrl}"></property>
        <!-- 登出处理器,单点登出时所需要的操作在这里实现-->
        <property name="logoutHandler" ref="casLogoutHandler"></property>
    </bean>

    <!-- cas客户端配置 -->
    <bean id="casClient" class="com.pac4j.client.MyCasClient">
        <constructor-arg ref="casConfig" />
        <property name="includeClientNameInCallbackUrl" value="false"></property>
        <!-- 客户端回调地址 -->
        <property name="callbackUrl" value="${sso.cas.client.callbackUrl}"></property>
    </bean>

    <!-- shiro登出处理器,销毁session及登录状态等-->
    <bean id="casLogoutHandler" class="com.pac4j.handler.ShiroCasLogoutHandler">
       <property name="destroySession" value="true"></property>
    </bean>

    <bean id="sessionStore" class="com.pac4j.util.MyShiroSessionStore"></bean>

    <!-- pac4j配置 -->
    <bean id="authcConfig" class="org.pac4j.core.config.Config">
        <constructor-arg ref="casClient"></constructor-arg>
        <property name=&
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值