1. 程式人生 > >cas單點登入遇到 supplied credentials: [admin+password] 問題原因以及解決辦法

cas單點登入遇到 supplied credentials: [admin+password] 問題原因以及解決辦法

最近在寫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….