---------------------------------------------------------------------------------------------------- 01.修改菜单、数据目录、单位的xls数据,编写递归查询SQL 02.登录时验证使用MD5+Salt密码 03.登录时的用户名和密码使用RSA加密、解密 04.WebSocket服务 05.资源实时监控(CPU信息+内存信息+在线用户+资源状态) 06.新建和修改用户密码时使用MD5加密 07.解决Swagger-UI无法传递Cookie信息 08.验证密码复杂度(8-20位包含字母、数字和特殊字符) 09.使用GDAL读取tif、shp、gdb文件 10.添加Mybatis Plus组件 11.解决表映射出错、根据ID查询失败、分页无效等问题 12.开发地名地址分页查询接口 13.开发上传shp文件读取第一条记录的WKT功能 14.解决上传文件时实体类映射异常 15.后台服务访问添加登录验证拦截器 16.开发切面日志功能 17.添加数据库监控功能(Druid Monitor) 18.设置下载文件的MIME类型 19.5分钟内密码错误5次拒绝登录 20.开发获取资源权限、菜单权限、操作权限接口 < 21. 22. 23. 24. 25. ----------------------------------------------- .Redis服务配置强密码 .添加批量修改用户密码接口 .修改所有的批量新增、删除、修改接口 .开发大文件上传接口(commons-fileupload) .GDAL读取shp后删除上传文件 .对用户、菜单、角色、资源进行授权 .添加查询角色、菜单、资源权限接口 ---------------------------------------------------------------------------------------------------- java 调用gdal读取gdb数据,linux下java调用gdal: https://blog.csdn.net/weixin_53853459/article/details/120954597 https://blog.csdn.net/qq_43444401/article/details/125649414 https://blog.csdn.net/qq_43961619/article/details/124627871 http://127.0.0.1:12316/dict/selectCount?tab=sys_user http://127.0.0.1:12316/Dict/selectByPage?tab=sys_user&pageSize=10&pageIndex=0 http://127.0.0.1:12316/Style/selectCount?name=edp http://127.0.0.1:12316/Style/selectByPage?name=edp&pageSize=10&pageIndex=0 http://127.0.0.1/lf/sg/login.html http://127.0.0.1:12316/swagger-ui.html http://192.168.20.106:12316/swagger-ui.html http://localhost:12316/sign/toIndex http://localhost:12316/sign/toLogin http://127.0.0.1:12316/sign/toLogin?service=http://www.sina.com.cn .gdb > HFCP+LRRL + TFCA .shp > F5004_WT.shp + F5004_WL.shp + F5004.shp ------------------------------------------------------------------------------- 暂时未对应的Controller data/DownloadController data/MetaFileController sys/AttachController sys/MsgController ---------------------------------------------------------------------------------------------------- java和js实现aes加密解密: https://blog.csdn.net/weixin_30663839/article/details/114049667 http://192.168.20.39:12306/ http://192.168.20.39:12315/ http://192.168.20.39:12316/ ---------------------------------------------------------------------------------------------------- String path = System.getProperty("user.dir"); String uid = RsaHelper.decrypt(user.getUid()); String pwd = RsaHelper.decrypt(user.getPwd()); String p1="Admin@123"; String p2= RsaHelper.encrypt(p1); String p3= RsaHelper.decrypt(p2); http://192.168.20.39:8088/cas/login,admin/Admin@123,postgres String pwd = "Admin@123"; String md5 = "b37f70636f1164e86cc8796201737933f65af63918d8442b"; boolean f1 = Md5Helper.validatePassword(pwd, md5); String md5Pwd = Md5Helper.reverse(Md5Helper.generate(pwd)); boolean f2 = Md5Helper.validatePassword(pwd, md5Pwd); new String(Base64.getDecoder().decode(username)); 下载:http://127.0.0.1:12316/style/download?guid=15deb4e6bf02db827e39521758520fd5 使用Commons FileUpLoad 文件上传功能: https://www.itdaan.com/blog/2017/08/08/b2dbc1106fa7.html ---------------------------------------------------------------------------------------------------- 一、开发运行环境 JDK版本:1.8 maven版本:3.5 文件编码:UTF-8 二、技术框架说明 总体采用了前后端分离的技术方案,后台提供REST服务,前端使用MVVM框架做用户交互。 前后端可并行独立开发。 ---------------------------------------------------------------------------------------------------- 服务端: 核心框架:SpringBoot 持久层框架:Mybatis 安全框架:Shiro 缓存:redis 前端: JS框架:vue.js 主页框架:adminLTE(基于Bootstrap) 表格插件:jqGrid 树形表格:tree-table 树形插件:ztree 弹窗组件:layer 表单校验:validator private static final String SQLSERVER_URL = "jdbc:sqlserver://192.168.0.77\\ZKZS;databaseName=xian"; ------------------------------------------------------------------------------------------------ 权限 综合展示\综合展示\查询: 下载、上传 综合展示\综合展示\标绘: 新增、修改、删除、上传 综合展示\专题图: 统计 综合展示\资料馆: 下载 ------------------------------------------- 数据管理\数据上传: 新增、修改、删除、上传、下载 数据管理\目录管理: 新增、修改、删除 数据管理\数据检索: 新增、修改、删除、上传、下载 数据管理\版本管理: 新增、修改、删除 数据管理\字典管理: 新增、修改、删除 数据管理\元数据管理: 新增、修改、删除、上传、下载 数据管理\样式管理: 新增、修改、删除、上传、下载 ------------------------------------------- 运维管理\系统管理\菜单管理: 新增、修改、删除 运维管理\系统管理\用户管理: 新增、修改、删除 运维管理\系统管理\单位管理: 新增、修改、删除 运维管理\系统管理\资源管理: 新增、修改、删除、上传 运维管理\系统管理\角色管理: 新增、修改、删除 运维管理\系统管理\权限管理: 新增、修改、删除 运维管理\授权管理\用户角色授权:新增、修改、删除 运维管理\授权管理\菜单权限授权:新增、修改、删除 运维管理\授权管理\角色菜单授权:新增、修改、删除 运维管理\授权管理\角色资源授权:新增、修改、删除 运维管理\运维监控\登录日志: 新增、修改、删除 运维管理\运维监控\操作日志: 新增、修改、删除 运维管理\运维监控\资源日志: 新增、修改、删除 运维管理\运维监控\令牌管理: 新增、修改、删除 运维管理\运维监控\黑白/名单: 新增、修改、删除 运维管理\系统配置: 修改 ---------------------------------------------------------------------------------------------------- { "id": 2, "pwd": "000000", "salt": "Admin@123" } // 获取请求方式: GET String getMethod() // 获取虚拟目录(上下文目录):虚拟路径通过在application配置当中可以配置 // 配置:server.servlet.context-path=/aaa String getContextPath() // 获取Servlet路径:就是获取的controller当中配置的路径 String getServletPath() /// 获取请求参数: id=3 // http://localhost:8080/aaa/test?id=3 String getQueryString() // 获取请求URI:/servletDemo/demo1 // 上下文路径+controller当中配置的路径 String getRequestURI() // 获取完整请求路径:http://localhost:8080/aaa/test String getRequestURL() // 获取协议及版本:HTTP/1.1 String getProtocol() // 获取客户机的IP地址:192.168.0.0 String getRemoteAddr() // 获取请求头数据,通过请求头名称获取值 String getHeader(String name) // 获取所有请求头信息 Enumeration getHeaderNames() // 获取流对象-获取字符输入流,只能操作字符数据 BufferedReader getReader() // 获取流对象-获取字节输入流,既能操作字节也能操作字符 ServletInputStream getInputStream() // 获取请求参数通用方式(根据参数名称获取参数值) username=zhangsan String getParameter(String name) // 获取请求参数名称获取参数值的数组 hobby=xx&hobby=game String[] getParameters(String name) // 获取请求参数名称(与获取请求头方法类似) Enumeration getParameterNames() // 获取所有参数的Map集合 Map getParameterMap() request.setCharacterEncoding("UTF-8"); // 通过request对象获取请求转发服务器: RequestDispatcher getRequestDispatcher(String path); // 使用==RequestDispatcher对象来进行转发 forward(ServlertRequest request,ServletResponse response); //设置状态码 response.setStatus(304); // 设置指定名称响应头的值,下面是导出的时候我们经常要设置的响应头,响应头当中还有文件的名称,也就是通过流下载文件的时候那个文件名称 response.setHeader("Content-Disposition", "attachment;filename=" + zipName); // 1.字符输出流 PrintWriter getWriter() // 2.字节输出流(一般导出就是将文件写到字节流,然后响应response) ServletOutputStream getOutputStream() // 注意:在同一个Servlet,二种输出流不能同时使用,产生互斥 // response提供了专门负责重定向的方法 response.sendRedirect("/项目地址/资源地址"); // 指定服务器响应中文的编码方式 response.setCharacterEncoding("GBK"); // 统一服务器和客户端的编码方式 response.setContentType("text/html;charset=utf-8"); // 导出的时候如果需要直接通过response流导出Excel,需要和前端设置上下文类型,如下: response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); ----------------------------------------------------------------------------------------------------