当前位置: 首页 > news >正文

使用【Sa-Token】实现Http Basic 认证

在这里插入图片描述
使用Sa-Token开源架构快速实现Http Basic 认证,如上图
1、springboot环境下直接添加starter即可

<!-- Sa-Token 权限认证,在线文档:https://sa-token.cc -->
<dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot-starter</artifactId><version>1.39.0</version>
</dependency>

2、非sping环境下,需要自定义 SaTokenContext 实现

<dependency><groupId>cn.dev33</groupId><artifactId>sa-token-servlet</artifactId><version>1.39.0</version>
</dependency>

自定义 SaTokenContext 实现

package org.itdgz.satoken;import cn.dev33.satoken.context.SaTokenContext;
import cn.dev33.satoken.context.model.SaRequest;
import cn.dev33.satoken.context.model.SaResponse;
import cn.dev33.satoken.context.model.SaStorage;
import cn.dev33.satoken.servlet.model.SaRequestForServlet;
import cn.dev33.satoken.servlet.model.SaResponseForServlet;
import cn.dev33.satoken.servlet.model.SaStorageForServlet;public class SaTokenContextForNoSpring implements SaTokenContext {@Overridepublic SaRequest getRequest() {return new SaRequestForServlet(SpringMVCUtil.getRequest());}@Overridepublic SaResponse getResponse() {return new SaResponseForServlet(SpringMVCUtil.getResponse());}@Overridepublic SaStorage getStorage() {return new SaStorageForServlet(SpringMVCUtil.getRequest());}@Overridepublic boolean matchPath(String pattern, String path) {return true;}
}

SpringMVCUtil.java

package org.itdgz.satoken;import cn.dev33.satoken.exception.NotWebContextException;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class SpringMVCUtil {private SpringMVCUtil() {}/*** 获取当前会话的 request 对象* @return request*/public static HttpServletRequest getRequest() {ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();if(servletRequestAttributes == null) {throw new NotWebContextException("非 web 上下文无法获取 HttpServletRequest").setCode(500);}return servletRequestAttributes.getRequest();}/*** 获取当前会话的 response 对象* @return response*/public static HttpServletResponse getResponse() {ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();if(servletRequestAttributes == null) {throw new NotWebContextException("非 web 上下文无法获取 HttpServletResponse").setCode(500);}return servletRequestAttributes.getResponse();}/*** 判断当前是否处于 Web 上下文中* @return /*/public static boolean isWeb() {return RequestContextHolder.getRequestAttributes() != null;}
}

启动初始化时,将自定义的上下文注册

SaTokenContext saTokenContext = new SaTokenContextForNoSpring();SaManager.setSaTokenContext(saTokenContext);

Controller接口

@RequestMapping(value = "/base", method = RequestMethod.GET)@ResponseBodypublic SaResult basic(){try {SaHttpBasicUtil.check("sa:123456");}catch (Exception e){e.printStackTrace();return SaResult.error(e.getMessage());}return SaResult.ok("Http Basic 认证");}

学习地址:https://gitee.com/dromara/sa-token

http://www.lryc.cn/news/444876.html

相关文章:

  • layui table中的checkbox禁用问题
  • 102.SAPUI5 sap.ndc.BarcodeScannerButton调用摄像头时,localhost访问正常,使用IP访问失败
  • 20240923软考架构-------软考186-190答案解析
  • 基于Spring Boot的宠物咖啡馆平台【附源码】
  • C++模拟实现list:list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍
  • Offer60:n个骰子的点数
  • 几种常见的索引类型扫描
  • 苹果CMS插件:优化蜘蛛访问内容,提升百度收录率
  • 后端开发刷题 | 没有重复项数字的全排列
  • Python中的“打开与关闭文件”:从入门到精通
  • 9.23 My_string.cpp
  • 【android10】【binder】【3.向servicemanager注册服务】
  • Java — LeetCode 面试经典150题(一)
  • Python酷玩之旅_mysql-connector
  • 7.搭建个人金融数据库之快速获取股票列表和基本信息!
  • Nginx基础详解1(单体部署与集群部署、负载均衡、正反代理、nginx安装)
  • 等保一体机如何帮你应对网络攻击
  • CVE-2024-1112 Resource Hacker 缓冲区溢出分析
  • WebGL渲染与创建2D内容
  • ArcGIS Desktop使用入门(三)图层右键工具——拓扑(下篇:地理数据库拓扑)
  • LeetCode题练习与总结:二叉树的最近公共祖先--236
  • uni-app 多环境配置
  • 【d48】【Java】【力扣】LCR 123. 图书整理 I
  • 【MySQL】InnoDB 索引为什么使用B+树而不用跳表?
  • 【学习笔记】TLS/SSL握手之Records
  • 【MySQL】创建新账号新数据库并授权
  • Nginx反向代理简介,作用及配置;Nginx负载均衡简介,作用及配置;
  • SAP MIGO M7146不支持移动原因
  • vue使用PDF.JS踩的坑--部署到服务器上显示pdf.mjs viewer.mjs找不到资源
  • 重型工程车辆数据集