2007-03-25:
[13:11] <hns> weil ich grad das irc-transcript von gestern gelesen habe:[13:11] <hns> http://www.mozilla.org/rhino/apidocs/org/mozilla/javascript/ClassShutter.html[13:12] <hns> ist glaub ich das richtige...[13:12] <hns> einfach visibleToScripts() so implementieren dass immer false gesenedet werden und man ist sicher (dass gar nix mehr geht)[13:14] <zumbrunn> der trick via javascript einen neuen Rhino context zu erzeugen ist aber interessant...[13:14] <zumbrunn> und scheint gut zu funktionieren[13:15] <zumbrunn> wie man das ganze mit den ClassShuttern angehen muesste, war und ist mir nicht ganz klar[13:15] <hns> glaub ich nicht, momentan... nachdem schon ein context mit dem aktuellen thread verknüpft ist, sollte immer der gleiche context zurückkommen.[13:16] <zumbrunn> also, soweit ich das getestet habe funktioniert's[13:17] <zumbrunn> aber vielleicht hab ich einfach noch nicht gemerkt wo's probleme gibt[13:17] <hns> ich würde sagen, der context, den du mit Context.enter() zurückkriegst ist der gleiche wie der aktuelle.[13:17] <hns> vergleich mal mit Context.getCurrentContext().[13:18] <hns> Context.enter() == Context.getCurrentContext()[13:20] <hns> alles andere würde mich sehr verwundern[13:23] <zumbrunn> also, du meinst wir haetten so trotzdem immer nur einen context pro request[13:31] <zumbrunn> context.evaluateString(scope,'delete Packages; this.Packages;',null,1,null) == undefined[13:31] <zumbrunn> danach ist im gleichen request Packages aber immer noch defined[13:31] <zumbrunn> (im normalen helma request scope)[13:35] <zumbrunn> mit anderen worten, es funktioniert so wie ich mir das wuensche, obschon der context der gleiche ist[13:35] <zumbrunn> hmm[13:35] <hns> keine ahnung[13:43] <zumbrunn> naja, soweit klar, weil das ja nicht vom context abheangt, sondern vom scope[13:44] <zumbrunn> scope = context.initStandardObjects(); generiert einen frischen default global scope mit java, Packages, etc[13:45] <zumbrunn> das heisst, es ist wohl egal wenn der context der selbe ist[13:45] <zumbrunn> auf alle faelle *scheint* es wunderbar zu funktionieren[13:54] <hns> na dann eh ok.[13:54] <hns> ich würd das halt eher via Classshutter probieren, siehe link oben.[13:54] <hns> Context.setClassShutter() oder so glaub ich.[13:55] <hns> Sonst kommst du _immer_ irgendwie raus, z.b. über res.getClass().getClassLoader() oder so[13:56] <zumbrunn> res gibt's in dem erzeugten scope aber gar nicht[13:56] <zumbrunn> das ist ein reiner default js scope[13:59] <zumbrunn> mit Context.setClassShutter() wuerde man dann aber dem ganzen request scope/context den zugang zu den packages abdrehen, nicht nur dem bisschen untrusted code, oder?[14:02] <hns> wenn's der gleiche context ist, dann schon.
In the channel now:
Logs by date: