标签: jruby

Java脚本安全性(JRuby,Jython,Groovy,BeanShell等)

我正在寻找运行一些未经验证的脚本(用一种尚未确定的语言编写,但需要基于Java,因此JRuby,Groovy,Jython,BeanShell等都是候选者).我希望这些脚本能够做一些事情并限制做其他事情.

通常,我只是使用Java的SecurityManager并完成它.这非常简单,让我限制文件和网络访问,关闭JVM的能力等等.这对我想要阻止的高级别东西很有效.

但是我想要允许一些东西,但只能通过我提供的自定义API /库.例如,我不想允许直接网络访问打开到yahoo.com的URLConnection,但如果使用MyURLConnection完成,我没关系.那就是 - 我想要允许的一组方法/类,然后我想要的其他一切不受限制.

我不相信这种类型的安全性可以使用标准的Java安全模型来完成,但也许它可以.我对脚本语言本身的性能或灵活性没有特定要求(脚本将通过基本循环/分支对我的API进行简单的过程调用).所以即使是一个"大"的开销来检查每次反射调用的安全检查也没问题.

建议?

java security groovy jython jruby

11
推荐指数
1
解决办法
3149
查看次数

Rails的关闭钩子

我希望在Rails关闭时运行一些清理代码 - 这可能吗?我的情况是我在后台有一些线程(我正在使用jruby并调用java),这些线程一直存在于进程的生命中,我需要让他们知道关闭自己

谢谢!

ruby-on-rails jruby

11
推荐指数
2
解决办法
3426
查看次数

Rails迁移生成默认时间戳(created_at,updated_at)为NULLABLE

前段时间我们将应用程序升级到Rails 4并切换到JRuby.

在此更改之前,迁移会将默认时间戳创建为NOT NULL.在更改之后,缺少NOT NULL.

我们创建这些时间戳(created_at,updated_at)如下:

class Model < ActiveRecord::Migration
  def change
    create_table :model do |t|
      t.belongs_to :user, :null => false

      t.text :content

      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我们的应用程序的重要部分是:

  • ruby'1.9.3',:engine =>'jruby',:engine_version =>'1.7.9'
  • 宝石'轨道','4.0.2'
  • gem'activerecord -jdbcpostgresql-adapter','1.3.4'
  • postgresql:稳定9.3.1

您是否知道可能导致问题的原因以及我们如何将默认生成更改回NOT NULL

migration postgresql activerecord ruby-on-rails jruby

11
推荐指数
1
解决办法
8489
查看次数

无法使用rackup和jRuby启动简单的Sinatra应用程序(Web服务器无响应)

我有一个Sinatra"hello world"应用程序,我试图使用jRuby运行.它在我运行应用程序时有效,但在我运行机架时则无效.谁能告诉我这里发生了什么?

这是应用程序,在'app.rb'文件中:

require 'rubygems'
require 'bundler/setup'
require 'sinatra'

configure do
  set :bind, '0.0.0.0'
end

get '/' do
  'Boo!'
end
Run Code Online (Sandbox Code Playgroud)

我可以运行它bundle exec ruby app.rb,它工作正常:

jonea@centos7andy[~/andy/sinatra_sand_jruby]%: bundle exec ruby app.rb
[2015-01-12 10:36:06] INFO  WEBrick 1.3.1
[2015-01-12 10:36:06] INFO  ruby 1.9.3 (2014-12-09) [java]
== Sinatra/1.4.5 has taken the stage on 4567 for development with backup from WEBrick
[2015-01-12 10:36:06] INFO  WEBrick::HTTPServer#start: pid=31654 port=4567
Run Code Online (Sandbox Code Playgroud)

这是我的config.ru来调用上面的程序:

require 'rubygems'
require 'bundler/setup'
require 'sinatra'
require './app'

run Sinatra::Application
Run Code Online (Sandbox Code Playgroud)

如果我运行它,它似乎工作,但我无法使用Web浏览器访问服务器:

jonea@centos7andy[~/andy/sinatra_sand_jruby]%: bundle exec rackup -p4567 …
Run Code Online (Sandbox Code Playgroud)

ruby jruby sinatra rackup

11
推荐指数
2
解决办法
1万
查看次数

Rails架构创建问题

我正在使用Jruby和rails 2.2.2.我的问题是我的迁移未正确写入数据库模式.

这是我的迁移:

class CreateNotes < ActiveRecord::Migration
  def self.up
    create_table(:notes, :options => 'ENGINE=MyISAM') do |t|
      t.string :title
      t.text :body

      t.timestamps
    end

    execute "alter table notes ADD FULLTEXT(title, body)"

end
Run Code Online (Sandbox Code Playgroud)

这是它在schema.rb中生成的内容

create_table "notes", :force => true do |t|
  t.string   "title"
  t.text     "body"
  t.datetime "created_at"
  t.datetime "updated_at"
end

add_index "notes", ["title", "body"], :name => "title"
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  • 我如何'ENGINE=MyISAM'进入架构?
  • 为什么我的执行声明变成了add_index "notes", ["title", "body"], :name => "title"?以及如何强制迁移将其作为执行语句保留?

感谢Christian Lescuyer的回答.但是,当我尝试这个没有改变.我取消注释了config.active_record ...行,但我的架构没有改变.我已经尝试了jruby和ruby 1.8.6上的rails 2.2.2和edge rails,架构没有变化.谁能告诉我我做错了什么?

migration ruby-on-rails jruby activerecord-jdbc

10
推荐指数
3
解决办法
6261
查看次数

用于管理CSS爆炸和/或重用的Java库?

Java问:我喜欢CSS用于简单的网页,但是当涉及现实世界的网站时,它会厌恶它,因为你得到了css爆炸和大量的重复.

我很想使用Sass和Compass,但它们是Ruby程序,很可能需要一些有趣的Maven + JRuby才能为Java Web app dev工作.如果您使用Eclipse或支持与正在运行的Web应用程序同步的任何IDE,这也会很困难.

对于地狱中的CSS,还有一个更好的替代方案是Java吗?

css java maven-2 jruby sass

10
推荐指数
1
解决办法
2338
查看次数

android上的ruby:ruboto vs rhodes?

有没有人尝试使用Ruby开发Android应用程序?如果是这样,你会推荐哪种工具?比较(两者之间)有什么优缺点?

任何经验,见解等的分享将非常感激.

android jruby rhodes mirah ruboto

10
推荐指数
1
解决办法
2109
查看次数

Ruby gui for Desktop应用程序

经过长时间的谷歌搜索,我想知道是否真的存在基于Ruby的维护gui.

这是我检查的那个:

  • 鞋子:我不觉得我可以用它创造坚固的平台

  • Cocoa和MacRuby:没有新消息,几乎没有教程

  • Qt4Ruby:与上面相同

  • FxRuby几乎没有更新

  • ...

简而言之,我看过这里提到的所有gui ,但我不相信......

所以:

  • 我无法为Cocoa和Qt找到合适的文档吗?(我希望它成为答案!)

  • 是否存在基于维护的Ruby gui的强大社区?(请再说一次!)

ruby user-interface qt jruby macruby

10
推荐指数
1
解决办法
1842
查看次数

使用Clojure的gem中提供的JRuby类

我很简单地需要在Clojure中使用Ruby类.复杂的因素是该类是在宝石中提供的.最佳方法是按照以下方式设置我的Leiningein项目文件:

(project foo ""
  ...
  :dependencies [[clojure ...]
                 [jruby ...  ]])
Run Code Online (Sandbox Code Playgroud)

同样,我更愿意只检查gem及其依赖项到本地repo目录中.因此,从我理想的用法是:

(ns bar.baz
  (require [jruby.something :as jruby])

(def obj (jruby/CreateAnInstance "TheGemClass"))

(def result (jruby/CallAMethod obj "method_name" some args))
Run Code Online (Sandbox Code Playgroud)

谢谢.

ruby gem interop jruby clojure

10
推荐指数
1
解决办法
721
查看次数

为什么logstash启动/加载需要这么长时间?

编辑:我改变了标题,因为问题不是我最初的想法.事实上,logstash需要一分多钟才能启动,这可能被误解为"沉默"......


我正在尝试使logstash运行,所以我按照官方网站上的说明进行独立安装:http://logstash.net/docs/1.1.4/tutorials/getting-started-simple

基本上,我得到了logstash-1.1.4-monolithic.jar文件,然后构建一个非常简单的配置文件:( example.conf)

input {
  stdin { type => "stdin-type"  }
}
output {
  stdout { debug_format => "json" }
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行logstash时,什么都没有出来(我在STDIN中键入随机文本,但没有得到响应):

# java -jar logstash-1.1.4-monolithic.jar agent -f example.conf
Test
toto
hey ??? Wakeup !!!
^C
Run Code Online (Sandbox Code Playgroud)

(有关信息:Java版本是正确的)

# java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

拜托,有人能告诉我我错过了什么吗?

java jar jruby logstash

10
推荐指数
1
解决办法
6319
查看次数