首页 > 其他分享 >CAS服务端部署和客户端部署

CAS服务端部署和客户端部署

时间:2023-01-10 10:22:16浏览次数:61  
标签:cas 部署 CAS client org port 服务端

废话不多说直接开搞

环境准备,这里我是用的是:apache-tomcat-8.5.84 -- jdk8 --maven

1.去cas官网github地址下载cas5.3.9的cas-overlay-template-5.3.zip
2.根据解压的这个文件overlay一个cas服务端,基于maven构建方式
3.建立maven cas项目,把生成的cas web服务端文件复制到这个项目中,更改一些必要配置,兼容http访问和数据库读取user表方式验证,跑起cas服务端
4.web客户端引入cas必要的jar包依赖,解决jar包冲突问题,配置web.xml实现单点登入登出

CAS Server部署

1、首先先将服务端代码给拉下来

 https://github.com/apereo/cas-overlay-template/tree/5.3

2、下载解压之后,解压到一个一个开发目录中(自定义)

三、直接将解压好的导入到idea中,(等待下载依赖),下载成功后

3.1:更改application.properties 加入以下配置,还可以设置过期时间,根据需求配置

#修改本地账号密码
cas.authn.accept.users=admin::admin
cas.tgc.secure=false
#开启识别json文件,默认false
cas.serviceRegistry.initFromJson=true
 #开启后注销后可跳转到service指定地址
cas.logout.followServiceRedirects=true

3.2:在HTTPSandIMAPS-10000001.json至此加入http协议支持就完成了

 "serviceId" : "^(https|imaps|http)://.*",

四、修改完成后打成war包 放到tomcat的webapp目录
注意,正常只有一个war,运行后会生成上面的两个文件夹

五、tomcat配置指定war包,修改conf/server.xml,在host标签下增加子标签

<Context path="" docBase="D:\tomcat_install\tomcat7_10\apache-tomcat-8.5.84\webapps\cas.war" reloadable="true"></Context>

六、启动tomcat 访问localhost:8080

七、输入上面配置好的账号密码,跳转到成功页面

八、注销

地址栏直接输入 ip+port/cas/logout注销成功 ,注意注销后记得关闭浏览器

此时CAS的服务端部署完毕!!!!

CAS Client部署

1、https://mvnrepository.com/ 下载jar包 cas-client-core-3.3.3.jar
如果不是使用 maven 来构建项目,可以手动下载对应的包后放到应用的 lib 下。

<dependency>
  <groupId>org.jasig.cas.client</groupId>
  <artifactId>cas-client-core</artifactId>
  <version>3.6.4</version>
</dependency>

2、在web.xml加入以下配置 ,注意配置需要在其他过滤器之前执行

  <filter> 
	<filter-name>encodingFilter</filter-name> 
	<filter-class> 
		org.springframework.web.filter.CharacterEncodingFilter 
	</filter-class> 
		<init-param> 
			<param-name>encoding</param-name> 
			<param-value>UTF-8</param-value> 
		</init-param> 
		<init-param> 
			<param-name>forceEncoding</param-name> 
			<param-value>true</param-value> 
		</init-param> 
	</filter> 
	<filter-mapping> 
		<filter-name>encodingFilter</filter-name> 
		<url-pattern>*</url-pattern> 
	</filter-mapping> 
   <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 -->  
    <listener>  
     <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>  
    </listener>  
    <!-- 该过滤器用于实现单点登出功能,可选配置。 -->  
    <filter>  
        <filter-name>CAS Single Sign Out Filter</filter-name>  
       <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>  
           <init-param>  
            <param-name>casServerUrlPrefix</param-name>  
            <!--这里的server是服务端的IP -->  
             <!--<param-value>http://ip+port/cas/logout</param-value>  -->
        </init-param> 
    </filter>  
    <filter-mapping>  
        <filter-name>CAS Single Sign Out Filter</filter-name>  
        <url-pattern>*</url-pattern>  
    </filter-mapping>  
    <!-- 该过滤器负责用户的认证工作,必须启用它 -->  
    <filter>  
        <filter-name>CASFilter</filter-name>
        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> 
        <init-param>  
            <param-name>casServerLoginUrl</param-name>  
            <!--这里的server是服务端的IP -->  
            <!--<param-value>http://ip+port/cas//login</param-value> -->
        </init-param>  
        <init-param>  
            <param-name>serverName</param-name>  
            <!--客户端ip -->
            <param-value>http://ip+port</param-value>
        </init-param> 
        <init-param>
			<param-name>useSession</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>redirectAfterValidation</param-name>
			<param-value>true</param-value>
		</init-param> 
    </filter>  
    <filter-mapping>  
        <filter-name>CASFilter</filter-name>  
        <url-pattern>*</url-pattern>  
    </filter-mapping>  
    <!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->  
    <filter>  
        <filter-name>CAS Validation Filter</filter-name>  
        <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> 
        <init-param>  
            <param-name>casServerUrlPrefix</param-name>  
			 <!--这里的server是服务端的IP -->  
            <!--<param-value>http://ip+port/cas</param-value>  -->
        </init-param>  
        <init-param>  
            <param-name>serverName</param-name>  
            <param-value>http://ip+port</param-value>
        </init-param>  
        <init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>redirectAfterValidation</param-name>
			<param-value>true</param-value>
		</init-param>
    </filter>  
    <filter-mapping>  
        <filter-name>CAS Validation Filter</filter-name>  
        <url-pattern>*</url-pattern>  
    </filter-mapping>  
    <!-- 该过滤器负责实现HttpServletRequest请求的包裹, 比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。 -->
    <filter>  
        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
        <filter-class>  
            org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
        <url-pattern>*</url-pattern>  
    </filter-mapping>  
     <!-- 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。 比如    AssertionHolder.getAssertion().getPrincipal().getName()。 -->   
    <filter>  
        <filter-name>CAS Assertion Thread Local Filter</filter-name>      
		<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>CAS Assertion Thread Local Filter</filter-name>  
        <url-pattern>*</url-pattern>  
    </filter-mapping>  

此时服务端与客户端 就已经部署好了,请自测吧!!!!!!!!!!!

遇到的问题:

  1、cas登录后跳转客户端时页面报403, 原因是:ticket过期了,设置的配置有问题。只能使用一次, 并且时间设置的很短
  2、按照先登录认证中心,在点击客户端时,出现两次登录问题?原因是:地址栏与过滤器中配置的登录地址不同,造成的,我登录用的是 ip+port:
     过滤器用的是:ip+port/cas/login ,登录也要用过滤器配置的路径,千万不要马虎!

标签:cas,部署,CAS,client,org,port,服务端
From: https://www.cnblogs.com/jingyu-zhang/p/17039195.html

相关文章

  • 记一次部署在docker环境项目发送邮件出现No appropriate protocol
    前言部门有个项目涉及到邮件发送,发送功能在本地测试可以成功发送,但是打包部署到docker环境中,却出现Noappropriateprotocol(protocolisdisabledorciphersuitesar......
  • 在QEMU-KVM环境下部署Oracle 19.16 RAC
    KVM环境和其他虚拟化或真实生产最大差异主要就是在实施前期准备工作上:具体在DB节点和存储环境的准备工作上有差异,本文会详细说明。而剩余基本软件安装和补丁应用部分......
  • windows10下QT5.9.9安装和在VS2019中环境部署(保姆级教程)
    https://www.cnblogs.com/unicornsir/articles/16825578.html1.下载QT5.9.92.安装QT,最好提前注册号一个QT账号(不提前注册也可以,看后面操作)3.在VS2019中部署QT5.9.94.......
  • ODOO15 docker部署教程
    启动主程序$dockerrun-vodoo-data:/var/lib/odoo-d-p8069:8069--nameodoo--linkdb:db-todoo启动数据库$dockerrun-d-vodoo-db:/var/lib/postgresql/data......
  • CASE WHEN的用法 PGSQL
    selectfive_top,only_five,down_kind,line_road,b_id,CASEWHENonly_five>0THEN1ENDAS五分以内,CASEWHENfive_top>0THEN1ENDAS五分以上fromdtinfo_brea......
  • docker部署es集群
      1.服务器192.168.1.240es1192.168.1.125es2192.168.1.141es32.es镜像自行下载3.es配置文件#es1[root@wx-host-0029config]#catelasticsearch.yml#......
  • Apollo本地快速部署
    GitHub项目地址Gitee项目地址Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范......
  • Flink安装部署
    Flink安装部署local本地模式-了解原理操作1.下载安装包https://archive.apache.org/dist/flink/2.上传flink-1.13.1-bin-scala_2.12.tgz到node1的指定目录3.解压t......
  • docker部署rocketmq
     dockerpullfoxiswho/rocketmq:server-4.7.0 (拉取镜像)dockerpullfoxiswho/rocketmq:broker-4.7.0(拉取镜像) mkdir/opt/rocketmq-server (创建mq使用目录)mkd......
  • 部署 anolisOS 8.6
    官方下载地址:https://openanolis.cn/download本次下载镜像:AnolisOS-8.6-x86_64-minimal.iso(dvd的太大,10G)安装界面友好,按步骤往下走就行了#配置网络nmtuivi/etc/s......