单页网站排名没有苏州建设工程信息网

pingmian/2025/10/12 9:19:50/文章来源:
单页网站排名没有,苏州建设工程信息网,安阳做网站,天津市做网站公司最近一直在研究cas登录中心这一块的应用#xff0c;分享一下记录的一些笔记和心得。后面会把cas-server端的配置和重构#xff0c;另外还有这几天再搞nginxcas的https反向代理配置#xff0c;以及cas的证书相关的知识分享出来。 Cas由两部分组成#xff0c;Cas Server和Cas… 最近一直在研究cas登录中心这一块的应用分享一下记录的一些笔记和心得。后面会把cas-server端的配置和重构另外还有这几天再搞nginxcas的https反向代理配置以及cas的证书相关的知识分享出来。 Cas由两部分组成Cas Server和Cas Client。Cas Server是Cas自己的服务端而Cas Client是Cas客户端往往客户端需要和我们具体的业务系统进行集成这里我们主要详述cas 客户端的配置以及实例 第一步 我们得有一个现成的web项目然后我们要加入cas-client-core-xxx.jar到classpath maven项目用这个 dependencygroupIdorg.jasig.cas.client/groupIdartifactIdcas-client-core/artifactIdversion3.3.3/version /dependency 这里我使用 cas-client-core-3.3.3.jar顺便推荐一个用来搜索和下载引用包的网站我一般从这里下载引用包http://mvnrepository.com/artifact/org.jasig.cas.client/cas-client-core/3.3.3 第二步配置单点登录Filter和注销监听器/过滤器  我们需要在应用的web.xml文件中配置四个Filter这四个Filter必须按照固定的顺序来进行配置而且它们必须配置在应用的其它Filter之前。它们的先后顺序要求如下1、AuthenticationFilter 2、TicketValidationFilter 3、HttpServletRequestWrapperFilter 4、AssertionThreadLocalFilter 1.1、 配置AuthenticationFilter  1.1.1、AuthenticationFilter有两个必须指定的参数 casServerLoginUrl用来指定Cas Server登录地址serverName或service用来指定认证成功后需要跳转地址。 补充 service和serverName一般只需要指定一个如果都指定了参数service将具有更高的优先级即以service指定的参数值为准。 service和serverName的区别 service指定的是一个确定的URL认证成功后就会确切的跳转到service指定的URL serverName用来指定主机名格式为{http/https}:{主机名}:{端口号} 如https://localhost:8335当指定的是serverName时AuthenticationFilter将会把它附加上当前请求的URI以及对应的查询参数来构造一个确定的URL如指定serverName为“http://localhost”而当前请求的URI为“/login”查询参数为“user123pwd123”则对应认证成功后的跳转地址将为“http://localhost/login?user123pwd123”。  AuthenticationFilter可以指定如下可选参数 renew当指定renew为true时在请Cas Server时将带上参数“renewtrue”默认为false。 gateway指定gateway为true时在请求Cas Server时将带上参数“gatewaytrue”默认为false。 artifactParameterName指定ticket对应的请求参数名称默认为ticket。 serviceParameterName指定service对应的请求参数名称默认为service。 例如我是这样配置的 filterfilter-namecasAuthenticationFilter/filter-namefilter-classorg.jasig.cas.client.authentication.AuthenticationFilter/filter-classinit-paramparam-namecasServerLoginUrl/param-nameparam-valuehttps://cas.eguid.cn:8335/cas-server//param-value/init-paraminit-paramparam-nameserverName/param-nameparam-valuehttp://sso.eguid.cn:8080//param-value/init-param/filterfilter-mappingfilter-namecasAuthenticationFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping 1.2、配置TicketValidationFilter 请求通过AuthenticationFilter的认证之后如果请求中携带了参数ticket则将会由TicketValidationFilter来对携带的ticket进行校验。 TicketValidationFilter只是对验证ticket的这一类Filter的统称其并不对应Cas Client中的一个具体类型。 Cas Client中有多种验证ticket的Filter都继承自AbstractTicketValidationFilter它们的验证逻辑都是一致的都有AbstractTicketValidationFilter实现不同的是使用的TicketValidator不一样。这里我们使用Cas10TicketValidationFilter也可以使用Cas20ProxyReceivingTicketValidationFilter或者Saml11TicketValidationFilter。 filterfilter-namecasTicketValidationFilter/filter-namefilter-classorg.jasig.cas.client.validation.Cas10TicketValidationFilter/filter-classinit-paramparam-namecasServerUrlPrefix/param-nameparam-valuehttps://cas.eguid.cn:8335/cas-server//param-value/init-paraminit-paramparam-nameserverName/param-nameparam-valuehttp://sso.eguid.cn:8080//param-value/init-param/filterfilter-mappingfilter-namecasTicketValidationFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping 必须指定的参数 casServerUrlPrefix 用来指定Cas Server对应URL地址的前缀如上面示例的“https://cas.eguid.cn:8335/cas-server。 serverName或service与前面的用法相同。    可选参数redirectAfterValidation 表示是否验证通过后重新跳转到该URL但是不带参数ticket默认为true。useSession                在验证ticket成功后会生成一个Assertion对象如果useSession为true则会将该对象存放到Session中。如果为false则要求每次请求都需要携带ticket进行验证显然useSession为false跟redirectAfterValidation为true是冲突的。默认为true。exceptionOnValidationFailure 表示ticket验证失败后是否需要抛出异常默认为true。renew                         当值为true时将发送“renewtrue”到Cas Server默认为false。 1.3、配置HttpServletRequestWrapperFilter  HttpServletRequestWrapperFilter用于将每一个请求对应的HttpServletRequest封装为其内部定义的CasHttpServletRequestWrapper该封装类将利用之前保存在Session或request中的Assertion对象重写HttpServletRequest的getUserPrincipal()、getRemoteUser()和isUserInRole()方法。这样在我们的应用中就可以非常方便的从HttpServletRequest中获取到用户的相关信息。 filterfilter-namecasHttpServletRequestWrapperFilter/filter-namefilter-classorg.jasig.cas.client.util.HttpServletRequestWrapperFilter/filter-class/filterfilter-mappingfilter-namecasHttpServletRequestWrapperFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping1.4、配置AssertionThreadLocalFilter  AssertionThreadLocalFilter可以在应用的其它地方获取Assertion对象找个过滤器会把Assertion对象存放到当前的线程变量中我们在程序的任何地方都可以从线程变量中获取当前Assertion就不需要再从Session或request中进行解析了。这个线程变量是由AssertionHolder持有的我们在获取当前的Assertion时也只需要通过AssertionHolder的getAssertion()方法获取即可如    Assertion assertion AssertionHolder.getAssertion(); 我是这样配置的 filterfilter-namecasAssertionThreadLocalFilter/filter-namefilter-classorg.jasig.cas.client.util.AssertionThreadLocalFilter/filter-class/filterfilter-mappingfilter-namecasAssertionThreadLocalFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping1.5、配置单点注销监听器和过滤器用于统一注销 !-- 单点注销监听器 -- listener listener-classorg.jasig.cas.client.session.SingleSignOutHttpSessionListener/listener-class /listener !-- 单点注销过滤器 -- filterfilter-namecaslogoutFilter/filter-namefilter-classorg.jasig.cas.client.session.SingleSignOutFilter/filter-class /filter filter-mappingfilter-namecaslogoutFilter/filter-nameurl-pattern/*/url-pattern /filter-mapping 当你真的登录成功后你会发现你回不到原来页面了怎么办其实我们只要在前端给他一个参数就行了可以这样简单实现这个功能 //登录中心url var loginCenter https://cas.eguid.cn:8335/cas-server; function getUrl() {var hostname location.href;return hostname; } //登陆 function login() {location.href loginCenter /login?service getUrl(); } //登录中心执行登出操作 function logoutServ() {alert(开始登出);var loginUrl loginCenter /login?service getUrl();location.href loginCenter /logout?service loginUrl; }在页面上的你得有登录和退出两个按钮分别调用login()和logoutServ()方法。 其实这里还有个小问题就是虽然你在cas-server端注销了你会发现它依然会认为你现在是登录状态所以没有拦截你的请求。 这是因为它时基于session验证的你的server端session已经注销了但是客户端应用这里的session还没有注销 一般我们会使用共享session的方法解决这个问题另外有个简单的方法就是你可以在后台写个用来注销当前用户session的接口。 转载于:https://www.cnblogs.com/eguid/p/10195648.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

书店建设网站的能力一 网站建设的总体目标

一、微网系统运行优化模型 微电网优化模型介绍: 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、遗传算法GA 遗传算法(Genetic Algorithm,GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局搜索…

网站建设中单页面汕头网络公司网站建设

简介 在前一篇文章中,我们讨论了Razor页面。今天我们来谈谈处理方法(Handlers)。我们知道可以将代码和模型放在 .cshtml 文件里面或与 .cshtml 匹配的 .cshtml.cs 文件中。Razor页面处理程序或处理方法将用户请求匹配到我们的方法&#xff1…

口碑好的网站建设无为县城乡建设局网站

Vue常用经典开源项目汇总参考-海量 Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常…

广西建设学院官方网站德州网站建设

最近在复习C的一些相关知识,正好把智能指针重新梳理一遍。 智能指针 作用 为什么需要智能指针?说白了就是为了更加“方便智能”的管理内存,当使用原始指针有时候会因为忘记释放内存,从而导致内存泄漏 。智能指针则可以帮我们释放…

全国部分高校精品课程建设网站小微企业查询系统官网入口

需求 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 示例 1&#…

北京网站模板辽宁省建设银行招聘网站

1. shell中的运算1.1 数学比较运算-eq 等于-ne 不等于-lt 小于-gt 大于-le 小于等于-ge 大于等于浮点数的比较建议将数字等比放大至整数进行比较,例如#比较1.5和2的大小test echo 1.5*10|bc|awk -F "." {print $1} -lt $((2*10))1.2 文件比较运算-d 检查目…

论坛网站需要多大的空间Wordpress pay plugin

C 实现学生成绩管理系统 思路&#xff1a; 定义 Student 类&#xff0c;包含学生的基本信息和成绩。实现添加学生、删除学生、修改成绩、显示所有学生成绩和查找学生的功能。使用向量&#xff08;vector&#xff09;存储学生信息。 #include <iostream> #include <…

有网站怎么做app申请绿色网站

深度学习是一个广泛而快速发展的领域&#xff0c;涉及多种技术和应用。以下是一个深度学习学习路线&#xff0c;包括书籍和视频资源。 入门阶段&#xff1a; 理解基础知识&#xff1a; 书籍&#xff1a;《深度学习》&#xff08;Deep Learning&#xff09;Ian Goodfellow, Yos…

怎么建立网站站点福州哪里制作网站

1.这个原因是由于captcha版本安装太低引起的&#xff0c;所以导致register页面打开报错 2.解决办法就是安装更高级版本的captcha 解决pip install django-simple-captcha0.5.5

石家庄做网站费用中国各省旅游网站建设分析

目录 1.产生内存溢出原因一 &#xff1a;代码中的内存泄漏1.案例1&#xff1a;equals()和hashCode()导致的内存泄漏问题&#xff1a;**正常情况**&#xff1a;**异常情况&#xff1a;**解决方案&#xff1a; 2.案例2&#xff1a;内部类引用外部类问题&#xff1a;解决方案&…

如何免费制作一个自己的网站寿光网站建设定制

文章目录 一、概述1、功能2、要求 二、使用方法1、用于运行演示2、用于开发人员2.1. 探索无/地图数据2.2. 使用 /map 数据进行探索 三、提供的组件1、explore_client1.1. 调用的操作1.2. 订阅主题1.3. 发布主题 2、explore_server2.1. 提供的操作2.2. 调用的操作2.3. 调用的服务…

北京企业网站建设费用wordpress 评价

文章目录 前言主流使用MQTT协议的云平台连接参数连接参数详解1.服务器地址&#xff08;Server Address&#xff09;2.端口&#xff08;Port&#xff09;3.客户端标识符&#xff08;Client Identifier&#xff09;4.用户名和密码&#xff08;Username and Password&#xff09;5…

电商网站开发系统架构东乡网站建设

来源&#xff1a;亿欧 概要&#xff1a;随着越来越多的自动化决策&#xff0c;能够理解AI如何思考对我们来说变得越来越重要。 随着越来越多的自动化决策&#xff0c;能够理解AI如何思考对我们来说变得越来越重要。从挑选股票到检查X射线&#xff0c;人工智能越来越多地被用来…

盐城建设网站表白墙网站怎么做

Nginx配置文件详解请参考另一篇文章 Nginx(三) 配置文件详解 本篇文章主要是探讨Nginx location的匹配顺序&#xff0c;依照惯例&#xff0c;我们还是先贴结论再看测试结果。 匹配顺序 匹配location的过程&#xff0c;其实可以理解成一个在众多选项中寻找最佳答案的过程。当然…

怎么做视频还有网站有什么正网站做兼职的

蓝桥杯[错误的票据] 题目&#xff1a; 某涉密单位下发了某种票据&#xff0c;并要在年终全部收回每张票据有唯一的ID号。全年所有票据的ID号是连续的&#xff0c;但ID的开始数码是随机选定的。因为工作人员疏忽&#xff0c;在录入ID号的时候发生了一处错误&#xff0c;造成了某…

高价做单网站协会网站建设方案书

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

专业的设计网站有哪些群辉做网站服务器

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 代码&#xff1a; <template><div> <!-- jy_mothed 是在 js 中自定义的方法 --><button v-on:click"jy_mot…

学做企业网站学校网站管理

一、consumer导致kafka积压了大量消息 场景&#xff1a; 1. 如果是Kafka消费能力不足&#xff0c;则可以考虑增加 topic 的 partition 的个数&#xff0c; 同时提升消费者组的消费者数量&#xff0c;消费数 分区数 &#xff08;二者缺一不可&#xff09; 2. 若是下游数据处理…

兰州做网站 东方商易电脑工具wordpress

在本教程中&#xff0c;您将看到如何使用 Bootstrap 创建加载、重定向或动作状态的进度条。Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果。Internet Explorer 9 及之前的版本和旧版的 Firefox 不支持该特性&#xff0c;Opera 12 不支持动画。(推荐学习&#xff1a;Bootst…

做网站能挣钱么专业北京seo公司

鱼油账号记录程序&#xff08;续&#xff09; 让编程改变世界 Change the world by program 课件同上一讲&#xff0c;这一讲主要演示编程操作和修改程序&#xff01; [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink hrefhttp://kuai.xunlei.com/d/LDKX…