在业务系统开发中,用户管理、身份认证、权限控制是核心基础模块,但其开发周期长、安全要求高,往往成为项目推进的瓶颈。Mole User 作为基于 Mole 组件库打造的开源用户中心模块,整合了 RBAC 权限模型与多场景登录能力,致力于为开发者提供易扩展、易集成的身份认证解决方案,大幅降低业务系统的集成成本。
一、项目核心信息
- 项目地址 :https://gitee.com/mole-platform/mole-user.git
- 开源协议:Apache License Version 2.0(自由开源,允许商业使用、修改、分发,需保留原版权声明)
- 开发语言:Java 100%
- 当前版本:1.0.1
- 核心定位:依托 Mole 组件库,提供标准化用户中心能力,兼顾安全性与易用性
二、核心功能特性
1. 完善的 RBAC 权限管理
Mole User 基于 RBAC(Role-Based Access Control)模型设计,实现用户、角色、权限的全生命周期管理:
- 用户管理:支持用户注册、查询、编辑、禁用 / 启用等基础操作,满足业务系统对用户信息的核心管理需求;
- 角色管理:支持自定义角色创建、权限分配,可灵活划分不同岗位 / 职责的权限范围;
- 权限控制:细粒度权限管控,支持菜单权限、接口权限等多维度权限配置,保障系统访问安全。
2. 多场景 Oauth2 登录能力
基于 Oauth2 协议构建标准化登录体系,适配各类业务场景的登录需求:
- 微信小程序手机号快捷登录:适配小程序生态,无需手动输入手机号,快速完成身份校验;
- 手机号验证码登录:支持短信验证码登录,兼顾便捷性与安全性,适用于各类移动端 / PC 端场景;
- MFA 多因子登录:提供额外安全校验层,支持密码 + 二次验证(如验证码、令牌)的登录方式,强化高安全需求场景的身份认证;
- 标准化兼容:Oauth2 协议兼容,可灵活扩展第三方登录(如微信、QQ、企业微信等),适配更多业务场景。
三、环境配置指南(克隆项目后必做)
Mole User 项目依赖 Nacos 作为配置中心,同时支持 Docker 镜像构建与推送,克隆项目后需在 pom.xml 中配置以下 profile 信息,确保项目能对接指定的中间件和镜像仓库。
1.nacos配置
创建用户中心命名空间

2.创建通用配置application-dev.yaml Group 1.0.1
注意:application-dev.yaml文件名中的 dev 根据profile名称一致。
Nacos的 Group 信息 与 maven 中 version 字段一致。
# Spring 相关
spring:
http-client:
pool:
readTimeout: 20000
retryTimes: 0
cloud:
inetutils:
preferredNetworks:
- 172. #这里可以是IP的全拼也可以是一部分.主要是用IP去匹配的
redis:
host: X.X.X.
port: 6379
password: XXXXXX
database: 0
timeout: 10000
3.创建mole-user配置 mole-user.yaml Group 1.0.1
server:
port: 8600
security:
oauth2:
client:
resourceId: ${spring.application.name}
spring:
datasource:
dynamic:
#设置默认的数据源或者数据源组,默认值即为master
primary: master
#严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
strict: false
datasource:
master:
username: root
password: Qrbrqj99
url: jdbc:mysql://X.X.X.X:3306/mole-user?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
# mybatis-plus输出日志配置
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
# 预制密钥
secret:
preSecretKey: 01cc84fa3a7d7b413488011a3a934c98
# 消息配置
msg:
smsCodeValidationEnabled: false
# 小程序配置
wechat:
#微信小程序APP ID
appId: XXXXXX
#微信小程序APP SECRET
appSecret: XXXXXX
# 微信Token接口
tokenUrl: https://api.weixin.qq.com/cgi-bin/stable_token
# 根据code获取手机号接口
codePhoneUrl: https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=
# 获取OpenId接口
openIdUrl: https://api.weixin.qq.com/sns/jscode2session
ignore:
urls:
- /doc.html
- /**/swagger-resources/**
- /webjars/**
- /v2/api-docs
项目启动时会加载通用配置application-dev.yaml 和 mole-user.yaml
3. profile配置
将以下 profile 配置添加到项目 pom.xml 文件的 <profiles> 节点下(若不存在 <profiles> 节点则新建)。
4.示例配置代码
<profiles>
<profile>
<id>dev</id>
<properties>
<!-- 环境标识,需与配置文件名称对应(如 application-dev.yml) -->
<profiles.active>dev</profiles.active>
<!-- Nacos 配置中心相关 -->
<nacos.namespace>57e1ce78-XXXX-XXXX-XXXX-276e29b83b6d</nacos.namespace>
<nacos.host>127.0.0.1</nacos.host>
<nacos.port>8848</nacos.port>
<preferredNetworks>172.</preferredNetworks>
<!-- Docker 镜像构建与推送相关 -->
<docker.host>http://X.X.X.X:2375</docker.host>
<!-- Harbor地址、用户名、密码等信息,用于推送Docker镜像>
<docker.registry>X.X.X.X:8085</docker.registry>
<docker.namespace>XXX</docker.namespace>
<docker.username>XXX</docker.username>
<docker.password>XXXXXX</docker.password>
</properties>
<activation>
<!-- 设置为默认激活的环境,无需手动指定 -Pdev -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
配置参数会编译到maven插件中,详细配置信息可参考如下插件信息
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.plugin.version}</version>
<configuration>
<!-- Docker Remote Api-->
<dockerHost>${docker.host}</dockerHost>
<!-- Docker 镜像私服-->
<registry>${docker.registry}</registry>
<!-- 认证信息-->
<authConfig>
<push>
<username>${docker.username}</username>
<password>${docker.password}</password>
</push>
</authConfig>
<images>
<image>
<!-- 镜像名称: 172.17.0.111/library/gateway:2.6.3-->
<name>${docker.registry}/${docker.namespace}/${project.name}:${project.version}</name>
<build>
<dockerFile>${project.basedir}/Dockerfile</dockerFile>
</build>
</image>
</images>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
<project_name>${project.name}</project_name>
</buildArgs>
</configuration>
</plugin>
5.访问验证
-
服务访问地址:http://localhost:8600
-
Swagger API 文档:http://localhost:8600/doc.html
