6个q 2025-01-17 08:58 采纳率: 50%
浏览 12
已结题

cas-server的war包部署到tomcat访问报认证信息无效错误

使用cas-server-webapp-tomcat-5.3.14.war部署到apache-tomcat-9.0.98.
在apache-tomcat-9.0.98\webapps\cas\WEB-INF\classes路径的application.properties已经配置了:

cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/cas_server_tomcat?useUnicode=true&characterEncoding=UTF-8
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=123456
cas.authn.jdbc.query[0].sql=select * from t_cas where username=?
cas.authn.jdbc.query[0].fieldPassword=password 
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver

数据库已经新建了表:

img

同时在D:\sofeware\tomcat\apache-tomcat-9.0.98\webapps\cas\WEB-INF\lib路径下已经加上了jar包:
cas-server-support-jdbc-drivers-5.3.14.jar
cas-server-support-jdbc-authentication-5.3.14.jar
cas-server-support-jdbc-5.3.14.jar
mysql-connector-java-5.1.42.jar

但是https://localhost:8445/cas/login登录认证的时候还是会出现"认证信息无效。"的错误。

img

认证信息无效。到底是哪里的问题。数据库配置application.properties应该都是对的。

  • 写回答

3条回答 默认 最新

  • CLLLLLLY 2025-01-17 09:01
    关注
    很高兴在 CSDN 上回答你的问题,本次回答使用 【豆包】让我们一起探讨,找到解决问题的最佳方案吧。
    以下是一些可能导致“认证信息无效”错误的原因及解决方案:

    1. 数据库连接问题

    • 检查数据库服务是否正常运行
      • 确保MySQL数据库服务已启动并正在运行,可以通过命令行或数据库管理工具进行检查。
    • 检查数据库连接参数
      • URL格式:确保jdbc:mysql://localhost:3306/cas_server_tomcat?useUnicode=true&characterEncoding=UTF-8 中的数据库名称、端口号等信息正确。
      • 用户名和密码:确认cas.authn.jdbc.query[0].usercas.authn.jdbc.query[0].password是否与数据库实际的用户名和密码一致。
      • 驱动类:在较新的MySQL版本中,驱动类可能需要改为com.mysql.cj.jdbc.Driver(对于MySQL 8及以上版本),而不是com.mysql.jdbc.Driver

    2. SQL语句及表结构问题

    • 检查SQL语句
      • 确保cas.authn.jdbc.query[0].sql = select * from t_cas where username=? 语句正确。可以尝试在数据库管理工具中直接执行该SQL语句,看是否能正确查询到数据。
    • 检查表结构
      • 确认表t_cas中存在usernamepassword字段,并且数据类型与预期一致。同时,确保表中存在用于测试登录的用户记录。

    3. CAS配置及版本兼容性问题

    • 检查CAS版本兼容性
      • 确保所使用的cas-server-support-jdbc-*等相关JAR包版本与cas-server-webapp-tomcat-5.3.14.war兼容。有时不同版本之间可能存在不兼容的情况。
    • 检查CAS日志
      • 查看apache-tomcat-9.0.98\logs目录下的cas.log文件(如果有的话),其中可能包含有关认证失败的详细错误信息,例如数据库连接错误、SQL执行错误等。

    4. 其他可能的问题

    • 字符编码问题
      • 虽然在数据库连接URL中设置了字符编码,但仍有可能存在字符编码不一致导致的问题。可以尝试在相关配置中统一字符编码设置。
    • 权限问题
      • 确保Tomcat对application.properties文件以及相关JAR包有读取权限,否则可能导致配置无法正确加载。

    案例及代码示例

    • 修改驱动类(针对MySQL 8及以上版本)application.properties中的驱动类修改为:
      cas.authn.jdbc.query[0].driverClass=com.mysql.cj.jdbc.Driver
      
    • 打印SQL执行日志(在CAS配置中添加)application.properties中添加以下配置以打印SQL执行的详细日志:
      # 开启JDBC相关的调试日志
      logging.level.org.apereo.cas=DEBUG
      logging.level.org.springframework.jdbc=DEBUG
      

      然后查看Tomcat的日志文件,查看是否有相关的SQL执行错误信息。

    通过以上步骤的排查和调整,应该可以找到并解决“认证信息无效”的问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月17日
  • 已采纳回答 1月17日
  • 创建了问题 1月17日