基于 SpringBoot 的单点登录系统 dp-PASSPORT

简介: dp-PASSPORT 项目介绍 基于SpringBoot的单点登录系统,同时支持web和app不同类型终端登录,并可在不同类型终端灵活切换,统一配置;业务系统无侵入接入,只需要增加passport依赖和配置项即可;客户端支持接入系统登出,登录状态校验(web端支持跨域);代码注释完整,分层规范,100%通过阿里巴巴代码检测,便于二次开发。

dp-PASSPORT

项目介绍

基于SpringBoot的单点登录系统,同时支持web和app不同类型终端登录,并可在不同类型终端灵活切换,统一配置;业务系统无侵入接入,只需要增加passport依赖和配置项即可;客户端支持接入系统登出,登录状态校验(web端支持跨域);代码注释完整,分层规范,100%通过阿里巴巴代码检测,便于二次开发。

项目结构

  1. dp-passport:聚合工程
  2. dp-passport-common:公用基础模块
  3. dp-passport-server:认证服务模块
  4. dp-passport-client:客户端模块
  5. dp-passport-samples:基础示例

单点登录接入方法

  1. maven依赖
    <dependency>
        <groupId>net.chenlin</groupId>
        <artifactId>dp-passport-client</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
  1. application.yml配置(配置项说明见 客户端配置 )
    ids:
      client:
        client-type: web
        app-code: passportTest
        auth-id-cookie-name: dpAuthId
        server-name: http://samplesit.chenlintech.com:9090/sample
        auth-server-url: http://passportsit.chenlintech.com:8080/ids
        cookie-comain: chenlintech.com

客户端功能

  1. 登出
    • web端:[server-name]/logout,重定向server登出地址
    • app端:[server-name]/logout,参数[auth-id-cookie-name]包含在header或param中
  2. 校验登录状态
    • web端:[server-name]/authStatus,返回jsonp
    • app端:[server-name]/authStatus,参数[auth-id-cookie-name]包含在header或param中

使用说明

  1. 开发环境:jdk,maven,mysql,redis,idea,jmeter
  2. 修改host
    • 127.0.0.1 passportsit.chenlintech.com
    • 127.0.0.1 samplesit.chenlintech.com
  3. 数据库脚本见doc目录[dp-emp.sql],用户表只是示例,可根据需要二次开发
  4. 接口测试脚本见doc目录[passport登录测试计划.jmx]
  5. passport默认登录用户:admin,密码:1

服务端配置

  1. auth-id-cookie-name:授权码名称,cookie名称或token名称
  2. welcome-page:欢迎页面,当登陆后重定向地址为空时,跳转该地址
  3. cookie-domain:cookie域,顶级域名
  4. redis-host-and-port:redis地址,格式为 127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381

客户端配置

  1. client-type:客户端类型,配置为web或app,默认缺省为web
  2. app-code:接入应用标识,必填
  3. auth-id-cookie-name:授权码名称,cookie名称或token名称,与服务端一致
  4. server-name:接入系统首页,客户端为app时可不配置
  5. auth-server-url:认证服务器地址,必填
  6. cookie-domain:cookie域,web端顶级域名,客户端为app时可不配置

SessionData:登陆后,从request获取sessionData属性

  1. userId:用户id,获取用户唯一标识
  2. userAlias:用户登录名
  3. isLogin:是否登录:1:登录状态,0:未登录,预留强制退出字段
  4. userEnable:用户可用状态:1:正常,0:禁用
  5. rememberMe:是否记住我,true保留登录7天,false默认30分钟
  6. loginType:登录类型:1:web端,2:app端

错误码定义

错误码 提示信息
0000 处理成功
1000 业务异常
9999 系统异常
4000 账户已登录
4001 账户未登录
4002 用户名不能为空
4003 密码不能为空
4004 当前用户不存在
4005 密码错误
4006 账户已被锁定
4007 您已被强制退出

本文来自云栖社区合作伙伴“开源中国”

本文作者:王练

原文链接

相关文章
|
2月前
|
前端开发 JavaScript Java
springboot实现用户统一认证、管理(单点登录)
springboot实现用户统一认证、管理(单点登录)
49 0
|
2月前
|
小程序 Java
基于springboot的医护人员排班系统
基于springboot的医护人员排班系统
32 0
|
15天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的医院核酸检测服务系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的医院核酸检测服务系统的详细设计和实现
36 0
|
16天前
|
人工智能 移动开发 前端开发
Springboot医院智慧导诊系统源码:精准推荐科室
医院智慧导诊系统是在医疗中使用的引导患者自助就诊挂号,在就诊的过程中有许多患者不知道需要挂什么号,要看什么病,通过智慧导诊系统,可输入自身疾病的症状表现,或选择身体部位,在经由智慧导诊系统多维度计算,精准推荐科室,引导患者挂号就诊,实现科学就诊,不用担心挂错号。
29 2
|
16天前
|
人工智能 前端开发 Java
Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码
智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
163 10
|
16天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
18天前
|
存储 数据可视化 安全
Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术
智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境,这个一体化环境以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合。无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、丰富多彩的校园文化、方便周到的校园生活。简而言之,“要做一个安全、稳定、环保、节能的校园。
40 6
|
19天前
|
数据采集 机器学习/深度学习 自然语言处理
springboot药物不良反应智能监测系统源码
报告详情包含患者基本信息、监测结果、指标数据、医嘱数据,同时展示命中指标趋势图,以及医嘱使用周期,辅助药师做准确判断。
20 4
|
21天前
|
JavaScript 小程序 Java
Java智慧校园系统源码springboot + vue智慧学校源码 微信小程序+电子班牌
智慧校园的建设逐渐被师生、家长认可接受,智慧校园通过对在校师生、教务等所有人员的信息以及各种信息搜集与储存,进行数据优化与管理,为师生们提供更加智能化的校园服务。未来智慧校园将不再是一个陌生词,而会真正地应用在更多的校园管理中,让我们的校园生活变得更加美好
32 2
|
22天前
|
前端开发 Java 数据库
开源一个基于SpringBoot的智慧高校学术报告系统
开源一个基于SpringBoot的智慧高校学术报告系统
48 1
开源一个基于SpringBoot的智慧高校学术报告系统