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 ...
随机推荐
- python的数字图像处理学习(1)
导入原有的测试图片,测试图片路径,和一些方法,显示出测试图像,测试图像路径. from skimage import io,data,data_dir img_rgb=data.chelsea() i ...
- 【转】【MySQL】时间类型存储格式选择
一 前言 昨天在给开发同学做数据库设计规范分享的时候,讲到时间字段常用的有三个选择datetime.timestamp.int,应该使用什么类型的合适?本文通过三种类型的各个维度来分析,声明:本文 ...
- Idea项目如何迁移到Eclipse
CTRL + SHIFT + ALT + S键 (即File>Project Structure), 按照如图一样设置,设置完成后就可以直接导入到eclipse了
- springboot Thymeleaf 整合
Thymeleaf是一个Java模板引擎开发库,可以处理和生成HTML.XML.JavaScript.CSS和文本,在Web和非Web环境下都可以正常工作. Thymeleaf可以跟Spring bo ...
- 关于微信小程序中组件和页面对全局样式的继承性
1.组件只能继承全局样式中的font和color(backgroundcolor不继承) 2.页面可以继承全局样式中所有样式
- ubuntu16.04无法关机解决方法
11 down vote In my case these simple steps worked for me fine: Press Ctrl+Alt+T to go to a termina ...
- warning: rpmts_HdrFromFdno: Header V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
症状描述: 使用yum安装软件时报如下错误: warning: rpmts_HdrFromFdno: Header V4 DSA/SHA1 Signature, key ID 192a7d7d: NO ...
- 实习番外篇:解决C语言使用Makefile无法实现更好的持续集成问题
工作中遇见的一个问题,提供项目源代码的情况下,希望对项目进行持续集成,达到一个C项目增量编译的效果.原本第一天是想通过模拟Makefile执行步骤来实现整个过程的,但是事实上发现整个Makefile显 ...
- highcharts x轴中文刻度太长换行
xAxis: { type: 'category', title:null, gridLineWidth: 1, lineColor: "#50ae93", labels: { s ...
- AngularJS实战之filter的使用一
一.格式化数字为货币格式. <div>{{money|currency:"$"}}</div> <div>{{money|currency:&q ...