欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CAS WHAT: 1 errors, 0 successes 错误

程序员文章站 2022-03-08 20:11:51
...

    最近在学习CAS单点登录,遇到了这个错误 WHAT: 1 errors, 0 successes ,在百度搜索一番后,也没有得到解决,最后自己排查了一下,解决了这个问题,所以跟大家分享一下

    我是在给CAS配置数据源时出现的这个问题,我先说一下配置数据源的步骤:

        (1) 修改cas服务端WEB-INF下的 deployerConfigContext.xml ,添加以下配置 

<!-- 这个配置是配置数据源,将mysql数据信息存入xml文件中进行注入 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  
	p:driverClass="com.mysql.jdbc.Driver"  
	p:jdbcUrl="jdbc:mysql://127.0.0.1:3306/bow?characterEncoding=utf8"  
	p:user="root"  
	p:password="root" />
<!-- 数据的处理机制 ,其中有一个sql语句,规定查询的数据库表,根据用户名把密码列出 -->
<bean id="dbAuthHandler"  class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"  
	p:dataSource-ref="dataSource"  
	p:sql="SELECT PASSWORD FROM userbean WHERE username= ?" 
	p:passwordEncoder-ref="passwordEncoder"/>
        <!-- 这是一个md5的加密 -->    
        <!-- 针对于密码的加密操作 -->
<bean id="passwordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"  
	c:encodingAlgorithm="MD5"  
	p:characterEncoding="UTF-8" /> 

    然后再将固定用户换为从数据库中获取数据,还是在本配置文件中,找到

 <constructor-arg>
    <map>               
      <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />
      <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />
   </map>
</constructor-arg>  
    将其中的
<entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />

    改为数据库的处理机制 dbAuthHandler

<entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver"/>

    最后记得导入三个jar包:

    CAS WHAT: 1 errors, 0 successes 错误

    重启cas服务,再次登录就会出现这样的错误:

WHO: audit:unknown
WHAT: 1 errors, 0 successes
ACTION: TICKET_GRANTING_TICKET_NOT_CREATED
APPLICATION: CAS
WHEN: Tue Jun 05 19:28:57 CST 2018
CLIENT IP ADDRESS: 127.0.0.1
SERVER IP ADDRESS: 127.0.0.1

    OK,到重点了,我的问题是我这是我测试使用的数据库,密码没有进行MD5的处理,而这里配置是解析MD5

,那么返回的密码再经过MD5处理,跟我们输入的就不一致了,所以才会导致登录失败,

    解决办法就是:将

<bean id="dbAuthHandler"  class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"  
	p:dataSource-ref="dataSource"  
	p:sql="SELECT PASSWORD FROM userbean WHERE username= ?" 
	p:passwordEncoder-ref="passwordEncoder"/>
        将这个属性去掉或者注释,就可以了
        在使用到MD5密码时,再加上就可以了

删掉以后再次重启服务登录:

   CAS WHAT: 1 errors, 0 successes 错误

    这就可以了!初学者,有误的地方请多指教

相关标签: CAS