身份与权限接入
复用安全模块的身份、API 权限和数据范围,避免以租户代替授权。
浏览全部手册
本页目录
文档来源与 Markdown 原文
权威正文:ineed-core/docs/guides/authorization-integration.md。网站按工作区快照同步,原文中的历史日期和验证范围保留。
开始编码前核对同版本源码;跨仓文件引用可在源码定位目录查找。
下载 Markdown 原文 ↓规则 CORE-AUTH-001。Core 提供 Web、上下文和通用契约;身份认证、会话存储、授权与数据范围由安全模块和应用装配实现。
接入顺序
- 在需求中区分后台维护、用户本人操作、公共读取等 API 面,定义主体和数据范围。
- 选择应用的认证、会话和授权模块,确认 Controller 所依赖的授权 Bean 与安全链已装配。
- 为标准能力和自定义动作维护稳定 resource key、权限清单和 Controller 授权表达式。
- 将可信操作用户和目标租户传入业务链路,按租户规则保护数据访问。
- 使用真实身份分别验证允许、拒绝、跨租户和范围外数据。
方法上出现 @PreAuthorize 仍需方法安全配置才能生效;一个普通 new Controller(...) 的单元测试不会自动执行 Spring 安全拦截。权限清单存在也不能证明实际 HTTP 已受保护。
正式契约与样例
当前会话采用服务端 SecuritySession;JWT 是传输凭据,不能由前端解析 token 来决定身份/权限。共享认证/授权桥接及契约落点见分层指南;登录与诊断见开发登录指南。
真实 Controller 样例:CategoryDefinitionController。可以核对资源授权表达式、自定义接口与标准 trait 的组合,但新模块应使用自己的资源 key。
前端按钮权限只是展示控制;后端 API 必须独立校验。读取分配列表与保存分配结果是否属于一个授权动作,由业务语义确定,避免机械生成多余权限点。
验证
至少检查:未登录、无权限、有权限、同租户但数据范围外、其他租户。验证实际响应与数据未被修改,不只断言权限表达式字符串。
开发模式用于本地诊断,不作为生产认证方案。具体会话 Redis 和启动参数以开发应用及所属安全模块为准。
仍有疑问?按反馈清单整理复现信息 →