资源描述
Sureness 是一款轻量、高性能的 Java REST API 安全框架,专为微服务与 Spring Boot 应用设计,支持无状态认证(JWT/OAuth2)、细粒度 RBAC/ABAC 权限控制、动态权限加载及零信任策略扩展。适用于需要快速集成安全能力的后端 API 项目,显著降低安全模块开发与维护成本,兼顾易用性与企业级可扩展性。
详细内容
## Sureness 框架简介与定位
Sureness 是一款面向 Java 生态的开源 REST API 安全框架,定位为「轻量、无侵入、高性能」的安全中间件。它不依赖 Spring Security 的复杂生命周期,可独立运行或无缝集成于 Spring Boot、Spring MVC、JAX-RS 等 Web 容器,专注于解决 RESTful 接口层的认证(Authentication)与鉴权(Authorization)问题,尤其适合微服务架构中网关层或服务直连场景的安全加固。
## 核心特性
- **无状态认证支持**:原生集成 JWT、Basic Auth、API Key 及自定义 Token 解析器,支持 Token 自动刷新与黑名单管理;
- **多模型权限控制**:同时支持基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC),支持路径级 + HTTP 方法级细粒度规则配置;
- **动态权限热加载**:权限规则可从数据库、Redis 或配置中心(如 Nacos、Apollo)动态加载并实时生效,无需重启服务;
- **高性能过滤引擎**:采用责任链 + 缓存预匹配机制,单节点 QPS 超 15,000(基准测试环境:OpenJDK 11 + Spring Boot 2.7),延迟低于 0.3ms;
- **零侵入 & 易扩展**:通过 `Subject` 抽象统一认证上下文,提供 `AuthorizationProcessor` 和 `AuthenticationProvider` 扩展点,支持自定义认证逻辑与权限决策策略。
## 适用场景
- Spring Boot 微服务中需快速落地 API 安全策略,避免 Spring Security 配置复杂性;
- 网关(如 Spring Cloud Gateway)或边缘服务中实现统一认证鉴权;
- 需要动态权限管理的 SaaS 多租户系统;
- 对性能敏感的高并发 API 服务(如 IoT 设备管理平台、开放平台网关);
- 已有系统安全模块重构,追求低耦合、可插拔的安全组件。
## 快速入门步骤
1. **添加 Maven 依赖**(以 Spring Boot 项目为例):
```xml
<dependency>
<groupId>com.usthe.sureness</groupId>
<artifactId>sureness-core</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>com.usthe.sureness</groupId>
<artifactId>sureness-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
```
2. **配置基础安全规则**(`sureness.yml` 或 Java Config):定义资源路径、所需权限及对应处理器;
3. **实现 `SubjectSummarizer`**:从请求中提取用户身份(如解析 JWT claim);
4. **编写最小示例 Controller**:标注 `@GetMapping("/api/user/info")`,在 sureness 规则中声明该路径需 `role:USER` 权限;
5. 启动应用,调用接口验证未认证返回 `401`,携带有效 Token 后返回 `200`。
## 生态与社区
Sureness 由 USTHE(优思德)团队主导开源,GitHub 仓库持续维护(https://github.com/usthe/sureness),提供完整中文文档、Demo 工程及 Spring Boot Starter。社区活跃,常见问题可在 GitHub Issues 中检索,核心开发者定期响应 PR 与咨询。已在国内多个中大型企业生产环境落地,兼容 JDK 8+、Spring Framework 5.0+ 及主流云原生基础设施。