treeNMS介绍

国产的memcached可视化工具,还支持redis,是用JAVA开发的,基于WEB方式对Redis管理,前端界面是用easyui写的
下载地址

界面大致如下图,看起来还是ok的
在这里插入图片描述

安装包解压后结构如图
在这里插入图片描述
在Windows环境下直在 bin/startup.bat 双击运行即可,还有说明文档,挺不错,
但是在下用的是mac,没有startup.sh 文件怎么运行??

在部署说明.txt 文件中也说了
在这里插入图片描述
没办法自己搭建一个环境,手动搭建一个tomcat环境,
在常见问题.txt文件中又这么说
在这里插入图片描述
那么也就是说jdk1.7 + tomcat 7/8 搭建运行环境
直接将webapps文件夹下的 treenms 文件夹拷贝到 搭建的tomcat中的webapps中
运行./startup.sh 之后直接访问
http://localhost:8081/treenms/
(注意我这里tomcat端口改为了8081,一般是8080)

但是页面让我难受
在这里插入图片描述
验证码还是必填,怎么办,还好源码在手上,这就相当于可以为所欲为!!

首先修改前端的页面源码

treenms -> WEB-INF -> views -> system -> login.jsp

在这里插入图片描述
将login.jsp 验证码必填,注释

接下来修改后端验证码验证

这里用了很长时间不是有多难,是因为饶了很大一圈,本来想直接修改代码,也就是将class文件转为java修改完再转为class文件,但是最后修改完转class文件的时候报错,因为单个转一个文件,很多依赖啥的都没有,肯定不行,我甚至想到了将所有class转为java文件在同一转class,我的天这工作量!!!
后来看到源码文件LoginController.class

public String loginVaildate(HttpServletRequest request, HttpServletResponse response) {
        String ip = NetworkUtil.getIpAddress(request);
        String username = request.getParameter("username").toLowerCase();
        String password = request.getParameter("password");
        String captcha = request.getParameter("captcha").toLowerCase();
        username = StringEscapeUtils.escapeHtml4(username.trim());
        ....
        if (username != "" && username != null) {
            String identifyingCode = "0";

            try {
                Resource resource = new ClassPathResource("application.properties");
                // 这里是关键,说明identifyingCode 这是从properties文件中读取的
                Properties props = PropertiesLoaderUtils.loadProperties(resource);
                identifyingCode = (String)props.get("identifyingCode");
            } catch (IOException var24) {
                var24.printStackTrace();
            }

            if (identifyingCode.equals("1") && !captcha.equals(cap)) {
                message = "验证码错误!";
                map.put("error", message);
                this.permissionService.saveLog(username + " 输入的验证码有误 ,登录失败! ", username, ip);
                request.setAttribute("message", message);
                return "system/login";
            } else {
               
                        .......
                    }
                }
            }
        } else {
            ...
        }
    }

然后看看那个application.properties文件

#1启用验证码,0不启用验证码
identifyingCode=1

这还用说什么!!!
改为0不就OK了么

然后重启下tomcat,继续访问,页面还是那个页面但是
点击那个空白的按钮,随便输入验证码,
就有页面了

这种方式并不能很好解决页面问题,如果企业级使用,需要用更好的方式改变源码,或者基于treenms做更好的封装

现在再给大家说下如何将class文件可视化转为java文件

方式1.用JD-GUI(Java反编译工具)
方法2.
首先将class文件打包为jar:jar cvf {jar包名} *
然后再idea导入jar,就可以看了,但是还是class文件,不是java,得手动粘贴复制
第一种方式会有些文件无法解析,结合第二种将部分文件补全就行

上文中tomcat环境的搭建可以用docker,这样的话Linux、mac、window都行

docker pull tomcat:7-jre7-alpine
docker run \
--name treenms-1.7 \
-p 8081:8080 \
-v /treeNMS-1.7.3/webapps/treenms:/usr/local/tomcat/webapps/treenms  \
-d 219b3e66cefb

页面问题如果有高人解决,麻烦留言谢谢!!!

Logo

更多推荐