淘东电商项目(34) -SSO单点登录(Client端集成)

2023-12-03 14:40

本文主要是介绍淘东电商项目(34) -SSO单点登录(Client端集成),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言

本文代码已提交至Github(版本号:be503769cbddd9c9fe7775956035923410e785ab),有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop

阅读本文时,建议先阅读前面博客:

  • 《淘东电商项目(31) -SSO单点登录(XXL-SSO案例)》
  • 《淘东电商项目(32) -SSO单点登录(集成SSO认证服务)》
  • 《淘东电商项目(33) -SSO单点登录(改造SSO认证服务登录界面)》

前面的文章已经把XXL-SSO服务集成到我们的「淘东电商」项目了,而且把登录界面也移植到了SSO服务,接下来我们集成SSO Client端。

本文目录结构:
l____引言
l____ 1. 首页门户集成SSO Client
l____ 2. 聚合支付门户集成SSO Client
l____ 3. 测试
l____总结

1. 首页门户集成SSO Client

1.Maven添加xxl-sso-core模块:

<dependency><groupId>com.ylw</groupId><artifactId>taodong-shop-common-xxlsso-core</artifactId><version>1.0-RELEASE</version>
</dependency>

2.配置applicatoin.yml,完整内容如下(注意要在hosts文件里配置好域名):

eureka:client:service-url:defaultZone: http://127.0.0.1:8100/eureka
server:port: 8080
spring:application:name: app-portal-webfreemarker:cache: falsecharset: UTF-8check-template-location: truecontent-type: text/htmlexpose-request-attributes: trueexpose-session-attributes: truerequest-context-attribute: requestsuffix: .ftltemplate-loader-path:- classpath:/templatesredis:host: 127.0.0.1port: 6379jedis:pool:max-idle: 100min-idle: 1max-active: 1000max-wait: -1
xxl:sso:logout:path: /logoutserver: http://taodong.ssoserver.com:8099
xxl-sso:excluded:paths: ''

3.添加配置文件:

/*** description:* create by: YangLinWei* create time: 2020/3/19 10:10 上午*/
@Configuration
public class XxlSsoConfig implements DisposableBean {@Value("${xxl.sso.server}")private String xxlSsoServer;@Value("${xxl.sso.logout.path}")private String xxlSsoLogoutPath;@Value("${xxl-sso.excluded.paths}")private String xxlSsoExcludedPaths;@Value("${spring.redis.host}")private String redisHost;@Value("${spring.redis.port}")private String port;@Beanpublic FilterRegistrationBean xxlSsoFilterRegistration() {// xxl-sso, redis initJedisUtil.init(String.format("redis://%s:%s", redisHost, port));// xxl-sso, filter initFilterRegistrationBean registration = new FilterRegistrationBean();registration.setName("XxlSsoWebFilter");registration.setOrder(1);registration.addUrlPatterns("/*");registration.setFilter(new XxlSsoWebFilter());registration.addInitParameter(Conf.SSO_SERVER, xxlSsoServer);registration.addInitParameter(Conf.SSO_LOGOUT_PATH, xxlSsoLogoutPath);registration.addInitParameter(Conf.SSO_EXCLUDED_PATHS, xxlSsoExcludedPaths);return registration;}@Overridepublic void destroy() throws Exception {// xxl-sso, redis closeJedisUtil.close();}}

2. 聚合支付门户集成SSO Client

创建聚合支付门户模块taodong-shop-portal-pay-web,具体的代码不再详述,可以clone代码下来看,SSO Client方式与上面一样:
在这里插入图片描述

3. 测试

1.启动Eureka服务、SSO认证服务、会员服务、门户服务、聚合支付服务。
在这里插入图片描述
2.浏览器访问门户服务(注意:hosts文件已经配置了域名)http://taodong.com:8080/,浏览器自动跳转到登录界面:
在这里插入图片描述
3.输入登录信息,执行登录操作,登录成功,可以看到登录成功后,地址栏的url也发生改变了http://taodong.com:8080/?xxl_sso_sessionid=27_7621bc6aeffe49feb58904ea5f3439d0:
在这里插入图片描述
同时,看下cookie信息,也把session id自动写入了浏览器的cookie:
在这里插入图片描述

4.访问聚合支付门户http://taodong.pay.com:8079/,可以看到直接就跳转到了聚合支付的首页了,而且浏览器的Session id与门户服务的session id一样:
在这里插入图片描述

总结

本文主要讲解SSO Client集成与测试。

这篇关于淘东电商项目(34) -SSO单点登录(Client端集成)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/449806

相关文章

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

springboot2.1.3 hystrix集成及hystrix-dashboard监控详解

《springboot2.1.3hystrix集成及hystrix-dashboard监控详解》Hystrix是Netflix开源的微服务容错工具,通过线程池隔离和熔断机制防止服务崩溃,支持降级、监... 目录Hystrix是Netflix开源技术www.chinasem.cn栈中的又一员猛将Hystrix熔

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.