# nacos-auth-plugin **Repository Path**: cai-you/nacos-auth-plugin ## Basic Information - **Project Name**: nacos-auth-plugin - **Description**: Nacos自定义鉴权插件 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-30 - **Last Updated**: 2026-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Nacos 2.5 自定义鉴权插件 这是一个为 Nacos 2.5 设计的自定义鉴权插件示例,提供了灵活的身份验证和权限控制功能。 ## 功能特性 - 支持自定义用户身份验证 - 基于角色的权限控制 - 可扩展的认证机制 - 与Nacos 2.5认证框架无缝集成 - 支持外部认证系统集成 ## 版本说明 ### 标准版 (Standard Version) - **实现类**: `NacosAuthPluginService` - **特点**: 基础功能实现,适合快速开发和测试 - **适用场景**: 开发、测试环境 ### 安全版 (Security Enhanced Version) - **实现类**: `SecureNacosAuthPluginService` - **特点**: 包含输入验证、SQL注入防护、XSS防护等安全措施 - **适用场景**: 生产环境 ## 架构设计 - `NacosAuthPluginService`: 实现了 Nacos 的 `AuthPluginService` 接口(标准版) - `SecureNacosAuthPluginService`: 实现了 Nacos 的 `AuthPluginService` 接口(安全版) - SPI 服务发现机制,自动注册到 Nacos - 支持用户名/密码认证 - 可扩展的权限控制模型 ## 项目结构 ``` nacos-auth-plugin/ ├── src/main/java/cn/zero/plus/nacos/auth/plugin/ (标准版) │ ├── NacosAuthPluginService.java (核心实现) │ └── config/PluginConfiguration.java (Spring配置) │ └── initializer/PluginInitializer.java (插件初始化器) ├── src/main/java/cn/zero/plus/nacos/auth/plugin/security/ (安全版) │ ├── SecureNacosAuthPluginService.java (安全版核心实现) │ └── config/SecurePluginConfiguration.java (安全版Spring配置) │ └── initializer/SecurePluginInitializer.java (安全版插件初始化器) ├── src/main/resources/ │ ├── META-INF/services/com.alibaba.nacos.plugin.auth.spi.server.AuthPluginService (SPI配置) │ └── auth-plugin.properties (插件属性配置) ├── src/test/java/cn/zero/plus/nacos/auth/plugin/ (标准版测试) │ └── NacosAuthPluginApplicationTests.java (单元测试) ├── src/test/java/cn/zero/plus/nacos/auth/plugin/security/ (安全版测试) │ └── SecureNacosAuthPluginApplicationTests.java (安全版单元测试) ├── docs/ │ ├── DEVELOPER_GUIDE.md (开发者指南) │ └── API_REFERENCE.md (API参考文档) │ └── SECURITY_CONFIG.md (安全配置指南) │ └── VERSION_SWITCHING.md (版本切换指南) │ └── PROJECT_STRUCTURE.md (项目结构说明) └── pom.xml (项目依赖配置) ``` ## 配置文件 - `META-INF/services/com.alibaba.nacos.plugin.auth.spi.server.AuthPluginService`: SPI 服务配置文件 - `auth-plugin.properties`: 插件属性配置文件 ## 使用方法 1. 编译插件: `mvn clean package -DskipTests` 2. 将生成的 JAR 文件复制到 Nacos 的 `plugins/auth/` 目录 3. 在 Nacos 配置文件中启用自定义鉴权插件 ## 部署到 Nacos 1. 构建插件: `mvn clean package -DskipTests` 2. 将 `nacos-auth-plugin-1.0.0.jar` 复制到 Nacos 服务器的 `plugins/auth/` 目录 3. 修改 Nacos 配置文件 `application.properties` 或 `application.yml`: ``` # 选择使用标准版或安全版 nacos.core.auth.system.type=custom nacos.core.auth.plugin.nacos.service=CustomNacosAuthPlugin # 标准版 # 或 nacos.core.auth.plugin.nacos.service=SecureNacosAuthPlugin # 安全版 ``` 4. 重启 Nacos 服务器 ## 默认用户 ### 标准版默认用户 - admin/admin123 (具有所有权限) - user1/password1 (只读权限) - user2/password2 (有限写权限) ### 安全版安全措施 - 输入验证和过滤 - SQL注入防护 - XSS攻击防护 - 密码强度验证 - 用户名格式验证 注意:在生产环境中,请替换为安全的认证机制! ## 扩展性 您可以轻松扩展以下功能: - 更改认证机制(如 JWT、OAuth2、LDAP) - 实现更复杂的权限模型 - 集成外部认证服务 - 添加缓存机制以提高性能 - 实现审计日志功能 ## 文档 - [开发者指南](docs/DEVELOPER_GUIDE.md) - 详细的开发指南 - [API参考文档](docs/API_REFERENCE.md) - 详细的API参考文档 - [安全配置指南](docs/SECURITY_CONFIG.md) - 详细的安全配置指南 - [版本切换指南](docs/VERSION_SWITCHING.md) - 如何在两个版本之间切换 - [项目结构说明](docs/PROJECT_STRUCTURE.md) - 项目的组织结构说明 ## 测试 运行单元测试: ```bash mvn test ``` 构建项目(跳过测试): ```bash mvn clean package -DskipTests ``` ## 安全考虑 - 生产环境中不应使用默认用户凭据 - 建议使用安全版插件部署到生产环境 - 实施适当的安全监控和日志记录 - 定期更新和维护插件代码 ## 维护 - 遵循语义化版本控制 - 保持与Nacos版本的兼容性 - 定期审查安全漏洞 - 提供向后兼容性保证