2009-04-07 18 views

Répondre

8

Une méthode pour bloquer l'accès à certains paquets et classes (y compris par réflexion) dans Rhino est décrite here. L'interface importante est ClassShutter qui fournit un contrôle d'accès pour le support LiveConnect de Rhino.

+1

Ironiquement, le lien vers codeutopia.net sur le blocage de l'accès revient 403 Interdit pour moi –

1

pourquoi ne pas dire:

java = undefined; com = non défini; Paquets = undefined;

dans un script initial qui est chargé en premier.

+3

Approche intéressante, fonctionne probablement si vous voulez désactiver * tous * l'accès à Java (pas seulement les paquets spécifiques). D'un autre côté, vous pourriez probablement faire 'obj.getClass(). ForName (" a.b.c.TheClass "). NewInstance()' pour tout objet que vous avez dans la portée de l'interpréteur. – Thilo

+0

@Thilo non si vos objets sont des objets javascript (ce que vous devez faire) – Zo72

+0

C'est une mauvaise idée car les méthodes JavaScript semblent appeler les fonctions 'java.io' qui échoueront si elles ne peuvent pas trouver le' java' classe. Essayez d'évaluer 'print (" Hello World ");' après avoir défini un 'java' et voyez où cela vous mène -' TypeError: Impossible de lire la propriété "io" de undefined'. – chrixm