反饋已提交

網絡繁忙

实现基于数据库的身份验证

1. 概述

进行基于数据库的身份验证,允许不同用户都能够实现登录。

本文以 MySQL 数据库为例进行操作。

注:如果使用 mysql 8.0 版本,需要下载 mysql-connector-java-5.1.46.jar(Feb. 2018版本)。

2. 操作步骤

2.1 添加依赖

拷贝 JAR 包 cas-server-support-jdbc-3.5.2.jarmysql-connector-java-5.1.6-bin.jar%TOMCAT_HOME%\webapps\cas\WEB-INF\lib目录下,如下图所示:

8.png

注:如果使用其他数据库,把对应的数据库 JDBC 驱动包放到该目录下即可。

2.2 创建数据库、表

表名 userinfo,用户名 username,密码userpass,如下图所示:

1587114249986030.png

2.3 配置 CAS 实现基于数据库的身份验证

2.3.1 添加数据库配置信息

1)以管理员身份启动文本编辑工具,打开%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml,找到下面的代码:

<bean id="authenticationManager"
    class="org.jasig.cas.authentication.AuthenticationManagerImpl">

在该段代码前面插入 mysql JDBC 数据源配置信息,如下所示:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName"><value>驱动器</value></property>
    <property name="url"><value>url</value></property>
    <property name="username"><value>数据库用户名</value></property>
    <property name="password"><value>数据库密码</value></property>
    </bean>

如下图所示:

75.png

注:驱动器替换为对应数据库的驱动器,如果是 MySQL,则为 com.mysql.jdbc.Driver,URL 为 jdbc:mysql://ip:port/databaseName,同时数据库用户名和密码替换为实际使用的用户名和密码。

如果使用其他数据库,驱动器及 URL 请参考 JDBC 连接数据库

2.3.2 添加用户验证信息

1)以管理员身份启动文本编辑工具,打开%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml,找到下面的代码:

<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

注:该配置信息使用 SimpleTestUsernamePasswordAuthenticationHandler 验证用户,即默认用户名和密码相同则验证通过,用户名密码不同则登录失败。我们需要将其替换成基于数据库验证的配置信息。

并将其注释掉,如下图所示:

223.png

2)其下面插入如下代码:

<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
                <property name="dataSource" ref="dataSource" />
                <property name="sql" value="select userpass from userinfo where username=?" />
                </bean>

插入配置信息如下图所示:

55.png

参数解释
QueryDatabaseAuthenticationHandler

是 cas-server-support-jdbc 提供的查询接口其中一个

QueryDatabaseAuthenticationHandler 是通过配置一个 SQL 语句查出密码,与所给密码匹配

dataSource是使用 JDBC 查询时的数据源
SQL语句就是查询哪一张表,本例根据 userinfo 表的 username 字段查询密码,CAS 会匹配用户输入的密码,如果匹配则通过

3.2.3 保存更改

保存对%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml所做的修改。

3.2.4 重启

重新启动 Tomcat 服务。

3. 效果查看

3.1 测试基于数据库的身份验证

1)在浏览器中输入网址https://roxy:8443/cas/login,如果 IE 有证书警告信息,直接点击继续浏览此网站(不推荐),CAS 会匹配用户输入的用户名密码,和userinfo 表的用户名密码,如下图所示:
7.png

2)CAS 会匹配用户输入的用户名密码,和 userinfo 表的用户名密码,如果匹配则通过则系统显示登录成功,如下图所示:

6.png

附件列表


主題: 原简体文档
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙