pringboot+mybatis+redis+cookie单点登录
一、基本思路
单点sso用于多系统分布式,当多个系统分布式部署后,当然需要统一的登录接口。sso应运而生。
可以想见,单点应该是提供一个服务给其他系统,当其他系统需要验证登录状态的时候,调用服务,就可以确定用户的信息权限的状态。
1、首要要定义一个接口用于每个系统,方便接收数据。
2、应该遵循流程:
登录-》查数据库 -》用户存在 -》生成唯一token -》将用户信息和token存入redis缓存存入cookie -》将用户信息打包成接口返回值 -》返回首页,或相应页面。
-》用户不存在 -》提示重新登录。
3、需要写的类:
1、一个接口返回值类: 应包含status状态,msg返回消息,data可能用到的数据。
2、cookieUtil包: cookie的常用方法。
3、jsonUtil包: json常用方法。
4、serializeUtil: 序列化对象。
5、Controller: 起码包含 login方法,logout方法,checkName检查用户名是否可用(供ajax调用)方法,getUserByToken方法(供其他系统调用检查登录状态)。
6、service: 对应需求的业务实现方法。
7、Dao: login检查用户方法,checkName检查用户名是否可用。其他方法都用mybatis generate自动生成吧,很省事。
8、model: 自动生成。
4、大概的思路是这样,实际需求比较简单,没有难点,这里我大概说一下thymeleaf模板。
当部署到tomcat以后访问地址会发生变化,在myeclipse中是http://ip:port/的方式,部署后会成为http://ip:port/项目名的方式。
为了部署和调试的环境一样,方便部署,要在application.properties中添加一句“server.context-path=/sso/”,
将来打包发布后生成sso.war包部署到tomcat的webapps中,就不会有问题了。
这样添加后,thymeleaf模板的页面访问地址要加上
/*<![CDATA[*/
var url = /*[[@{/user/check}]]*/"/user/check";
/*]]>*/
<img th:src="@{/images/loginbanner.png}" />
这样来获得地址的上下文。
pringboot+mybatis+redis+cookie单点登录的更多相关文章
- cookie单点登录(跨域访问)
新近一家公司上来就让做oa,要求嵌入公司现有系统模块,自然而然想到模拟post单点登录对方系统新建单点登陆页面保存session,然现有系统都有用cookie保存用户信息,故保存本地cookie……测 ...
- Redis实现单点登录
http://blog.csdn.net/WuCourage/article/details/77802812
- 基于SpringBoot+Redis的Session共享与单点登录
title: 基于SpringBoot+Redis的Session共享与单点登录 date: 2019-07-23 02:55:52 categories: 架构 author: mrzhou tag ...
- Java架构师必知:什么是单点登录,主要会应用于哪些场景?
单点登录在大型网站里使用得非常频繁,例如,阿里旗下有淘宝.天猫.支付宝,阿里巴巴,阿里妈妈,阿里妹妹等网站,还有背后的成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都 ...
- CAS单点登录原理解析
转自: https://www.cnblogs.com/lihuidu/p/6495247.html 1.基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名 ...
- CAS单点登录原理
转自 https://www.cnblogs.com/lihuidu/p/6495247.html 1.基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密 ...
- CAS单点登录原理解析(转载)
1.基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从 ...
- cas实现单点登录原理
1.基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从 ...
- .NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录
之前发布过使用session+cookie实现的单点登录,博主个人用的很不舒服,为什么呢,博主自己测试的时候,通过修改host的方法,在本机发布了三个站点,但是,经过测试,发现,三个站点使用的sess ...
随机推荐
- 20 模块之 re subprocess
re: 什么是正则: 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它内嵌在Python中,并通过 ...
- ios 基础知识篇 堆和栈的区别
前言 堆和栈是什么?有什么区别?是干嘛的? 内存管理 移动设备的内存及其有限,每一个APP所能占用的内存是有限制的 (吐槽一下:iPhone6s还是16G起步,还好我也买不起->_-> 扯 ...
- 2018.11.03 NOIP模拟 树(长链剖分优化dp)
传送门 考虑直接推式子不用优化怎么做. 显然每一个二进制位分开计算贡献就行. 即记录fi,jf_{i,j}fi,j表示距离iii这个点不超过jjj的点的每个二进制位的0/10/10/1个数. 但直接 ...
- C#的委托与Java的自定义接口的异曲同工的同步操作
C#的委托(以WinForm为例) 在子窗体(ChildFrm)中定义一个委托 this.CaptureListener(callback);//子窗体触发委托事件,以告诉调用的窗体 /// < ...
- 【慕课网实战】Spark Streaming实时流处理项目实战笔记七之铭文升级版
铭文一级: 第五章:实战环境搭建 Spark源码编译命令:./dev/make-distribution.sh \--name 2.6.0-cdh5.7.0 \--tgz \-Pyarn -Phado ...
- MIT Molecular Biology 笔记3 DNA同源重组
视频 https://www.bilibili.com/video/av7973580?from=search&seid=16993146754254492690 教材 Molecular ...
- set_error_handler
set_error_handler这个函数的作用是为了防止错误路径泄露 何为错误路径泄露呢? 我们写程序,难免会有问题,而PHP遇到错误时,就会给出出错脚本的位置.行数和原因 有很多人说,这并没有什么 ...
- hdu 1130 How Many Trees? 【卡特兰数】
题目 题意:给你一个数字n,问你将1~n这n个数字,可以组成多少棵不同的二叉搜索树. 1,2,5,14--根据输出中的规律可以看出这是一个卡特兰数的序列.于是代用卡特兰数中的一个递推式: 因为输入可取 ...
- struts2 18拦截器详解(十)
ModelDrivenInterceptor 该拦截器处于defaultStack中的第九的位置,在ScopedModelDrivenInterceptor拦截器之后,要使该拦截器有效的话,Actio ...
- HTML 基础 块级元素与行内元素
块元素:单独占一行,宽度占整行,可以包含内联元素和其他块元素,通过样式display:inline,变为行内元素,不换行 内联元素:不单独占一行,宽度根据内容来决定,只能容纳文本或者其他内联元素 ,可 ...