【mole】Mole User 开源用户中心:一站式身份认证与权限管理解决方案

在业务系统开发中,用户管理、身份认证、权限控制是核心基础模块,但其开发周期长、安全要求高,往往成为项目推进的瓶颈。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.访问验证

相关推荐
cchjyq17 小时前
嵌入式按键调参:简洁接口轻松调参(ADC FLASH 按键 屏幕参数显示)
c语言·c++·单片机·mcu·开源·开源软件
weixin_5112228017 小时前
SPELL_EFFECT_SUMMON (28) 用法详解
开源
Java陈序员17 小时前
数据同步神器!一款搞定多种数据源同步的开源中间件!
java·spring boot·mysql
AllData公司负责人17 小时前
杭州奥零数据科技 “2025全年度数据中台产品总结报告”
大数据·科技·开源
用户83071968408217 小时前
Spring Boot 核心事件全解析:启动链路 + 监听器作用详解
spring boot
麦兜*17 小时前
Spring Boot 启动过程全解析:从main方法到Tomcat启动的魔法之旅
java·spring boot·后端·spring·tomcat·firefox
Full Stack Developme18 小时前
Spring Security 与 Apache Shiro 两大安全框架比较
spring boot·python·安全
小蒜学长18 小时前
足球联赛管理系统(代码+数据库+LW)
java·数据库·spring boot·后端
这是程序猿18 小时前
基于java的SpringBoot框架医院药品管理系统
java·开发语言·spring boot·后端·spring·医院药品管理系统