2017-02-02 9 views
1

私はサンドボックス用のclojailライブラリを使用していますが、期待通りに動作しません。それはにSecurityExceptionを投げるために持っていますが、そうでない(import clojure.lang.RT)ラインでClojailはClojureでセキュリティ例外をスローしません

(ns jail.core 
    (:require [clojail.core :as s] 
      [clojail.testers :as t])) 

(def my-tester [(t/blacklist-objects [clojure.lang.RT]) 
       (t/blanket "clojail")]) 

(def sb (s/sandbox my-tester)) 

(println (sb '(do 
       (import clojure.lang.RT) 
       (RT/errPrintWriter)))) 

:ここ

はコードです。

PrintWriter(errPrintWriter)オブジェクトを返します。

答えて

0

私はクラスオブジェクトをimportマクロに渡さないとわかりますが、それはうまく動作しますが、動作はちょっと奇妙です。ここで

(println (sb '(do 
       clojure.lang.RT 
       (RT/errPrintWriter)))) 

は、今私はセキュリティ例外を取得しています、マクロimportは何とかセキュリティ例外をスローするclojailを防ぐことができます。

関連する問題