• CAS5.2x单点登录(二)cas服务器连接数据库


      前面一节应该已经告诉大家如何搭建cas的服务器了,可是搭建好能用吗?我们现在的用户验证是在哪呢?哪个默认的用户名和密码有是在哪呢?

      本节就讲一下如何使用cas服务器连接我们自己的用户数据库,毕竟没有哪个公司的用户是写死在配置文件上的。好了,言归正传把,这边我就使用mysql来做为列子。 在5.0版本之前配置数据库进行认证是直接在xml里面注入相应的bean以及驱动,但是5.0之后大改了一下,使用配置文件来达到数据库的操作。可能你会问为什么只要配置几个配置就能到达操作数据库的的作用,因为cas其实已经帮我们实现了好多的类,而配置文件的配置是让他自己能找到相应的类去执行,比如你配置数据库的普通验证,他就去找相应的方法,如果你配置加密的,他就会去找其他的,如果你要自定义的话,你就按照他的那种方法去定义。

      

      好了,直接看下面把: 之前我们不是将cas放到tomcat里面运行了吗,里面有一个叫做application.properties的文件,我们的配置就要写在里面,如下图所示 这里写图片描述
        我们看到的最后一行就是设置的默认密码,前面配置的就是端口号以及证书等等。这个暂时对我们没有什么用处。我们就直接看下如何去连接数据库进行用户的验证。其实这些东西官方文档上面都已经给出了,可以自己去查看。


      要想进行数据库的连接,必须要导入一些必要的包,比如数据库驱动,mysql连接等包,这些maven都能在网上找到,我这边就例举我使用的pom文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>fxma</groupId>
        <artifactId>Word2Html</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>Word2Html</name>
        <url>http://maven.apache.org</url>
    
    <dependencies>
            <dependency>
                <groupId>org.apereo.cas</groupId>
                <artifactId>cas-server-support-jdbc-drivers</artifactId>
                <version>${cas.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apereo.cas</groupId>
                <artifactId>cas-server-support-jdbc</artifactId>
                <version>${cas.version}</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>6.0.6</version>
            </dependency>
    
        </dependencies>
    
        <properties>
            <cas.version>5.2.4</cas.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <mysql.driver.version>6.0.6</mysql.driver.version>
        </properties>
    </project>

    拷贝 全部.jar 到目录C:Program FilesApache Software FoundationTomcat 8.5webappscasWEB-INFlib 下。

    修改    C:Program FilesApache Software FoundationTomcat 8.5webappscasWEB-INFclassesapplication.properties

     然后在配置文件里面加上如下简单的配置就可以达到数据库的访问了

    cas.authn.jdbc.query[0].url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
    cas.authn.jdbc.query[0].user=root
    cas.authn.jdbc.query[0].password=dsideal
    cas.authn.jdbc.query[
    0].sql=select * from test_table where name=? cas.authn.jdbc.query[0].fieldPassword=password
    cas.authn.jdbc.query[
    0].driverClass=com.mysql.jdbc.Driver
     
    在引入这个的同时要将之前的哪个默认密码给删掉!!!!!

    这时候我们在进行mvn clean package命令的时候会重新生成一个war包,我们将这个新的war包放入到tomcat里面并启动可以看到如下图所示
    可以看到现在的提示没有了,因为之前的提示是因为没有连接数据库,使用的是静态的
    我们使用数据库里面的数据来进行登录.
    我们现在使用的是密文密码,更多时候我们使用的是加密的密码,而cas也为我们提供了这些,比如最简单的md5、加盐以及sha等,cas都提供了只要自己在配置文件里面加就可以了,但是很多时候我们的密码不是简单的这些,这时候就需要我们自己自定义加密了,其实配置文件里面有个cas.authn.jdbc.query[0].passwordEncoder.type这个属性的作用就是我们自己自定义加密使用。只需要实现passwordEncoder(或者其他)这个接口,然后里面写你的加密逻辑即可。

  • 相关阅读:
    Web项目中JSP页面的一种调试方法与出现的问题 -- SpringMVC架构测试
    Web项目中用模板Jsp页面引入所有静态样式脚本文件(js,css等)
    setInterval()、clearInterval()、setTimeout()和clearTimeout()js计数器方法
    另类的package-info.java文件探讨
    myeclipse10 如何把代码预览的窗口去掉
    phpMyAdmin中mysql的创建数据库时的编码的问题
    Jquery 中 $('obj').attr('checked',true)失效的几种解决方案
    监听<input/>标签行为的方法总结
    新花生壳+tomcat(内网映射,无需设置路由器)建站攻略
    Hibernate学习笔记(一):mycelipse建立项目流程(未完成)
  • 原文地址:https://www.cnblogs.com/littlehb/p/9075624.html
Copyright © 2020-2023  润新知