OAuth2.1 资源服务器配置
你好呀,我的老朋友!我是老寇,欢迎来到老寇IoT云平台!
本文档详细介绍了基于 OAuth2ResourceServerProperties 的配置。
# 配置前缀
spring:
security:
oauth2:
resource-server:
# 所有配置项都在此前缀下
# 1. 配置概览
spring:
security:
oauth2:
resource-server:
enabled: true
request-matcher:
ignore-patterns:
# HTTP方法:
# - 路径模式=服务名
# 2. 配置项说明
# 基础配置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled | boolean | true | 是否启用 OAuth2 资源服务器 |
request-matcher.ignore-patterns | Map<String, Set<String>> | {} | 按 HTTP 方法分组的忽略认证路径 |
# ignore-patterns 格式
request-matcher:
ignore-patterns:
HTTP方法:
- 路径模式=服务名
[!IMPORTANT]
- HTTP 方法:
GET、POST、PUT、DELETE、HEAD、PATCH- 路径模式: 支持 Ant 风格通配符(
*、**、?)- 服务名: 必须与
spring.application.name一致
# 3. 实际配置
spring:
application:
name: ${SERVICE_ID:laokou-auth}
security:
oauth2:
resource-server:
enabled: true
request-matcher:
ignore-patterns:
GET:
- /v3/api-docs/**=laokou-auth
- /actuator/**=laokou-auth
- /error=laokou-auth
- /v1/captchas/{uuid}=laokou-auth
- /v1/secrets=laokou-auth
- /doc.html=laokou-auth
- /webjars/**=laokou-auth
POST:
- /v1/captchas/send/mail=laokou-auth
- /v1/captchas/send/mobile=laokou-auth
DELETE:
- /v1/tokens=laokou-auth
# 4. 忽略认证的端点详解
# GET 请求
| 路径 | 说明 | 用途 |
|---|---|---|
/v3/api-docs/** | OpenAPI 文档 | Swagger/Knife4j API 文档 |
/actuator/** | Actuator 端点 | 健康检查、监控指标 |
/error | 错误页面 | 全局异常处理 |
/v1/captchas/{uuid} | 获取验证码 | 图形验证码获取 |
/v1/secrets | 获取密钥 | 加密公钥获取 |
/doc.html | Knife4j 文档 | API 文档页面 |
/webjars/** | 静态资源 | Swagger UI 资源文件 |
# POST 请求
| 路径 | 说明 | 用途 |
|---|---|---|
/v1/captchas/send/mail | 发送邮箱验证码 | 邮箱登录验证码 |
/v1/captchas/send/mobile | 发送手机验证码 | 手机登录验证码 |
# DELETE 请求
| 路径 | 说明 | 用途 |
|---|---|---|
/v1/tokens | 注销令牌 | 用户登出 |
# 5. 路径匹配模式
| 模式 | 说明 | 示例匹配 |
|---|---|---|
* | 单级任意字符 | /api/* 匹配 /api/users |
** | 多级任意路径 | /api/** 匹配 /api/a/b/c |
{var} | 路径变量 | /captchas/{uuid} 匹配 /captchas/abc123 |
# 6. 配置示例
# 示例 1:添加新的公开 GET 端点
spring:
security:
oauth2:
resource-server:
request-matcher:
ignore-patterns:
GET:
- /v3/api-docs/**=laokou-auth
- /actuator/**=laokou-auth
- /v1/captchas/{uuid}=laokou-auth
# 新增:公开配置接口
- /v1/configs/public=laokou-auth
# 示例 2:添加新的公开 POST 端点
spring:
security:
oauth2:
resource-server:
request-matcher:
ignore-patterns:
POST:
- /v1/captchas/send/mail=laokou-auth
- /v1/captchas/send/mobile=laokou-auth
# 新增:用户注册
- /v1/users/register=laokou-auth
# 示例 3:多服务共享配置
spring:
security:
oauth2:
resource-server:
request-matcher:
ignore-patterns:
GET:
# 多服务共享健康检查
- /actuator/health=laokou-auth,laokou-admin,laokou-gateway
# 仅 auth 服务
- /v1/captchas/{uuid}=laokou-auth
# 示例 4:关闭资源服务器
spring:
security:
oauth2:
resource-server:
enabled: false
# 7. 与授权服务器配置对比
授权服务器和资源服务器:
| 配置 | 前缀 | 用途 |
|---|---|---|
| 授权服务器 | spring.security.oauth2.authorization-server | 签发 Token |
| 资源服务器 | spring.security.oauth2.resource-server | 验证 Token、保护资源 |
spring:
security:
oauth2:
# 授权服务器:负责认证和签发令牌
authorization-server:
enabled: true
client:
default:
# ... 客户端配置
# 资源服务器:负责验证令牌和保护 API
resource-server:
enabled: true
request-matcher:
ignore-patterns:
# ... 忽略认证的路径
# 8. 安全建议
[!WARNING] 请注意以下安全事项
| 建议 | 说明 |
|---|---|
| 最小化公开端点 | 仅开放必要的公开接口 |
| 生产环境禁用文档 | 生产环境应关闭 /v3/api-docs/**、/doc.html |
| 验证码接口限流 | 对 /v1/captchas/send/* 添加限流保护 |
| 监控端点保护 | 考虑对 /actuator/** 添加 IP 白名单 |
# 生产环境推荐配置
spring:
security:
oauth2:
resource-server:
enabled: true
request-matcher:
ignore-patterns:
GET:
# 仅保留必要端点
- /actuator/health=laokou-auth
- /error=laokou-auth
- /v1/captchas/{uuid}=laokou-auth
- /v1/secrets=laokou-auth
POST:
- /v1/captchas/send/mail=laokou-auth
- /v1/captchas/send/mobile=laokou-auth
DELETE:
- /v1/tokens=laokou-auth
# 9. 相关链接
我是老寇,我们下次再见啦!
上次更新: 2/9/2026, 2:54:22 PM