mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-08-23 22:11:29 +08:00
新增 Http Basic 认证文档
This commit is contained in:
parent
cc4cc89e27
commit
3eb294668e
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import cn.dev33.satoken.basic.SaBasicTemplate;
|
||||
|
||||
/**
|
||||
* Http Basic 认证:只有通过 Basic 认证才能进入该方法
|
||||
* Http Basic 认证:只有通过 Basic 认证后才能进入该方法
|
||||
* <p> 可标注在函数、类上(效果等同于标注在此类的所有方法上)
|
||||
* @author kong
|
||||
*
|
||||
|
@ -76,7 +76,7 @@ public class SaTokenConfig implements Serializable {
|
||||
private long idTokenTimeout = 60 * 60 * 24;
|
||||
|
||||
/**
|
||||
* Http Basic 认证的账号&密码
|
||||
* Http Basic 认证的账号和密码
|
||||
*/
|
||||
private String basic = "";
|
||||
|
||||
@ -380,14 +380,14 @@ public class SaTokenConfig implements Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Http Basic 认证的账号&密码
|
||||
* @return Http Basic 认证的账号和密码
|
||||
*/
|
||||
public String getBasic() {
|
||||
return basic;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param basic Http Basic 认证的账号&密码
|
||||
* @param basic Http Basic 认证的账号和密码
|
||||
* @return 对象自身
|
||||
*/
|
||||
public SaTokenConfig setBasic(String basic) {
|
||||
|
@ -24,6 +24,7 @@
|
||||
- [模拟他人 & 身份切换](/up/mock-person)
|
||||
- [同端互斥登录](/up/mutex-login)
|
||||
- [二级认证](/up/safe-auth)
|
||||
- [Http Basic 认证](/up/basic-auth)
|
||||
- [密码加密](/up/password-secure)
|
||||
- [会话治理](/up/search-session)
|
||||
- [全局侦听器](/up/global-listener)
|
||||
|
85
sa-token-doc/doc/up/basic-auth.md
Normal file
85
sa-token-doc/doc/up/basic-auth.md
Normal file
@ -0,0 +1,85 @@
|
||||
# Http Basic 认证
|
||||
|
||||
Http Basic 是 http 协议中最基础的认证方式,其有两个特点:
|
||||
- 简单、易集成。
|
||||
- 功能支持度低。
|
||||
|
||||
在 Sa-Token 中使用 Http Basic 认证非常简单,只需调用几个简单的方法
|
||||
|
||||
---
|
||||
|
||||
### 1、启用 Http Basic 认证
|
||||
|
||||
首先我们在一个接口中,调用 Http Basic 校验:
|
||||
``` java
|
||||
@RequestMapping("test3")
|
||||
public SaResult test3() {
|
||||
SaBasicUtil.check("sa:123456");
|
||||
return SaResult.ok();
|
||||
}
|
||||
```
|
||||
|
||||
然后我们访问这个接口时,浏览器会强制弹出一个表单:
|
||||
|
||||

|
||||
|
||||
|
||||
当我们输入账号密码后 `(sa / 123456)`,才可以继续访问数据:
|
||||
|
||||

|
||||
|
||||
|
||||
### 2、其它启用方式
|
||||
``` java
|
||||
// 对当前会话进行 Basic 校验,账号密码为 yml 配置的值(例如:sa-token.basic=sa:123456)
|
||||
SaBasicUtil.check();
|
||||
|
||||
// 对当前会话进行 Basic 校验,账号密码为:`sa / 123456`
|
||||
SaBasicUtil.check("sa:123456");
|
||||
|
||||
// 以注解方式启用 Basic 校验
|
||||
@SaCheckBasic(account = "sa:123456")
|
||||
@RequestMapping("test3")
|
||||
public SaResult test3() {
|
||||
return SaResult.ok();
|
||||
}
|
||||
|
||||
// 在全局拦截器 或 过滤器中启用 Basic 认证
|
||||
@Bean
|
||||
public SaServletFilter getSaServletFilter() {
|
||||
return new SaServletFilter()
|
||||
.addInclude("/**").addExclude("/favicon.ico")
|
||||
.setAuth(r -> {
|
||||
SaRouter.match("/test/**", () -> SaBasicUtil.check("sa:123456"));
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
### 3、URL 认证
|
||||
除了访问后再输入账号密码外,我们还可以在 URL 中直接拼接账号密码通过 Basic 认证,例如:
|
||||
``` url
|
||||
http://sa:123456@127.0.0.1:8081/test/test3
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
在`Sa-Token`中进行二级认证非常简单,只需要使用以下API:
|
||||
|
||||
``` java
|
||||
// 在当前会话 开启二级认证
|
||||
// 在当前会话 开启二级认证,时间为120秒
|
||||
StpUtil.openSafe(120);
|
||||
|
||||
// 获取:当前会话是否处于二级认证时间内
|
||||
|
@ -9,6 +9,7 @@
|
||||
- `@SaCheckRole("admin")`: 角色认证 —— 必须具有指定角色标识才能进入该方法
|
||||
- `@SaCheckPermission("user:add")`: 权限认证 —— 必须具有指定权限才能进入该方法
|
||||
- `@SaCheckSafe`: 二级认证校验 —— 必须二级认证之后才能进入该方法
|
||||
- `@SaCheckBasic`: HttpBasic认证 —— 只有通过 Basic 认证后才能进入该方法
|
||||
|
||||
Sa-Token使用全局拦截器完成注解鉴权功能,为了不为项目带来不必要的性能负担,拦截器默认处于关闭状态<br>
|
||||
因此,为了使用注解鉴权,你必须手动将Sa-Token的全局拦截器注册到你项目中
|
||||
@ -65,6 +66,13 @@ public String add() {
|
||||
public String add() {
|
||||
return "用户增加";
|
||||
}
|
||||
|
||||
// Http Basic 认证:只有通过 Basic 认证后才能进入该方法
|
||||
@SaCheckBasic(account = "sa:123456")
|
||||
@RequestMapping("add")
|
||||
public String add() {
|
||||
return "用户增加";
|
||||
}
|
||||
```
|
||||
|
||||
注:以上注解都可以加在类上,代表为这个类所有方法进行鉴权
|
||||
|
@ -81,18 +81,19 @@ PS:两者的区别在于:**`方式1会覆盖yml中的配置,方式2会与y
|
||||
| activityTimeout | long | -1 | token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒, 默认-1 代表不限制 (例如可以设置为1800代表30分钟内无操作就过期) [参考:token有效期详解](/fun/token-timeout) |
|
||||
| isConcurrent | Boolean | true | 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) |
|
||||
| isShare | Boolean | true | 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) |
|
||||
| isReadBody | Boolean | true | 是否尝试从请求体里读取token |
|
||||
| isReadHead | Boolean | true | 是否尝试从header里读取token |
|
||||
| isReadCookie | Boolean | true | 是否尝试从cookie里读取token |
|
||||
| isReadBody | Boolean | true | 是否尝试从 请求体 里读取 Token |
|
||||
| isReadHead | Boolean | true | 是否尝试从 header 里读取 Token |
|
||||
| isReadCookie | Boolean | true | 是否尝试从 cookie 里读取 Token |
|
||||
| tokenStyle | String | uuid | token风格, [参考:自定义Token风格](/up/token-style) |
|
||||
| dataRefreshPeriod | int | 30 | 默认dao层实现类中,每次清理过期数据间隔的时间 (单位: 秒) ,默认值30秒,设置为-1代表不启动定时清理 |
|
||||
| tokenSessionCheckLogin | Boolean | true | 获取token专属session时是否必须登录 (如果配置为true,会在每次获取token专属session时校验是否登录) |
|
||||
| autoRenew | Boolean | true | 是否打开自动续签 (如果此值为true, 框架会在每次直接或间接调用getLoginId()时进行一次过期检查与续签操作) |
|
||||
| tokenPrefix | Boolean | true | token前缀, 格式样例(satoken: Bearer xxxx-xxxx-xxxx-xxxx) [参考:自定义Token前缀](/up/token-prefix) |
|
||||
| tokenSessionCheckLogin | Boolean | true | 获取 `Token-Session` 时是否必须登录 (如果配置为true,会在每次获取 `Token-Session` 时校验是否登录) |
|
||||
| autoRenew | Boolean | true | 是否打开自动续签 (如果此值为true, 框架会在每次直接或间接调用 `getLoginId()` 时进行一次过期检查与续签操作) |
|
||||
| tokenPrefix | Boolean | true | token前缀, 格式样例(`satoken: Bearer xxxx-xxxx-xxxx-xxxx`) [参考:自定义Token前缀](/up/token-prefix) |
|
||||
| isPrint | Boolean | true | 是否在初始化配置时打印版本字符画 |
|
||||
| isLog | Boolean | false | 是否打印操作日志 |
|
||||
| jwtSecretKey | String | null | jwt秘钥 (只有集成 sa-token-temp-jwt 模块时此参数才会生效) |
|
||||
| jwtSecretKey | String | null | jwt秘钥 (只有集成 `sa-token-temp-jwt` 模块时此参数才会生效) |
|
||||
| idTokenTimeout | long | 86400 | Id-Token的有效期 (单位: 秒) |
|
||||
| basic | String | "" | Http Basic 认证的账号和密码 [参考:Http Basic 认证](/up/basic-auth) |
|
||||
| sso | Object | new SaSsoConfig() | SSO 单点登录相关配置 |
|
||||
|
||||
|
||||
@ -100,7 +101,7 @@ PS:两者的区别在于:**`方式1会覆盖yml中的配置,方式2会与y
|
||||
| 参数名称 | 类型 | 默认值 | 所属端 | 说明 |
|
||||
| :-------- | :-------- | :-------- | :-------- | :-------- |
|
||||
| ticketTimeout | long | 300 | Server端 | Ticket有效期 (单位: 秒) |
|
||||
| allowUrl | String | * | Server端 | 所有允许的授权回调地址,多个用逗号隔开 (不在此列表中的URL将禁止下放ticket),[详情请参考 SSO模式二的域名校验章节] |
|
||||
| allowUrl | String | * | Server端 | 所有允许的授权回调地址,多个用逗号隔开 (不在此列表中的URL将禁止下放ticket),参考:[SSO整合:配置域名校验](/sso/sso-check-domain) |
|
||||
| secretkey | String | null | Server端 & Client端 | 调用秘钥 (用于SSO模式三单点注销的接口通信身份校验) |
|
||||
| authUrl | String | null | Client端 | SSO-Server端 单点登录地址 |
|
||||
| isHttp | Boolean | false | Server端 & Client端 | 是否使用http请求校验ticket值 |
|
||||
|
Loading…
Reference in New Issue
Block a user