能力接入

身份与权限接入

复用安全模块的身份、API 权限和数据范围,避免以租户代替授权。

浏览全部手册
本页目录
文档来源与 Markdown 原文

权威正文:ineed-core/docs/guides/authorization-integration.md。网站按工作区快照同步,原文中的历史日期和验证范围保留。

开始编码前核对同版本源码;跨仓文件引用可在源码定位目录查找。

下载 Markdown 原文 ↓

规则 CORE-AUTH-001。Core 提供 Web、上下文和通用契约;身份认证、会话存储、授权与数据范围由安全模块和应用装配实现。

接入顺序

  1. 在需求中区分后台维护、用户本人操作、公共读取等 API 面,定义主体和数据范围。
  2. 选择应用的认证、会话和授权模块,确认 Controller 所依赖的授权 Bean 与安全链已装配。
  3. 为标准能力和自定义动作维护稳定 resource key、权限清单和 Controller 授权表达式。
  4. 将可信操作用户和目标租户传入业务链路,按租户规则保护数据访问。
  5. 使用真实身份分别验证允许、拒绝、跨租户和范围外数据。

方法上出现 @PreAuthorize 仍需方法安全配置才能生效;一个普通 new Controller(...) 的单元测试不会自动执行 Spring 安全拦截。权限清单存在也不能证明实际 HTTP 已受保护。

正式契约与样例

当前会话采用服务端 SecuritySession;JWT 是传输凭据,不能由前端解析 token 来决定身份/权限。共享认证/授权桥接及契约落点见分层指南;登录与诊断见开发登录指南

真实 Controller 样例:CategoryDefinitionController。可以核对资源授权表达式、自定义接口与标准 trait 的组合,但新模块应使用自己的资源 key。

前端按钮权限只是展示控制;后端 API 必须独立校验。读取分配列表与保存分配结果是否属于一个授权动作,由业务语义确定,避免机械生成多余权限点。

验证

至少检查:未登录、无权限、有权限、同租户但数据范围外、其他租户。验证实际响应与数据未被修改,不只断言权限表达式字符串。

开发模式用于本地诊断,不作为生产认证方案。具体会话 Redis 和启动参数以开发应用及所属安全模块为准。

仍有疑问?按反馈清单整理复现信息 →