原文地址,转载请注明出处: 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包。
<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>
#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 可以自己看一下源码,都是之前使用过的类。
@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传统方式的客户端。可以实现单点的登录,没有影响。也可以添加用户操作,整合成功。