如何轻松实现SpringBoot SSO并构建一个完整的demo?

2026-04-19 18:431阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计936个文字,预计阅读时间需要4分钟。

如何轻松实现SpringBoot SSO并构建一个完整的demo?

前言:网上的SSO框架非常多,本文使用的是自写的SSO来实现简单的登录授权功能,旨在扩展性,权限这方面,自写扩展性会好些。

提示:以下是本文正文内容,下面是案例示例。

如何轻松实现SpringBoot SSO并构建一个完整的demo?

前言

网上SSO的框架很多,此篇文章使用的是自写的SSO来实现简单的登录授权功能,目的在于扩展性,权限这方面,自写扩展性会好点。

提示:以下是本篇文章正文内容,下面案例可供参考

一、技术介绍

1.SSO是什么?

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

二、使用步骤

1.引入maven库

代码如下(示例):

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.1</version> <relativePath/> </parent> <dependencies> <dependencies> <dependency> <artifactId>hyh-boot-starter-redis</artifactId> <groupId>com.hyh.redis</groupId> <version>1.0.0</version> </dependency> </dependencies>

2.具体使用示例

ILogin接口:

package com.hyh.sso; import com.hyh.sso.po.LoginResult; /** * 登录接口 * * @Author: heyuhua * @Date: 2021/1/8 17:14 */ public interface ILogin { /** * 登录 * * @param account 用户名 * @param password 密码 * @param callbackUrl 用户验证回调URL * @return */ LoginResult login(String account, String password, String callbackUrl); }

登录状态枚举:

package com.hyh.sso; /** * 登录状态枚举 * * @Author: heyuhua * @Date: 2021/1/8 16:59 */ public enum LoginStatus { SUCCESS(1, "登录成功"), ING(0, "登录中"), FAIL(-1, "登录失败"), ERROR(-2, "登录异常"), CALLBACK_ERROR(-3, "登录回调异常"), ACCOUNT_LOCK(-4, "账户被锁定"), EXPIRE(-5,"登录用户已过期"); /** * 登录状态码 */ private int code; /** * 登录状态消息 */ private String message; private LoginStatus(int code, String message) { this.code = code; this.message = message; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }

登录类型枚举:

package com.hyh.sso; /** * 登录类型 * * @Author: heyuhua * @Date: 2021/1/8 17:16 */ public enum LoginTypes { /** * 登入 */ IN, /** * 登出 */ OUT; }

登录常规接口:

package com.hyh.sso; package com.hyh.sso.service; import com.hyh.sso.ILogin; /** * 常规登录接口 * * @Author: heyuhua * @Date: 2021/1/8 17:54 */ public interface LoginService extends ILogin { }

登录接口实现:

package com.hyh.sso.service.impl; import com.alibaba.fastjson.JSON; import com.hyh.sso.LoginStatus; import com.hyh.sso.po.LoginResult; import com.hyh.sso.po.LoginUser; import com.hyh.sso.service.LoginService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.localhost:8088/hyh/login";//在com.hyh.core.web下可查看 LoginResult loginResult = loginHelper.login(account, password, cllbackUrl); System.out.println("loginResult:" + loginResult.toString()); } //控制层代码 @RequestMapping(value = "login", method = RequestMethod.POST) public LoginResult login(@RequestBody LoginUser loginUser) { Assert.notNull(loginUser.getAccount(), "account is null"); Assert.notNull(loginUser.getPassword(), "password is null"); LoginResult loginResult = new LoginResult(LoginStatus.SUCCESS); loginResult.setLoginUser(loginUser); //模拟直接返回登录成功 return loginResult; }

总结

是不是感觉很简单?更多用法请点击下方查看源码,关注我带你揭秘更多高级用法

源码地址:点此查看源码.

到此这篇关于SpringBoot SSO轻松实现(附demo)的文章就介绍到这了,更多相关SpringBoot SSO内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

本文共计936个文字,预计阅读时间需要4分钟。

如何轻松实现SpringBoot SSO并构建一个完整的demo?

前言:网上的SSO框架非常多,本文使用的是自写的SSO来实现简单的登录授权功能,旨在扩展性,权限这方面,自写扩展性会好些。

提示:以下是本文正文内容,下面是案例示例。

如何轻松实现SpringBoot SSO并构建一个完整的demo?

前言

网上SSO的框架很多,此篇文章使用的是自写的SSO来实现简单的登录授权功能,目的在于扩展性,权限这方面,自写扩展性会好点。

提示:以下是本篇文章正文内容,下面案例可供参考

一、技术介绍

1.SSO是什么?

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

二、使用步骤

1.引入maven库

代码如下(示例):

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.1</version> <relativePath/> </parent> <dependencies> <dependencies> <dependency> <artifactId>hyh-boot-starter-redis</artifactId> <groupId>com.hyh.redis</groupId> <version>1.0.0</version> </dependency> </dependencies>

2.具体使用示例

ILogin接口:

package com.hyh.sso; import com.hyh.sso.po.LoginResult; /** * 登录接口 * * @Author: heyuhua * @Date: 2021/1/8 17:14 */ public interface ILogin { /** * 登录 * * @param account 用户名 * @param password 密码 * @param callbackUrl 用户验证回调URL * @return */ LoginResult login(String account, String password, String callbackUrl); }

登录状态枚举:

package com.hyh.sso; /** * 登录状态枚举 * * @Author: heyuhua * @Date: 2021/1/8 16:59 */ public enum LoginStatus { SUCCESS(1, "登录成功"), ING(0, "登录中"), FAIL(-1, "登录失败"), ERROR(-2, "登录异常"), CALLBACK_ERROR(-3, "登录回调异常"), ACCOUNT_LOCK(-4, "账户被锁定"), EXPIRE(-5,"登录用户已过期"); /** * 登录状态码 */ private int code; /** * 登录状态消息 */ private String message; private LoginStatus(int code, String message) { this.code = code; this.message = message; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }

登录类型枚举:

package com.hyh.sso; /** * 登录类型 * * @Author: heyuhua * @Date: 2021/1/8 17:16 */ public enum LoginTypes { /** * 登入 */ IN, /** * 登出 */ OUT; }

登录常规接口:

package com.hyh.sso; package com.hyh.sso.service; import com.hyh.sso.ILogin; /** * 常规登录接口 * * @Author: heyuhua * @Date: 2021/1/8 17:54 */ public interface LoginService extends ILogin { }

登录接口实现:

package com.hyh.sso.service.impl; import com.alibaba.fastjson.JSON; import com.hyh.sso.LoginStatus; import com.hyh.sso.po.LoginResult; import com.hyh.sso.po.LoginUser; import com.hyh.sso.service.LoginService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.localhost:8088/hyh/login";//在com.hyh.core.web下可查看 LoginResult loginResult = loginHelper.login(account, password, cllbackUrl); System.out.println("loginResult:" + loginResult.toString()); } //控制层代码 @RequestMapping(value = "login", method = RequestMethod.POST) public LoginResult login(@RequestBody LoginUser loginUser) { Assert.notNull(loginUser.getAccount(), "account is null"); Assert.notNull(loginUser.getPassword(), "password is null"); LoginResult loginResult = new LoginResult(LoginStatus.SUCCESS); loginResult.setLoginUser(loginUser); //模拟直接返回登录成功 return loginResult; }

总结

是不是感觉很简单?更多用法请点击下方查看源码,关注我带你揭秘更多高级用法

源码地址:点此查看源码.

到此这篇关于SpringBoot SSO轻松实现(附demo)的文章就介绍到这了,更多相关SpringBoot SSO内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!