cas5.3.2单点登录-集成客户端-springboot方式(八)

原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/81366646     ©王赛超 

之前整合了客户端的demo,也和spring整合了,现在的很多项目,都已经开始使用springboot了,spring传统方式是配置在web.xml中,Springboot和cas集成开发,主要也就是配置了四个过滤器,和一个监听器到Springboot中,其实和传统的配置方式,没有太大的区别。只是将web.xml配置都通过代码的配置改为基于javabean的配置。本次整合使用别人写好的一个starter。别人写好的第三方的starter,大家可以看一下源码,很简单,抽空我会写一篇 sprigboot自己实现一个starter。

整合之后目录如下:

cas5.3.2单点登录-集成客户端-springboot方式(八)_第1张图片
整合了mybatis和 使用jsp,并且写了一个添加用户的功能,这些代码就不上了,看源码吧,只记录下面这些配置。lib包中的jar包是本次使用的第三方starter,如果没有使用maven可以使用这个jar包。

整合过程

1.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.0modelVersion>
    <groupId>iamlabs.unicon.netgroupId>
    <artifactId>cas-login-springboot-client2artifactId>
    <version>0.0.1-SNAPSHOTversion>
    <packaging>jarpackaging>
    <name>cas-login-springboot-client2name>
    <description>A sample web application that exercises the CAS protocol features via the Java CAS Client.description>

    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.0.0.RELEASEversion>
    parent>

    <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <java.cas.client.version>3.5.0java.cas.client.version>
    properties>

    <dependencies>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>jstlartifactId>
        dependency>
        
        <dependency>
            <groupId>org.apache.tomcat.embedgroupId>
            <artifactId>tomcat-embed-jasperartifactId>
            <scope>providedscope>
        dependency>
        
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>1.3.0version>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
        dependency>
        
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druidartifactId>
            <version>1.0.28version>
        dependency>
        
        <dependency>
            <groupId>net.unicon.casgroupId>
            <artifactId>cas-client-autoconfig-supportartifactId>
            <version>1.4.0-GAversion>
            <exclusions>
                <exclusion>
                    <groupId>org.jasig.cas.clientgroupId>
                    <artifactId>cas-client-coreartifactId>
                exclusion>
            exclusions>
        dependency>
        <dependency>
            <groupId>org.jasig.cas.clientgroupId>
            <artifactId>cas-client-coreartifactId>
            <version>${java.cas.client.version}version>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-aopartifactId>
        dependency>


    dependencies>

    <build>
        
        <finalName>cas-login-springboot-client2finalName>
        <plugins>
            
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <configuration>
                    <source>1.8source>
                    <target>1.8target>
                    <encoding>UTF-8encoding>
                configuration>
            plugin>
            
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-jar-pluginartifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>trueaddClasspath>
                            <classpathPrefix>libclasspathPrefix>
                            
                            <mainClass>com.wangsaichao.cas.ApplicationmainClass>
                        manifest>
                        <manifestEntries>
                            
                            <Class-Path>./Class-Path>
                        manifestEntries>
                    archive>
                    <excludes>
                        
                        <exclude>config/**exclude>
                    excludes>
                configuration>
            plugin>
            <plugin>
                <artifactId>maven-assembly-pluginartifactId>
                <configuration>
                    
                    <appendAssemblyId>falseappendAssemblyId>
                    <descriptors>
                        
                        <descriptor>src/main/build/package.xmldescriptor>
                    descriptors>
                configuration>
                <executions>
                    <execution>
                        <id>make-assemblyid>
                        <phase>packagephase>
                        <goals>
                            <goal>singlegoal>
                        goals>
                    execution>
                executions>
            plugin>
        plugins>
    build>
project>

2.application.properties添加配置

#cas配置
#cas服务端前缀,不是登录地址
cas.server-url-prefix=https://server.cas.com:8443/cas
#cas的登录地址
cas.server-login-url=https://server.cas.com:8443/cas/login
#当前客户端的地址
cas.client-host-url=http://app2.cas.com:8082
#Ticket校验器使用Cas30ProxyReceivingTicketValidationFilter
cas.validation-type=CAS3

cas.validation-type目前支持3中方式:1、CAS;2、CAS3;3、SAML 可以自己看一下源码,都是之前使用过的类。

3.开启CAS Client支持

@SpringBootApplication
//@PropertySource(value={"classpath:config/path.properties"},ignoreResourceNotFound=true,encoding="utf-8")
//@ImportResource("classpath:spring/*.xml")
//@EnableAspectJAutoProxy(proxyTargetClass = true,exposeProxy = true)
@EnableCasClient//开启cas
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

通过上面的3步,就可以完成CAS的客户端认证了!

测试

注意:启动的时候不能使用main方法启动,使用java -jar 或者 在命令窗口执行 mvn clean spring-boot:run; 否则将找不到jsp。
关于 springboot整合jsp 可以参考我的另一篇博客:
https://blog.csdn.net/qq_34021712/article/details/79976349

开始测试

直接访问添加用户的路径 http://app2.cas.com:8082/
然后跳转到cas服务端登录
https://server.cas.com:8443/cas/login?service=http%3A%2F%2Fapp2.cas.com%3A8082%2F
登录之后,操作成功。
然后浏览器输入添加用户的地址,跳转到添加成功页面。客户端1是上一篇整合的 spring传统方式的客户端。可以实现单点的登录,没有影响。也可以添加用户操作,整合成功。
cas5.3.2单点登录-集成客户端-springboot方式(八)_第2张图片

你可能感兴趣的:(cas,CAS学习)