单点登录介绍

单点登录设计方案介绍及用OAuth完整实现一个单点登录系统 OAuth是一个授权协议,由雅虎和谷歌公司等组织提出并得到了很多互联网公司的支持和广泛应用。OAuth允许用户授权第三方应用访问他们存储在另外服务提供者上的信息,这样用户就不需要向第三方应用公开自己的密码等私人信息。OAuth 2.0 是OAuth最新的版本,它被设计成适用于移动设备和云计算环境,并且易于实现。OAuth 2.0 授权流程的参与者包括用户(端点用户)、客户端应用程序(第三方应用程序)、资源所有者(受保护的资源的用户)和授权服务器。用户在资源服务器的网站上登录。 阅读详情

1. 单点登录介绍(sso)

单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。实现单点登录说到底就是要解决如何产生和存储那个信任。

2. Cookie方式实现

Cookie 的数据是可以共享的,但要满足条件:

  1. 子path可以访问父path的数据,端口一样
    localhost:8080/crm
    localhost:8080/crm/ehr

  2. 设置根Path,端口可以不一样

    localhost:8080/
    localhost:8090/

  3. 父子域
    如京东购物和京东超市

2.1.maven jar包依赖

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.10.RELEASE</version>
	</parent>

<!-- Add typical dependencies for a web application -->
<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>

	<!--必须有才能编译jsp -->
	<dependency>
		<groupId>org.apache.tomcat.embed</groupId>
		<artifactId>tomcat-embed-jasper</artifactId>
		<scope>provided</scope>
	</dependency>

	<!-- JSTL标签类 -->
	<dependency>
		<groupId>jstl</groupId>
		<artifactId>jstl</artifactId>
		<version>1.2</version>
	</dependency>
	<!-- 热部署 -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-devtools</artifactId>
		<optional>true</optional>
	</dependency>
	
	<!--测试 -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>

2.2.application.yml 配置信息

构建两个项目:crm 、ehr

eh项目r:
	server:
	  port: 8080
	 # context-path: /crm
	spring:
	  mvc:
	    view: 
	      prefix: /WEB-INF/jsp/
	      suffix: .jsp

crm项目:
	server:
	  port: 8090
	 # context-path: /ehr
	spring:
	  mvc:
	    view: 
	      prefix: /WEB-INF/jsp/
	      suffix: .jsp

2.3核心代码

Ehr:核心代码

@RequestMapping("/index")
@Controller
public class IndexController {
	@RequestMapping("/index")
	public String index(HttpServletResponse response) {
		return "index";
	}

@RequestMapping("/login")
public String login(String name,String pwd,HttpServletResponse response) {
	String page="index";
	if("admin".equals(name)&& "123456".equals(pwd)){
		Cookie cookie=new Cookie("login", "yes");
		cookie.setPath("/");
		response.addCookie(cookie);
		page="success";
	}
	
	return page;
}

Crm:核心代码

@RequestMapping("/")
	public String login(HttpServletRequest request) {
		String page = "login";
		Cookie[] cookies = request.getCookies();
		if (cookies != null) {
			for (Cookie cookie : cookies) {
				if ("login".equals(cookie.getName())) {
					if ("yes".equals(cookie.getValue())) {
						page = "success";
					}
				}
			}
		}

		return page;
	}

2.4.页面代码

登录页面代码:

<h1>c1登录</h1>
<form action="/index/login" method="post">
用户名:<input name="name" /><br/>
密码:<input name="pwd"  /><br/>
<input type="submit"  value="登录"/>
</form>

3 redis-session的单点登录实现

1. Maven 依赖

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-redis</artifactId>
		<version>1.4.1.RELEASE</version>
	</dependency>
	<!-- spring-session 共享 -->
	<dependency>
		<groupId>org.springframework.session</groupId>
		<artifactId>spring-session-data-redis</artifactId>
	</dependency>

2. 在启动服务类加上@EnableRedisHttpSession

@SpringBootApplication
@EnableRedisHttpSession
public class Client_2 {
	public static void main(String[] args) {
		SpringApplication.run(Client_2.class, args);
	}
}

3. 核心代码

@RequestMapping("/login")
	public String login(String name,String pwd,HttpServletResponse response, HttpServletRequest request ) {
		String page="login";
		if("admin".equals(name)&& "123456".equals(pwd)){
			request.getSession().setAttribute("user", "yes");
			page="success";
		}
		return page;
	}

4.若是redis有密码,请配置

spring:
		#redis配置
	  redis:
	  #  数据库索引
	      database: 0
	  #    服务器地址
	      host: 127.0.0.1
	  #    服务器连接端口
	      port: 6379
	  #    链接密码
	      password:
	  #    链接池
	      pool:
	  #    最大连接数(负值表示没有限制)
	        max-active: 8
	  #      最大阻塞等待时间(负值表示没有限制)
	        max-wait: 1
	  #      最大空闲链接
	        max-idle: 8
	  #      最小空闲链接
	        min-idle: 0
	  #    链接超时时间(毫秒)
	        timeout: 5000 

4 使用token实现单点方式

这种方式的获取比较复杂,上述两种方式比较简单,一般小公司用上面的两种方式即可
请参考企业微信的accesstoken获取的方式

单点登录的一些详细的介绍以及源代码 单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解 立即下载

相关推荐

安装matlab_Matlab+yalmip+cplex安装教程及算例

数学建模/科研学习推荐学习软件:Matlab+yalmip+cplex安装教程及算例其实绝大多数本科生都是在用Matlab和LINGO求解优化问题,Matlab可以求解一般优化问题,但是当优化问题规模比较大或者在应对一些非线性问题时候,Matlab会出现求解时间长,求解效率低,甚至难以求解等问题。Matlab+yalmip+cplex是Matlab通过调用商业软件cplex求解,求解时间短,这里简...

weixin_28939637的博客 5005

post请求设置表单form-data格式的几种方式

我用默认的post方法发送数据的时候发现后端获取不到数据,然而在network中看到参数是的确传出去的了。而且用postman测试的时候也是可以的,比较了下两个的不同发现是postman使用的是form-data格式,于是用form-data格式再次请求,发现OJBK 这两种格式都是无法使用的: 方法一:配置transformRequest 缺点:其他请求格式的数据也会被重新格式化(PUT,PATCH) import axios from "axios" //引入 //设置axios.

陈新科的博客 1万+

电力系统实时仿真技术:从硬件在环到主流平台实践

实时仿真是一种基于高性能计算硬件,在严格时间约束下模拟物理系统动态行为的关键技术。其核心原理在于通过硬实时计算,确保仿真步长内的模型求解与输出时间严格同步,从而构建高保真的虚拟测试环境。这项技术的核心价值在于为电力电子、新能源并网等复杂系统的研发提供了无风险的“数字沙盘”,能够安全地验证控制器逻辑、保护装置动作及系统稳定性。在工程实践中,硬件在环测试通过连接虚拟模型与真实硬件,形成了控制器硬件在环和功率硬件在环两大主流应用场景,广泛应用于设备研发、电网安全分析和人员培训。本文聚焦于电力系统领域,深入解析了实

weixin_30952479的博客 420

SSO(单点登录)介绍

标签:sso iplas ##一、SSO(单点登录)介绍 SSO英文全称Single SignOn,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 ###实现机制 当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登...

jiezaizone的博客 7235

5分钟搞定:用Ollama在MacBook上本地运行Qwen3大模型(附避坑指南)

本文详细介绍了如何在MacBook上使用Ollama快速部署和运行Qwen3大模型,包括安装步骤、性能优化技巧及常见问题解决方案。Ollama作为一款轻量级工具,特别适合M系列芯片的Mac用户,支持多种量化版本,显著降低资源消耗,提升推理速度。

sql99的博客 820

单反相机物镜设计[DG-10]

REAR(要打在像面,操作数要找像面对应位置15):以透镜单位表示的真实光线径向坐标,波长由Wave定义,参见“Hx、Hy、Px和Py”。最小玻璃厚度最小不能小于semi-dia的1/10,要根据layout看有没有过厚过薄,反复调节。PROD:两个操作数的乘积(操作#1 X操作#2)。3x4就是57.3x0.41=23.5。拦光一般在第一面和最后一面操作,减少边缘无用光线。光阑面与镜面贴近,要调距离,同时设置光阑像差。后截距是指从镜头后表面到焦点的距离。CONS:弧度转为角度。镜头相互嵌入,有错误。

weixin_72050316的博客 600

持久化spring-redis-seeeion,避免开发时的重复登录

持久化session 问题由来: 项目中使用redis来存储session,在开发的时候每次session过期之后都需要重新登录,导致经常性的需要重新登录,设置新的token等。 于是思考可不可以持久化session,在开发的时候连接的是本地的redis,这样可以肆无忌怛的删除,增加数据。 在网上搜索了许多的教程,有些说是要重写,配置bean等,尝试了一下,由于本身对于内部的原理就不是特别了解,出了错误也不知道原因,且确实比较麻烦,之后慢慢摸索可以直接使用以下的方法。 方法一: 在启动类上加注解 @Ena

diddied的博客 432

UE5实现建筑剖切效果

UE5实现建筑剖切效果

专注GIS开发 8458

单点登录(SSO)详解

在分布式项目架构中,为了提高用户体验性,用户只需要认证一次便可以在多个拥有访问权限的系统中访问,这个功能叫做单点登录(SSO)。

weixin_58403235的博客 2万+

Unity 之如何使用Pico4u锚点功能实现一个世界锁GameRoot

摘要 空间锚点技术是混合现实(MR)应用的核心,能永久记录虚拟物体的空间位置。文章介绍了在Unity中使用Pico SDK实现空间锚点的完整流程:1)环境配置需安装XR模块和Pico SDK;2)关键操作包括启动空间感知、创建/删除/查询/更新锚点;3)提供了经典应用案例,通过GameRoot节点实现场景固定和锚点同步。源码展示了基于XR交互工具包的锚点抓取与位置更新实现,为MR开发提供了实用参考方案。

TxNet 971

量子化学仿真软件:VASP_(9).磁性材料计算

在量子化学仿真软件 VASP 中,磁性材料的计算是一个复杂但重要的过程。通过正确设置磁性状态、分析磁性性质、优化计算参数以及研究磁性相变和磁动力学,可以更准确地描述和预测磁性材料的性能。希望本节的内容能够为研究磁性材料的科研人员提供有用的参考和指导。

kkchenjj的博客 1374

单点登陆概述

单点登陆

抽象的螺旋 541

MyBatis-Plus 实战:敏感字段自动加解密支持模糊查询

本文基于MyBatis-Plus框架提出了一种全链路敏感字段加密方案。通过自定义TypeHandler实现数据入库自动加密和查询自动解密,结合重写LambdaQueryWrapper处理查询条件加密,并适配多种查询方式。方案核心包括:1)AESUtil工具类提供加解密基础能力;2)EncryptTypeHandler实现字段类型转换;3)实体类通过注解配置加密字段。该方案在保证数据安全的同时,对业务代码侵入性小,支持姓名、手机号等敏感信息的全流程加密处理,满足系统开发的安全需求。

蔡定努 595

从Token介绍到单点登录SSO

单点登录(Single Sign-On,简称SSO)是一种身份验证机制,指在同一帐号平台下的多个应用系统中,用户只需登录一次,即可访问所有相互信任的系统。简而言之,多个系统,统一登陆。(允许用户在一次登录后,通过一组凭据(如用户名和密码)访问多个相关应用程序或系统,而无需为每个应用程序都重新输入凭据。通过 cookie 进行验证cookie 是某些网站为了辨别用户身份,由服务端生成,发给客户端暂时或永久保存的信息。简言之,cookie 就是一种存储用户数据的媒介。

qq_52869537的博客 1629

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

CAS单点登录系列之原理简单介绍

1. SSO简介 1.1 单点登录定义 单点登录即在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统。 2. CAS简介 CAS(Center Authentication Service)是耶鲁大学研究的一款开源的单点登录项目,主要为web项目提供单点登录实现,属于Web SSO。 待续…,PS:找时间继续写… 单点登录实现方式: 单点登录的三...

Nicky's blog 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

单点登录和JWT的介绍与使用

最近复习之前做的项目中包含的知识,看了之前看的视频的笔记,并结合自己的理解写下了这篇关于JWT知识的博客,希望能加深自己的印象以及帮助的诸位小伙伴儿们

小威的博客 3887

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SSO单点登录介绍

SSO单点登录介绍 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他联邦系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的...

bwwd的博客 485

单点登录与权限管理本质:单点登录介绍

无论是哪一种协议,都需要一个中间系统,对验证和授权进行统一管理。另外,cookie的管理和安全问题需要重点考虑。后面一篇会介绍下可能存在哪些安全问题,而对于安全问题如何解决,cookie和session具体如何管理,会在介绍每个具体协议的时候重点说明。系列索引:1.session和cookie介绍2.HTTP重定向3.单点登录介绍4.cookie安全问题5.权限管理介绍/>

AzulSystems的博客 714

单点登录原理介绍 - 邱乘屹的个人技术博客

单点登录原理介绍如何解决单点登陆使用cookie和session解决单点登陆使用JWT解决单点登陆 单点登录(Single Sign On),简称为 SSO。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。因在不同场景中使用的单点登录方式不同,在此做一个记录。 如何解决单点登陆 Redis作为缓存储存session信息(cookie/session) JWT来解决单点登陆 使用cookie和session解决单点登陆 将Session存储于Redis上,然后将整个系统

weixin_47074764的博客 776

CAS SSO单点登录框架介绍

1.了解单点登录 需要源码可以加QQ: 2670716182 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: User(多个) Web 应用(多个) SSO 认证中心(一个) 2.SSO 实现包含以下三个原则 所有的登录都在 SSO 认证中心进行。 SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的用户. SSO 认证中心和所有的 Web 应用建立一种信任关系.

m0_46413295的博客 421

cas单点登录介绍

1 什么是单点登陆单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。较大的企业内部,一般都有很多的业务支持系统为其提供相应的管理和IT服务。例如财务系统为财务人员提供财务的管理、计算和报表服务;人事系统为人事部门提供全公司人员的维护服务;各种业务系统为公司内部不同的

wang725的专栏 499

单点登录CAS介绍

单点登录SSO(Single Sign-On)是身份管理中的一部分。当一个大系统中存在多个子系统时,用户只需要正确登陆其中任何一个子系统,就可以在各个子系统中来回自由切换和使 用。CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架。 CAS介绍 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提...

jbljm的专栏 360

usmssosetup 单点登录被禁用_在 Apple 设备上使用单点登录介绍

在 Apple 设备上使用单点登录介绍单点登录 (SSO) 是用户提供一次认证信息并接收票据以在有效期内使用它来访问资源的过程。该过程让用户保持对资源的安全访问,而无需在每次请求访问时均出示凭证。它还可以确保从不通过网络传送密码,从而提高日常使用 App 的安全性。App 可以通过 Kerberos(部署最为广泛的 SSO 技术)来利用现有的企业内部单点登录 (SSO) 基础架构。如果配置了 Ac...

weixin_39593460的博客 2479
上一篇: kafka-demo
下一篇: vue入门
hao9e
博客等级 码龄7年 189粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值