# 启路框架-用户权限模块
**Repository Path**: lvjinlin/user
## Basic Information
- **Project Name**: 启路框架-用户权限模块
- **Description**: 启路框架-用户权限模块 后台管理类用户权限服务
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-02-07
- **Last Updated**: 2025-02-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# user
个人博客已经全部迁往http://blog.9istock.com,同时不再提供https服务,请各位注意
本项目是后台管理框架的一个用户管理插件.
本项目主要基于若依的模型(改了部分地方)和前端,重写java部分代码实现.主要实现了如下功能
* 用户权限模型
* 多租户/单租户的切换
* 去掉springBoot的使用,原因另外说
* 使用base项目的mybatis-generator-tools进行持久,去掉若依的代码生成
* 去掉若依的数据权限,若依的数据权限只能适合报表
* 去掉shiro的依赖,重写登录授权逻辑,shiro框架不适合后台类应用的玩法,比如增加登录后,选择机构的需求.
* 去除Thymeleaf,性能差,我不熟,而且后续其他功能的扩展没有考虑清楚
* 增加操作日志,登录日志的数据权限
* 修改用户列表,增加TreePicker控件
* 修改菜单列表,TreeTable的结构不适合真实的产品/项目,权限多了页面性能瓶颈会很明显
* 抽象登录信息的缓存,不是session就能解决的问题
* 支持同一个浏览器的不同页面,登录不同的用户
* 使用baseCache,增加各种缓存
* 增加在线用户的过期剔除操作,引入autoTask
* 增强各种密码的安全策略
* 增强登录控制,支持多种设备登录的次数限制,可以配置淘汰策略
* 修改数据字典,引入enum模型
* 考虑对外SSO的各种集成
## 开发环境搭建
> 本项目,需要IDE开启自动编译,java类的修改不改变方法签名的前提下,可以热加载,页面修改,无论怎么修改都能热加载.
> 开发环境搭建,需要依赖于[base项目](https://gitee.com/senvon/base),请把base项目,要么引入IDE,要么上传到自己的maven私服
1. 配置数据库,按照如下顺序,执行脚本,项目提供的sql是基于mysql的,入股需要其他数据库,请自行修改pdm文件生成
* sql/new-user-create.sql
* sql/autotask-create-mysql.sql
* sql/init.sql
2. 配置数据源
* 修改website/src/test/**/UserRunner.java文件,修改数据源地址
3. 修改配置参数
* 修改website/src/main/resources/conf.properties,根据当前需要的环境,设置属性项
* 确定应用支持的租户类型,mutiable.tenant为true,支持多租户,需要额外执行数据库脚本sql/init-mutilTenant.sql,如果需要单租户,mutiable.tenant为false,需要执行sql/init-sigleTenant.sql
4. 启动服务器
* 使用IDE引入代码,请引入maven工程,路径指向back-sample代码的根路径
* 如果编译报错,或者包找不到,请自行将base项目引入IDE,或者将base中的项目发布到私服
* 运行java程序,website/src/test/java/***/UserRuner.java,默认端口号18080,默认contextPath为new-user,如果看的不爽,请自行修改.
5. 登录服务
* 打开浏览器,输入http://localhost:18080/new-user 能打开浏览器,用户名密码 admin/admin123
6. 关于构建
* 使用settings-hw.xml 直接命令行运行mvn -s settings-hw.xml clean package
## 打包部署
1. 使用命令行进入user的最外层代码目录
2. 键入命令mvn clean package -Dmaven.skip.test
3. 命令会给api,core,dal,app分别打包,这些包是back-sample的插件集成包,不具备单独能力,一般这些包是要发布到nexus上的,请使用maven的deploy命令进行发布.
4. 部署的war包生成在website/target里面,如果user一定要独立部署,请使用这个war包.
[!WARNING]在打包过程中,请注意maven的settings文件中一定要配置http://nexus.9istock.com/repository/maven-public