cas单点登录遇到 supplied credentials: [admin+password] 问题原因以及解决办法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_33625560/article/details/78064505

最近在写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&amp;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….

猜你喜欢

转载自blog.csdn.net/sinat_33625560/article/details/78064505
今日推荐