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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34021712/article/details/81366646

原文地址,转载请注明出处: 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。

整合之后目录如下:

这里写图片描述
整合了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.0</modelVersion>
    <groupId>iamlabs.unicon.net</groupId>
    <artifactId>cas-login-springboot-client2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>cas-login-springboot-client2</name>
    <description>A sample web application that exercises the CAS protocol features via the Java CAS Client.</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>

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

    <dependencies>
        <!-- 添加spring-web的依赖,直接就可以使用springmvc了 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--jsp页面使用jstl标签-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <!--用于编译jsp-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- Spring Boot 整合Mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
        <!-- MySql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--连接池  -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.28</version>
        </dependency>
        <!--cas的客户端 -->
        <dependency>
            <groupId>net.unicon.cas</groupId>
            <artifactId>cas-client-autoconfig-support</artifactId>
            <version>1.4.0-GA</version>
            <exclusions>
                <exclusion>
                    <groupId>org.jasig.cas.client</groupId>
                    <artifactId>cas-client-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.jasig.cas.client</groupId>
            <artifactId>cas-client-core</artifactId>
            <version>${java.cas.client.version}</version>
        </dependency>
        <!-- Spring AOP -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>


    </dependencies>

    <build>
        <!--打包后的项目名称  -->
        <finalName>cas-login-springboot-client2</finalName>
        <plugins>
            <!-- java编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- 打jar包的插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib</classpathPrefix>
                            <!-- 程序启动入口 -->
                            <mainClass>com.wangsaichao.cas.Application</mainClass>
                        </manifest>
                        <manifestEntries>
                            <!-- 将lib包抽到上一层文件夹中, classpathPrefix属性是包名-->
                            <Class-Path>./</Class-Path>
                        </manifestEntries>
                    </archive>
                    <excludes>
                        <!-- 将config/**抽离出来 -->
                        <exclude>config/**</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <!-- not append assembly id in release file name -->
                    <appendAssemblyId>false</appendAssemblyId>
                    <descriptors>
                        <!-- 注意这里的路径 -->
                        <descriptor>src/main/build/package.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </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传统方式的客户端。可以实现单点的登录,没有影响。也可以添加用户操作,整合成功。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_34021712/article/details/81366646