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
页面问题如果有高人解决,麻烦留言谢谢!!!