(J)Ruby - 重新定义核心类的安全方法?

时间:2011-03-10 05:46:14

标签: ruby security jruby

在File,String等核心类中重新定义方法的安全方法是什么?我正在寻找在(J)Ruby中实现类似于Java安全管理器的方法。

我正在寻找一种重新定义方法的方法,首先看看哪个类/脚本调用了这个方法,并且该类/脚本是否属于某些列入黑名单的类的列表(我跟踪)我想要提高例外,如果调用类属于非黑名单类,则允许该操作。类似的东西:

class String
  alias_method :old_length, :length

  def length
    if(#nowHowDoIGetTheCallingClass)
      raise "bad boy"
    else
      old_length
  end
end

我在JRuby中尝试了这个,但这只是替代方案。一次调用新的长度方法,下次调用旧的长度方法。我想alias在JRuby中无法正常工作! >。<

1 个答案:

答案 0 :(得分:0)

如果某些东西有时有效,但有时却不行,那么问题就更有可能是你的代码,而不是JRuby。 Select isn't broken