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 ...
随机推荐
- delphi 中的win32 以外到平台的字符串处理一定慢吗?(转载)
原始连接:http://rvelthuis.blogspot.tw/2018/01/strings-on-other-platforms-than-32-bit.html Strings too sl ...
- 前端之css操作2
一 伪类选择器 伪类选择器就是在查找的后面加上冒号和状态 hover:悬浮到上面就会变化一种状态 link:没有接触的状态 active:点击是触发的状态 visited:点击后的状态 <!DO ...
- javaScript正则表达式的使用
今天看了一个正则的写法,回想一下,对于正则都忘记得差不多了,称这个时间整理一下,收集了一些以前的资料和查看了一些别人的资料,做一个小小的总结,方便自己以后查看,也希望能帮助到大家!! 欢迎指正,欢 ...
- jq无法获取a标签动态id
起初a标签是这样写的<a href="javascript:void(0)" id="${menu.id}" value="${menu.na ...
- Keras人工神经网络多分类(SGD)
import numpy as np import pandas as pd from keras.models import Sequential from keras.layers import ...
- GPS 编程笔记
1.在GPS系统内,经纬度的显示方式一般都可以根据自己的爱好选择,一般有"hddd.ddddd"(度.度),"hddd*mm.mmm"(度.分. 分),&quo ...
- Docker Compose部署lnmp
参考:https://github.com/micooz/docker-lnmp 一.简介 使用Dcoekr镜像部署lnmp(Linux.Nginx.MySQL.PHP7). 1.1 结构 app └ ...
- 图像像素转换 8-bit 16-bit 32-bit游戏效果
https://www.ipcfun.com/8bit-you-xi-hua-mian-fu-yuan-3d-li-ti-tu.html https://bbs.csdn.net/wap/topics ...
- spring之jdbcTemplate
spring的另一个功能模块data access对于数据库的支持 spring data access第一个helloword案例: 使用java程序实现访问配置 1.导包 2.测试案例 @Test ...
- java类与继承(转载)
关于java的类与继承面链接是一个网友总结的,还有列子我个人觉得很详细 固拿来收藏,需要的朋友可从这里访问: http://www.cnblogs.com/dolphin0520/p/3803432. ...