cas注销时地址是https,提示Error is [java.security.cert.CertificateException: No subject alternative names present...] 因为某些原因,访问cas以及子系统希望通过ip来访问并且要使用https协议 网上很多文章说要使用CAS单点登录必须要配置域名, cas server是不能通过ip访问的,这实际上是错误的,这和cas...无关,目前可以通过java 1.7来生成证书,需要JDK1.7,因为需要-ext参数 生成证书方式 keytool -genkey -alias cas41key -keyalg RSA -keysize...10.1.4.41,OU=csoa,O=csoa,L=FZ,ST=FZ,C=CN" -ext san=ip:10.1.4.41 -validity 3600 -keystore /home/nloa/bak/cas41
不管是什么公司,只要产品数量大于一个,那么单点登录势必是绕不过去的一个问题。作为前端程序员,我们对其虽然接触不多,但适当的了解还是必要的。本文就来谈谈单点登录相关的问题。...此时,两个产品都是在一个域名下,单点登录是很自然的选择。我们来捋一捋步骤,搞清楚这里的步骤是理解后文的基础,千万不要跳过。 用户访问产品 a,向 后台服务器发送登录请求。...下一次,当用户访问同域名的产品 b 时,由于 a 和 b 在同一域名下,也是 dxy.cn,浏览器会自动带上之前的 cookie。此时后台服务器就可以通过该 cookie 来验证登录状态了。...没关系,下面我们借助一个简单的场景,再来仔细捋一捋用 CAS 实现 SSO 的详细步骤,顺便加深理解之前提出的概念。 开始! 用户访问产品 a,域名是 www.a.cn。...注意,此处的 cookie 和 session 保存的是用户在 a 服务器的登录状态,和 CAS 无关。 之后用户访问产品 b,域名是 www.b.cn。
; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; #------- ssl 301 转跳...# 这是主证书 2_ssh.gs.crt # 密匙,key在前,crt 在后 3_ssh.gs.key 第一步: 当前域名...$_SERVER['SERVER_NAME' 表示所有域名都转跳https,并随机访问域名 为你提供几个ssl 证书注册地址: https://buy.cloud.tencent.com/ssl?...fromSource=ssl https://myssl.com/csr_create.html https://www.aliyun.com/product/cas?...code=TrustAsiaDVG5#product 相关连接: 301 转跳到ssl证书 https 或者转跳到指定域名
在清楚了 CAS 登陆服务请求的机制之后,我们来开始搭设服务,搭设一个完整的 CAS 服务。 CAS 示例服务 ?...MAMA_CAS_SERVICES = [ { # 必填项,客户端允许访问的域名 'SERVICE': 'http://127.0.0.1:8000',...登陆CAS服务 ? image-20200909202310620 提示已经登陆成功,要注意,这里没有其他配置,所以不会跳至其他的页面。只是在上面提示已经登陆成功!...例如: python-cas:https://github.com/python-cas/python-cas django-cas-ng: https://github.com/django-cas-ng...user = request.user # 获取当前的用户 # 判断用户是否已登陆 if user.is_authenticated: # 用户已登陆, 则跳至首页
学习编程,进程跳不过去,好多初学者可以向背教科书一样说出进程和线程的区别,但是很少能真正的理解进程整个运行过程。
开始时, 青蛙默认已站在第一块石子上,并可以假定它第一步只能跳跃一个单位(即只能从单元格 1 跳至单元格 2 )。...示例 1: 输入:stones = [0,1,3,5,6,8,12,17] 输出:true 解释:青蛙可以成功过河,按照如下方案跳跃:跳 1 个单位到第 2 块石子, 然后跳 2 个单位到第 3 块石子..., 接着 跳 2 个单位到第 4 块石子, 然后跳 3 个单位到第 6 块石子, 跳 4 个单位到第 7 块石子, 最后,跳 5 个单位到第 8 个石子(即最后一块石子)。...步,那么第二次至多跳2步,以此类推,青蛙在第i块(i从0开始)石头上至多只能跳i+1步。...在第j块石头上至多只能跳 j+1 步 ,如果k > j+1,说明石头 i 隔石头 j 太远了,远到不满足题目的隐藏规则,所以青蛙必定跳不过去。
; } } 我们把获取锁的过程比作拨通女神的电话,在1处由于value值为volatile所以每次都能拿到最新的女神的电话,可能在2的时候女神电话占线,于是3的时候就打不过去呀...;这就是多线程的同步问题了,但是没关系呀,再拨,一个for循环,继续播,直到拨通,由此可见,CAS锁叫乐观锁呢是因为觉得不会每次到2的时候都占线吧。
CAS用来标志用户的token是存在它自己的域名下的,不是存在web应用的域名下的.CAS判断用户登录由agent决定,agent验证用户信息有两种处理. 1.如果这个用户是以前没登录过的,也就是说这个...web应用的域名下没有一个agent颁发的sessionid(在cookie里)的话,那么它会跳转到CAS server的登录界面(这里由CAS server决定是否显示登录界面,还是直接就跳转回来,也就是不是每次都要求输入密码登录的...). 2.CAS的登录界面会有两种处理.如果以前没登录过,也就是在CAS server自己的域名下,没有用户的token的话,就要求登录.如果有token的话,就返回一个ticket(也就是不显示登录界面直接重定向返回了...,权限的问题可以这么解决).然后agent就保存此时的session,把sessionid放到该web应用域名下的cookie里....以上逻辑说明了,标志用户身份的token在CAS server的域名下,每个web应用不保存用户身份.因此跨域是绝对没问题的.只是single sign off就需要CAS server的配合了,要把那个
不同子域名 子域名间 Cookie 是不共享的,但各子域名均可获取到父级域名的 Cookie,即 app.demo.com与 news.demo.com均可以获取 demo.com域名下的 Cookie...CAS CAS(Central Authentication Service),即中央认证服务,是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。...既然不能跨域获取,那 CAS 如何做到共享呢?它通过跳转中间域名的方式来实现登录。 页面访问流程如下图: ? 以下为连环画形式,期望能让读者更好的理解: ? ? ? ? ? ? ? ? ? ? ?...CAS 规定 ST 只能保留一定的时间,之后 CAS 服务会让它失效,而且,CAS 协议规定 ST 只能使用一次,无论 ST 验证是否成功,CAS 服务都会清除服务端缓存中的该 ST,从而规避同一个 ST...//apereo.github.io/cas/5.2.x/protocol/CAS-Protocol.html)
1.因为是本地模拟sso环境,而sso的环境测试需要域名,所以需要虚拟几个域名出来,步骤如下: 2.进入目录C:\Windows\System32\drivers\etc 3.修改hosts文件 127.0.0.1...其中名字与姓氏使用你的域名,保持和C:\Windows\System32\drivers\etc\hosts 文件中映射域名相同,注意不要写成IP。...在这里我使用的口令是minglisoft(这个要记住,后面还会使用到) 名字姓氏使用的是jeesz.cn(对应host中的域名配置) (五)使用命令keytool -export -file D:/sso-cas...-4.2.7.war包拷贝到tomcat容器中,并命名为cas.war如下: 10.重启启动tomcat容器,访问cas, https://jeesz.cn:8443/cas 默认用户名为:casuser...默认密码为:Mellon 以下是所有的cas sso单点登录交付件和源码 到此cas的server测试成功!!
对于同一个根域下的登录问题 如果我们的站点有不止一个业务,那么他们可能部署在不同的机器上,也往往需要不同的域名进行区分。...我们有一个系统域名为javahelp.com.cn,当我们登录的时候访问javahelp.com.cn/wp-login进行登录,登录成功之后将Cookie回写到javahelp这个域名下。...我们还有一个系统域名为javaWeb.com,当我们访问inside-javaWeb的时候,我们没有Cookie,那么请求跳转到中间系统jump。此时需要将当前域名带到参数中便于jump校验。...这样就能保证当前浏览器在站点1的域名下,有站点1的Cookie,同时当前浏览器也有CAS Server的Cookie。...JDK 1.6.0_18 Tomcat 6.0.29 CAS-server-3.4.11、CAS-client-3.2.1 根据演示需求,用修改hosts 文件的方法添加域名最简单方便(这个非常重要)
不同子域名 子域名间 Cookie 是不共享的,但各子域名均可获取到父级域名的 Cookie,即 app.demo.com与 news.demo.com均可以获取 demo.com域名下的 Cookie...CAS CAS(Central Authentication Service),即中央认证服务,是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。...既然不能跨域获取,那 CAS 如何做到共享呢?它通过跳转中间域名的方式来实现登录。 页面访问流程如下图: ? 以下为连环画形式,期望能让读者更好的理解: ? ? ? ? ? ? ? ? ? ? ?...CAS 规定 ST 只能保留一定的时间,之后 CAS 服务会让它失效,而且,CAS 协议规定 ST 只能使用一次,无论 ST 验证是否成功,CAS 服务都会清除服务端缓存中的该 ST,从而规避同一个 ST...//apereo.github.io/cas/5.2.x/protocol/CAS-Protocol.html) 看完两件事 如果你觉得这篇内容对你挺有启发,我想邀请你帮我两件小事 1.点个「在看」,让更多人也能看到这篇内容
需要单点登录主要是因为http的同源策略限制了两个不同源的资源进行交互,比如cookie只能是当前域名和子域名可以访问。...提一嘴,主域名可以设置cookie私有还是共享给子域名,主域名不能设置子域名的cookie,子域名设置cookie只能设置自身或者高于自身的域名下(这是单点登录的前提)。...要了解单点登录就一定要知道CAS: CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。...CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。...有单点登录就有单点登场,单点登出就简单了,一个地方退出登录,通知自己的服务器,服务器发起请求到CAS,然后CAS清除登录的信息,并发给在这边注册过的服务器,通知退出登录了,清除所有的登录信息。
APP与小程序的关系二 我给你导量了,你不给我导量,好像说不过去啊?所以,就有了今天的新功能,本次新功能的好处是:APP给小程序导量。 ?...就这么简单,就能实现两者间的随便互跳。...互跳带来的影响 最直接的影响是:会分流APP客户端内部分用网页承载的活动或者功能页面的访问量,因为这类型页面相当于多了一种可选的落地形态---小程序,而小程序在微信内,目前所具备的功能相比H5来说,可能还更强悍和灵活些
实现方案 单一域名:可以把 cookie 种在根域名下实现单点登录 多域名:常用 CAS来解决,新增一个认证中心的服务。...CAS(Central Authentication Service)是实现SSO单点登录的框架 CAS实现单点登录的流程: 用户访问系统A,判断未登录,则直接跳到认证中心页面 在认证中心页面输入账号...具体的可以下面的文章,讲解的很详细 CAS实现单点登录SSO执行原理探究(终于明白了) 一张图看明白CAS单点登录原理 关键点 下面是举例来详细说明CAS实现单点登录的流程: 一、第一次访问系统A 用户访问系统...A (www.app1.com),跳转认证中心 client(www.sso.com),然后输入用户名,密码登录,然后认证中心 serverSSO 把 cookieSSO 种在认证中心的域名下 (...cookieSSO,SSO域名下的cookie cookieA,系统A域名下的cookie cookieB,系统B域名下的cookie
改进版本——同域下的单点登录的设计 一般来说,同一个企业的系统所采用的一级域名是都是相同的,比如a.xxx.com,b.xxx.com。...我们可以在登录的时候把cookie设置为一级域名级别,即xxx.com。...当然这种方案并不好,因为往往很多系统一级域名都是不相同的,比如某宝和某猫。...改进方案——单点登录系统 同域下的单点登录可以简单利用Cookie和session来解决,但是很多时候系统之间是不同一级域名的。不同域之间Cookie是不共享的,怎么办?...2、用户到了CAS系统之后,发现用户也没在CAS上的登录过,那么则跳转到登录界面。 3、用户登录CAS系统后,将登录状态写入CAS的session中,浏览器中写入CAS域下的cookie。
(i<=n+1) 12 { 13 count++; 14 if(dis<stone[i]-stone[i-1]) return false ; //这个石头跳不过去...ans,low=0,high=length; 32 while(low<=high) 33 { 34 ans=(low+high)/2; //跳这么远的时候能否满足要求
示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。...从右向左遍历,如果当前a[i]为0,则看是否能跳过此0(最后一个0除外),也就是说,在其左边(j(i-j),否则跳不过去此0,自然无法达到最右。...那么不可能到达 return false; } // 这里的思路是:如果找到0,那么看前面是不是都满足能跳过这个0,如果从任何一个点都跳不过这个
比如说现在有个一级域名为 www.imooc.com ,是教育类网站,但是慕课网有其他的产品线,可以通过构建二级域名提供服务给用户访问,比如: music.imooc.com , blog.imooc.com...二级域名自己的独立cookie是不能共享的,不能被其他二级域名获取,比如:music.imooc.com的cookie是不能被mtv.imooc.com共享,两者互不影响,要共享必须设置为.imooc.com...顶级域名不同怎么办? 上一节单点登录是基于相同顶级域名做的,那么如果顶级域名都不一样,咋办?比如 www.imooc.com 要和www.mukewang.com 的会话实现共享,这个时候又该如何?!...那么遇到顶级域名不同却又要实现单点登录该如何实现呢?我们来参考下面一张图: ?...那么这个就称之为CAS系统,CAS全称为Central Authentication Service即中央认证服务,是一个单点登录的解决方案,可以用于不同顶级域名之间的单点登录。 过程解析 ?
---- 跳跃游戏 I 输入一个非负整数数组nums,数组元素nums[i]表示的是:如果你站在位置 i ,最多能够往前跳几步。...成功的方式太多了,但是失败的方式只有一个:有足够多的0横亘在其中,导致不论怎么努力就是跳不过去。...if(farthest <= i) return false; } return farthest >= n-1; } ---- 跳跃游戏 II 跟上面差不多,但是这次保证你能跳到最后,问你最少跳几次...去递归选取后续跳法里面的最优,属于一种:从后向前的解法,可以理解为从底层开始层序遍历一棵树。只不过我们后来通过备忘录对这棵树进行了剪枝,不然真的不忍直视啊。...举个例子:[2,3,1,2,5,1] 当你现在在下标0的位置,你可以跳两步。动归的话会递归去算这两步到最终结果的最优步数,但是贪心算法不这样。 贪心算法是每次尽可能多跳吗?
领取专属 10元无门槛券
手把手带您无忧上云