当前位置: 首页 > news >正文

网站排名提升易下拉教程网站开发专员招聘

网站排名提升易下拉教程,网站开发专员招聘,智慧旅游景区网站建设,网站外部链接建设前言 市场上一下主流的SSO技术搭配方案#xff1a; SpringSecurity OAuth2 SpringSecurity CAS 功能较弱#xff0c;对前后端分离的项目支持不是很好Shiro CAS JWT 可以自定义需求#xff0c;灵活扩展鉴权方式 本篇主要是单点登录#xff0c;不涉及鉴权#xff0c;后面… 前言 市场上一下主流的SSO技术搭配方案 SpringSecurity OAuth2 SpringSecurity CAS 功能较弱对前后端分离的项目支持不是很好Shiro CAS JWT 可以自定义需求灵活扩展鉴权方式 本篇主要是单点登录不涉及鉴权后面文章会再补充 xxl-sso 是一个国产 SSO 框架基于 cookies 实现也许你会考虑跨域问题虽然 cookies 本身不跨域但可以利用它实现跨域的 SSO。 1、拉取官方示例项目 gitee地址https://gitee.com/xuxueli0323/xxl-ssogithub地址https://github.com/xuxueli/xxl-sso 模块说明 xxl-sso-server中央认证服务支持集群xxl-sso-coreClient端依赖xxl-sso-samples单点登陆Client端接入示例项目 xxl-sso-web-sample-springboot基于Cookie接入方式供用户浏览器访问springboot版本xxl-sso-token-sample-springboot基于Token接入方式常用于无法使用Cookie的场景使用如APP、Cookie被禁用等springboot版本依赖环境 JDK1.7Redis4.0 修改本地host 127.0.0.1 xxlssoserver.com127.0.0.1 xxlssoclient1.com127.0.0.1 xxlssoclient2.com 导入项目后启动 修改 application.properties redis为本地地址后启动 xxl-sso-server ### xxl-ssoxxl.sso.redis.addressredis://127.0.0.1:6378xxl.sso.redis.expire.minite1440 完美报错如果你跟我上图一样那么说明你的 redis 设置了密码这个官方示例代码是没有配置 redis 密码的看控制台 我们可以看到初始化时用到了 redis 的本地地址那么只需要知道在哪用了这个地址那么肯定就会有设置密码的地方。 果不其然我们最终发现了地址是通过 JedisShardInfo 这个对象传递进去的进入这个对象后发现竟然有个 password这不就是我们要找的密码吗。 再次启动成功启动。 同样的修改 xxl-sso-samples xxl-sso-web-samples-sprigboot 的 properties 然后再启动。 2、认证流程 客户端端口号被我改成8085认证中心保持默认端口号8080 届时我们启动了两个项目浏览器访问第一个域名http://xxlssoclient1.com:8085/xxl-sso-web-sample-springboot 我们可以看到访问后将被重定向到认证中心 http://xxlssoserver.com:8080/xxl-sso-server 后面携带参数 redirect_url 其为界面跳转前的链接认证通过后将再次重定向回原来的访问链接。 上图为认证成功后的图片会携带 xxl_sso_sessionid其用于识别用户登陆信息并会保存至本地两份 cookie皆用来保存 xxl_sso_sessionid 一份当前域名(xxlssoclient1.com)一份认证中心(xxlssoserver.com)。 保存的两份 xxl_sso_sessionid 值是一样的。 xxl_sso_sessionid由来 在上图中的认证界面点击登录后会调用 WebController doLogin 方法用户登录成功后会生成该用户的 xxl_sso_sessionid 信息并保存至 redis 中同时会把 xxl_sso_sessionid 写入客户端 cookie然后将重定向到 redirect_url并拼接 xxl_sso_sessionid 参数如下图所示。 我们再来访问第二个客户端试试http://xxlssoclient2.com:8085/xxl-sso-web-sample-springboot就目前并未向 http://xxlssoclient2.com:8085 写入任何有关 cookie 用户会话信息 神奇的一幕发生了显然2号客户端也成功登陆了并携带了跟客户端1一样的 xxl_sso_sessionid 信息我们再来看一下 cookie 信息 xxlssoclient2.com中的xxl_sso_sessionid哪里来的 其实通过 debug 发现在 xxlssoclient1.com 登陆的前提下再去访问 xxlssoclient2.com 时由于没有任何登陆信息同样也是首先会跳转至认证中心 还记得客户端1登陆后在认证中心 xxlssoserver.com 同样留下 xxl_sso_sessionid 信息吗 显然客户端2号再跳转过来时复用了认证中心的 xxl_sso_sessionid然后发现存在 xxl_sso_sessionid且 xxl_sso_sessionid 在 redis 里也没过期则认为用户已经登陆了重新重定向到 xxlssoclient2.com 退出操作 看完了统一登录再来看一下退出操作。 退出相对就比较简单了主要就是验证 redis 中的 xxl_sso_sessionid我们来看一下退出方法 首先调用退出方法后会清空当前网站的 cookie、redis 中的 xxl_sso_sessionid比如在 xxlssoclient1.com、xxlssoclient2.com 都登陆的情况下通过 xxlssoclient2.com 退出当前用户则首先会清空 xxlssoclient2.com 站点下的 cookie 同时后台也会清空当前用户的 redis那么再通过 xxlssoclient1.com 访问时尽管携带 xxl_sso_sessionid但此时该信息已经过期所以会再次重定向认证中心。 xxl-sso小结 如上为 xxl-sso 架构图其核心为 sso-server中央认证服务sso-client接入 sso 认证中心的客户端应用sso-sessionId登陆用户会话IDSSO 登陆成功后为用户自动分配sso-user登陆用户信息与 SSO sessionId 相对应 登陆流程剖析 客户端访问受限资源时将会自动重定向到 SSO Server 进入统一登录界面用户登录成功之后将会为用户分配 SSO SessionId 并重定向返回来源客户端端应用同时附带分配的 SSO SessionId在客户端的 SSO 过滤器里验证 SSO SessionId 无误将 SSO SessionId 写入到用户浏览器客户端域名下 cookie 中SSO 过滤器验证 SSO SessionId 通过受限资源请求放行注销流程剖析 用户在客户端应用请求注销时将会重定向到 SSO Server 自动销毁全局 SSO SessionId实现全局销毁用户登陆信息然后访问接入SSO 保护的任意客户端应用时SSO 过滤器均会拦截请求并重定向到 SSO Server 的统一登录界面至此通过 cookieredis 解决了多端统一认证全局 sessionId 解决了 session 共享的问题。 基于Cookie相关概念 登陆凭证存储登陆成功后用户登陆凭证被自动存储在浏览器Cookie中客户端校验登陆状态通过校验请求Cookie中的是否包含用户登录凭证判断系统角色模型-- SSO Server认证中心提供用户登陆、注销以及登陆状态校验等功能-- 客户端应用受SSO保护的客户端Web应用为用户浏览器访问提供服务-- 用户发起请求的用户使用浏览器访问如果 Cookie 被禁用怎么办 xxl-sso 同样提供了 基于 token 接入方式用于无法使用Cookie的场景使用如APP、Cookie被禁用等详细可参考 xxl-sso-token-sample-springboot 项目。 基于Token相关概念 登陆凭证存储登陆成功后获取到登录凭证xxl_sso_sessionidxxx需要主动存储如存储在 localStorage、Sqlite 中客户端校验登陆状态通过校验请求 Header参数 中的是否包含用户登录凭证xxl_sso_sessionidxxx判断因此发送请求时需要在 Header 参数 中设置登陆凭证系统角色模型-- SSO Server认证中心提供用户登陆、注销以及登陆状态校验等功能--客户端应用受SSO保护的客户端Web应用为用户请求提供接口服务-- 用户发起请求的用户如使用Android、IOS、桌面客户端等请求访问更多信息请访问官方文档http://www.xuxueli.com/xxl-sso/#/ 后面会写一篇实际项目中接入 xxl-sso 框架的实例。 我创建了一个java相关的公众号用来记录自己的学习之路感兴趣的小伙伴可以关注一下微信公众号哈niceyoo
http://www.zqtcl.cn/news/38294/

相关文章:

  • 网站一个人可以做吗网站项目团队介绍怎么写
  • 网站怎么推广效果最好沈阳做网站的互联网公司
  • 网站平台开发报价单外链吧
  • 苏州专业设计网站怎么查询网站的备案号
  • 杨凌住房和城乡建设局网站公司已有网站 如何自己做推广
  • 网上做一道题2元的网站本地wordpress 上传到服务器
  • 用wordpress仿a站网站建设开发兴田德润
  • 做网站市场价格小程序sdk开发
  • 无锡网站推广公司排名wordpress user role
  • 服务器外面打不开网站正规手机网站怎么做
  • 代做毕设网站推荐搜资源
  • 高端大气上档次的网站模板网页设计与制作简答题答案
  • 旅游网站介绍怎么写app运营方案
  • 有哪些专门做减肥内容的网站工商管理局注册查询
  • 国外怎么做直播网站wordpress 主页面错乱
  • 桂林网站开发公司电话top域名的网站打不开
  • 咸宁网站设计公司4006668800人工服务几点
  • 广州做网站基本流程北京城乡住房建设厅网站
  • 网站设计计费深圳本地招聘网站
  • 网站正在建设页面制作网站免费建站
  • 做3ds磁铁卡网站微信网络推广方案
  • 金华英文网站建设做网站中的镜像是什么
  • 个人博客网站的建设结构图广安发展建设集团官方网站
  • php做网站如何架构app软件网站开发
  • 卖渔具的亲戚做网站怎么样做一家装修竞标网站
  • 六一儿童节网站制作seo的工作内容
  • 代发新闻稿的网站商品的销售网站总体设计
  • 服务网站建设公司百度论坛首页官网
  • wordpress网站翻译插件网站开网站开发设计公司
  • 没固定ip怎么做网站新品怎么刷关键词