接口直接对外暴露
📄 接口直接对外暴露 _ PIGCLOUD
商业版
生态🔥
快速上手
前端部分
功能使用
后端部分
- 📄 数据库字段文档说明
- 📄 登录 token 生成源码解析
- 📄 请求校验 token 源码解析
- 📄 HTTP客户端获取 token
- 📄 feign 使用基础
- 📄 Feign 调用与令牌传递👍
- 📄 @Inner 注解使用及原理 👍
- 📄 社交短信登录原理
- 📄 接口直接对外暴露
- 📄 前端密码加密处理
- 📄 验证码配置及开关
- 📄 登录短信验证码发送
- 📄 信息推送功能使用
- 📄 配置文件加载规则
- 📄 全局异常处理
- 📄 异常国际化处理
- 📄 配置文件动态刷新
- 📄 网关动态路由原理
- 📄 服务配置 cors 跨域
- 📄 feign 自动降级功能
- 📄 配置文件加解密
- 📄 logback 日志输出配置
- 📄 @SysLog 日志注解使用
- 📄 监控服务常见功能使用
- 📄 Druid 分布式 SQL 监控使用
- 📄 MyBatis-Plus连表查询
扩展必看
生产部署
社区分享
更新日志
📄 接口直接对外暴露
pigcloud
# 现象
如果微服务接入了资源服务器,那么所有的资源都会被 spring security oauth 拦截,如果没有合法的 token,请求会被直接拒绝。如下图所示,会提示以下错误:

# 服务暴露
# 方法一、 @Inner 注解
1 | // 如果配置在 controller 类上,则整个类的接口都会对外暴露 |
特别说明:@Inner 注解作用于 Path Variable 风格的请求时需要特别注意,如下图中的 /{id} 会被识别为 /*,从而自动配置到 spring security 接口。这会导致其他接口虽然没有加 @Inner 注解,但也会对外暴露并且无法获取用户信息(如下图 ① 所示,已经暴露,并且也会造成 ② 接口对外暴露)。
- 慎用 Path Variable 请求加 @Inner 注解。
- 如果要使用,请确保将路径写得更长一些,并且检查
/XX/XX/*是否会影响其他接口。
- 如果要使用,请确保将路径写得更长一些,并且检查

# 方法二、 nacos 配置如下属性
如果封装的接口(例如 swagger 等)不能加 @Inner 注解,可以参考下文中的配置文件声明。
==nacos/微服务对应的配置文件==
1 | security: |

# 3. 暴露的接口无法获取用户信息
如果通过以上两种方式将接口设置为对外暴露(使用 @Inner 注解或配置文件形式),则当前接口下游的所有逻辑都 ==无法获取当前用户==(SecurityUtils.getUser() === null)。

- 标题: 接口直接对外暴露
- 作者: PIGCLOUD
- 创建于 : 2024-01-01 00:00:00
- 更新于 : 2025-09-22 14:27:28
- 链接: https://anime-blog.52lin.site/📄 接口直接对外暴露 _ PIGCLOUD/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。