最近在写shiro-cas单点登录demo的时候,真的是问题多多,百度了半天也没有什么有用的信息,服务端部署了一遍又一遍,真的sui(抱怨over..哈哈)
我遇到的问题是服务端配置数据库连接的时候出现的问题,先回顾一下流程
一、修改deployerConfigContext.xml
首先 注释掉 下面的代码
<bean id="primaryAuthenticationHandler"
class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
<property name="users">
<map>
<entry key="casuser" value="Mellon"/>
</map>
</property>
</bean>
然后添加数据库支持和密码md5加密(这两项是可以自定义设置的)
<!-- 设置密码的加密方式,这里使用的是MD5加密 -->
<bean id="passwordEncoder"
class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"
c:encodingAlgorithm="MD5"
p:characterEncoding="UTF-8" />
<!-- 通过数据库验证身份,这个得自己去实现 -->
<bean id="primaryAuthenticationHandler"
class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"
p:dataSource-ref="dataSource"
p:passwordEncoder-ref="passwordEncoder"
p:sql="select password from t_user where account=? and status = 'active'" />
<!-- 设置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/sso?useUnicode=true&characterEncoding=utf8"></property>
<property name="username" value="root"></property>
<property name="password" value="111111"></property>
</bean>
二、添加依赖jar
其实需要的jar讲道理只有两个,mysql-connector-java还有cas-server-support-jdbc
问题就出在这个配置上了
先送上错误信息
=============================================================
WHO: audit:unknown
WHAT: supplied credentials: [admin+password]
ACTION: AUTHENTICATION_SUCCESS
APPLICATION: CAS
WHEN: Fri Sep 22 16:04:01 CST 2017
CLIENT IP ADDRESS: 127.0.0.1
SERVER IP ADDRESS: 127.0.0.1
=============================================================
>
2017-09-22 16:04:01,941 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - <Audit trail record BEGIN
=============================================================
WHO: audit:unknown
WHAT: TGT-1-gGZWrggVvdEl5Fbukee9O3MvshL9WAf4fR7iORdr2A0Uyz960Q-cas01.example.org
ACTION: TICKET_GRANTING_TICKET_CREATED
APPLICATION: CAS
WHEN: Fri Sep 22 16:04:01 CST 2017
CLIENT IP ADDRESS: 127.0.0.1
SERVER IP ADDRESS: 127.0.0.1
=============================================================
pom配置
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>4.0.0</version>
</dependency>
注意 问题就在于cas-server-support-jdbc的版本号,这里配置的是4.0.0但是服务端的版本号是4.0.0-RC3,虽然不知道是什么区别,记住稳妥一点还是把version配置成 ${project.version}
注:之前百度看到一篇服务端版本如果是4.2.7级以上的还需要依赖一个jar好像名字是com。。。。4,可以注意一下
最后让我化身贝贝来一句freestyle
把编程当梦想
不如幻想五百万会中奖
can you feel me
bulabulabula….