Cas5.2版本的springboot服务搭建,之前搞过,都是通过打成war包,然后放到tomcat跑的方式,比较的low,应广大吃瓜群众的要求,我就写了这一篇博文,关于springboot启动cas的方式。说实话,以前我没打算写得,因为没人问我这个需求,后来问的人多了。
项目源码
https://gitee.com/yellowcong/springboot_cas/tree/master/cas-server-base
目录结构
cas的springBoot启动,搭建流程
1、下载项目
#github官方的地址
https://github.com/apereo/cas-overlay-template
#个人地址
https://gitee.com/yellowcong/springboot_cas/tree/master/cas-overlay-template
2、导入到maven
3、修改build.cmd配置,设定内存大小
修改build.cmd文件,设定内存大小
@set MAVEN_OPTS=-Xms500m -Xmx1g
@set JAVA_ARGS=-Xms500m -Xmx1g
4、修改,设置为默认jdk
这个问题是eclipse的一个bug,可能在ideal编辑器里面,就没有这个问题,
设置为workspace的默认jdk
5、添加springboot的配置文件application.properties
配置
说明
server.context-path=/
表示的是直接通过ip就可以访问到项目,不需要加项目名称
server.port=9000
springboot项目的访问端口号
server.ssl.enabled=true
开启证书,https
server.ssl.key-store=classpath:tomcat.keystore
证书目录,放在classpath目录了
server.ssl.key-store-password=yellowcong
证书的密码
server.ssl.keyAlias=tomcat
证书的别名,需要命令查看
cas.authn.accept.users=yellowcong::yellowcong
静态登录的用户名和密码
下面是application.properties完整配置
##
# CAS Server Context Configuration
#
#设定项目的目录 / 表示根目录
server.context-path=/
#端口号
server.port=9000
#SSL配置 开启https
server.ssl.enabled=true
server.ssl.key-store=classpath:tomcat.keystore
server.ssl.key-store-password=yellowcong
#查看别名,别名不是瞎写的
#keytool -list -keystore D:/tomcat.keystore
server.ssl.keyAlias=tomcat
cas.tgc.secure=false
cas.warningCookie.secure=false
#设置不实用ssl
server.max-http-header-size=2097152
server.use-forward-headers=true
server.connection-timeout=20000
server.error.include-stacktrace=ALWAYS
server.compression.enabled=true
server.compression.mime-types=application/javascript,application/json,application/xml,text/html,text/xml,text/plain
server.tomcat.max-http-post-size=2097152
server.tomcat.basedir=build/tomcat
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%t %a "%r" %s (%D ms)
server.tomcat.accesslog.suffix=.log
server.tomcat.max-threads=10
server.tomcat.port-header=X-Forwarded-Port
server.tomcat.protocol-header=X-Forwarded-Proto
server.tomcat.protocol-header-https-value=https
server.tomcat.remote-ip-header=X-FORWARDED-FOR
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
##
# CAS Cloud Bus Configuration
#
spring.cloud.bus.enabled=false
endpoints.enabled=false
endpoints.sensitive=true
endpoints.restart.enabled=false
endpoints.shutdown.enabled=false
management.security.enabled=true
management.security.roles=ACTUATOR,ADMIN
management.security.sessions=if_required
management.context-path=/status
management.add-application-context-header=false
security.basic.authorize-mode=role
security.basic.enabled=false
security.basic.path=/status/** ## # CAS Web Application Session Configuration # server.session.timeout=300 server.session.cookie.http-only=true server.session.tracking-modes=COOKIE ## # CAS Thymeleaf View Configuration # spring.thymeleaf.encoding=UTF-8 spring.thymeleaf.cache=true spring.thymeleaf.mode=HTML ## # CAS Log4j Configuration # server.context-parameters.isLog4jAutoInitializationDisabled=true ## # CAS AspectJ Configuration # spring.aop.auto=true spring.aop.proxy-target-class=true ## # CAS Authentication Credentials # cas.authn.accept.users=yellowcong::yellowcong #记住我 cas.ticket.tgt.rememberMe.enabled=true cas.ticket.tgt.rememberMe.timeToKillInSeconds=3600 #退出后转发到对应的service cas.logout.followServiceRedirects=true cas.serviceRegistry.initFromJson=true
6、启动服务
需要跑到当前的项目下面,执行
#这个是window的机器下
build.cmd debug
启动完成
7、访问服务
服务地址,是我们在application.properties 里面配置的
8、登录服务
我们设定静态的用户名和密码,这个是我们自己在application.properties 配置的
常见错误
1、下载不下来cas-server-webapp-tomcat-5.2.1.war
#官方下载地址
https://oss.sonatype.org/content/repositories/releases/org/apereo/cas/
#个人的war包下载地址
http://yellowcong.qiniudn.com/cas-server-webapp-tomcat-5.2.0.war
http://yellowcong.qiniudn.com/cas-server-webapp-tomcat-5.2.1.war
导入到项目中
org.apereo.cas
cas-server-webapp${app.server}
${cas.version}
war
system
true
${project.basedir}/src/main/webapp/WEB-INF/lib/cas-server-webapp-tomcat-5.2.1.war
2、java.lang.OutOfMemoryError: Java heap space
内存溢出的问题
修改build.cmd文件,设定内存大小
@set MAVEN_OPTS=-Xms500m -Xmx1g
@set JAVA_ARGS=-Xms500m -Xmx1g
3、Caused by: java.io.FileNotFoundException: \etc\cas\thekeystore
证书没有找到,导致这个问题的原因是,由于系统缺少了证书的配置,我们需要在springboot中,添加证书配置。(原谅我的系统是日文的)
配置springboot,添加证书配置,也可以直接禁用证书的配置
4、CAS is configured to accept a static list of credentials for authentication. While this is generally useful for demo purposes, it is STRONGLY recommended that y
这个破玩意的意思是说,俺们是牛逼的cas,不跟你随便搞静态认证,这个可以忽略,不影响静态认证,后期讲解数据库验证。