(J) Ruby安全的重新定义核心类的方法?
在核心类(如File、String等)中重新定义方法的安全方法是什么?我正在寻找在(J)Ruby中实现类似Java安全管理器的东西 我正在寻找一种重新定义方法的方法,首先查看哪个类/脚本调用了该方法,如果该类/脚本属于一些黑名单类(我一直跟踪)的列表,我想引发一个异常,如果调用类属于非黑名单类,则允许该操作。比如:(J) Ruby安全的重新定义核心类的方法?,ruby,security,jruby,Ruby,Security,Jruby,在核心类(如File、String等)中重新定义方法的安全方法是什么?我正在寻找在(J)Ruby中实现类似Java安全管理器的东西 我正在寻找一种重新定义方法的方法,首先查看哪个类/脚本调用了该方法,如果该类/脚本属于一些黑名单类(我一直跟踪)的列表,我想引发一个异常,如果调用类属于非黑名单类,则允许该操作。比如: class String alias_method :old_length, :length def length if(#nowHowDoIGetTheCalli
class String
alias_method :old_length, :length
def length
if(#nowHowDoIGetTheCallingClass)
raise "bad boy"
else
old_length
end
end
我在JRuby中尝试过这一点,但这只能作为一种选择。一次调用新的length方法,下一次调用旧的length方法。我猜
别名在JRuby!>中不能正常工作 如果某些东西有时能工作,但在其他时间不能工作,那么问题更可能是您的代码,而不是JRuby 奇怪的是,它的工作方式正好相反。在过去的两天里,我一直在努力修复它。无论如何,谢谢你的链接。读得好^^