1
伙计们,我试图在RoR中执行一个jar文件。感谢所以,我想到了使用IO :: popen调用来执行jar文件。Ruby on Rails:执行JAR
要求: - 登录网站:让我们公司的员工登录。它是一个Java库,如果用户名/密码有效,它会做一些魔术和数字。我照做了使用,
result = IO::popen("java -cp auth.jar com.name.auth.LDAPLookup " + params[:username] + " " + params[:password]).read
p result
输出: “授权”, “电子邮件”, “ID”]
- 没有输入消毒完成。这是有风险的。任何人都可以在用户名/密码中键入内容,并且将在服务器中执行。
我不知道该怎么做。我想尝试的一个选择是使用fork()或Process API来启动“java”并传递参数。但无法弄清楚。任何其他想法?
感谢您的回复Jimwise。我同意,这是一个表现痛苦。在演示之前我没有足够的时间查找宝石来执行LDAP查找。我喜欢你的JRuby想法!当我在SO上快速搜索jruby时,人们抱怨可用的GEM和Jruby vs Ruby的性能。然后我决定使用普通的Ruby进行切换。在这一点上转移到JRuby有多容易?任何指针? –
试用JRuby应该相当简单 - 如果您安装了JRuby,那么您在JRuby上的工作流程与您现在正在做的事情没有多大区别,只需输入'jruby -S $ command'就可以了。你今天在那里输入'$ command'。例如,要测试你的Rails应用程序,你可以执行'jruby -S bundle install; jruby -S bundle exec rails s'(或类似的)。或者你也可以使用RVM的JRuby支持(https://rvm.io/interpreters/jruby/)来使这个改变消失。 :-) – jimwise