最近感觉在做项目,一千个客户就一个一千不一样要求。碰到一个客户,他们的数据在本地放着,但是要展示到我们系统中,但是他们也不想开接口(无奈),但是对方给了我们一台服务器。我们只有自己开发功能放在他们服务器了。 他们的服务器跟数据库是通的,但是以防客户随时变需求(一般肯定会变的),我们只有开发一个数据查询代理项目(dbagent),这样我们以后可以随便通过这个项目查询数据了。 为了功能安全,肯定要做密钥校验,dbagent的接口需要 sql,time,enc。dbagent添加密钥校验 time + sql +md5key 跟enc相等,time是为了时效性校验,如果超时不能查询,sql已经des加密,需要解密。 api项目调用agent接口查询数据,sql需要des加密。
开发完成需要本地部署,但是对方是win10服务器,需要编写启用脚本。 为了区别跟其他程序,java的启动程序需要定制下,在java_home/bin的java.exe重命名为agent startup.bat脚本如下 @echo off start agent -jar dbagent-0.0.1.jar > console.log 执行startup.bat脚本成功,接口能够正常访问,在任务管理器查看到agent进程。 为了方便启动程序,需要把脚本加入到服务中, sc create agent binpath= "C:\xx\xx\startup.bat" start= auto 加入服务后,启动服务报错。 只有把startup.bat包装成exe,使用 WinSW,目录结构下结构如下agent.xml配置如下,放到服务器执行成功个,添加服务成功,ok搞定!