实战:SpringBoot集成xxl-sso实现单点登录

本文介绍了如何使用SpringBoot集成xxl-sso实现单点登录。内容包括认证中心部署、应用端配置,以及基于Cookie和Token的两种效果演示。通过实例详细阐述了集成过程和配置细节,帮助开发者快速理解和应用。
摘要由CSDN通过智能技术生成

前言

单点登录SSO(Single Sign On),凡是有一定的开发经验的童鞋都应该有应用或者了解过,小编还是实习生的时候,看到登录某个应用服务后,再跳转其他应用服务,竟然不用再次登录了,觉得贼拉风,不知道大家第一见这种场景时是不是跟小编一样的感觉。今天小编给大家介绍一款分布式单点登录组件xxl-sso,目的就是让大家能短时间内快速的应用到项目中,并从中了解其中的相关的实现原理。

项目介绍

xxl-sso是一款基于redis轻量级分布式高可用的SSO实现组件,支持web端(Cookie实现)和app端(Token实现)两种方式,两种方式的验证都是用Filter实现的,小编之所以叫组件不叫框架,是因为集成起来超级方便,源码也非常易懂。废话不多说,直接进入实战把。

实战

1.认证中心部署

从https://github.com/xuxueli/xxl-sso/下载项目,将xxl-sso-server单独拷贝到自己的创建的项目中(其实直接用就可以了,小编喜欢拷贝过来以便自定义修改),这个模块只需要修改下application.properties中的redis配置就可以了。

### web
server.port=8880
server.servlet.context-path=/xxl-sso-server

### resources
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static/

### freemarker
spring.freemarker.templateLoaderPath=classpath:/templates/
spring.freemarker.suffix=.ftl
spring.freemarker.charset=UTF-8
spring.freemarker.request-context-attribute=request
spring.freemarker.settings.number_format=0.##########

### xxl-sso  "redis://xxl-sso:password@127.0.0.1:6379/0"   redis://xxl-sso:123456@localhost:6379/0
xxl.sso.redis.address=redis://127.0.0.1:6379/0
xxl.sso.redis.expire.minite=1440

这里xxl.sso.redis.address是小编自己本地安装的redis单机默认配置信息,还可以通过逗号分隔进行集群,目前这组件只支持分片集群ShardedJedisPool,组件后续会支持JedisCluster,注意redis://{username}:{password}@{ip}:{port}/{db}这种需要密码的配置方式,密码一定不要带#,!,@,$等特殊符号,ShardedJedisPool初始化链接时会报解析错误。

启动项目,效果如下

image-20200605091638566

好了,认证中心OK了,小编项目太多了,端口这里改成了8880,contextPath为/xxl-sso-server,之所以强调端口和contextPath,是因为应用端要用到。

「注意」 : 认证中心的login接口默认是查的内存,具体业务开发中需要改成读数据库的形式。

2.应用端配置

2.1 创建一个新的spring boot module,引入核心jar

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-sso-cor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值