# 启路框架-用户权限模块 **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