Gabi und Sascha
Kategorien : Alle | Berlin | Bücher | Fotografie | Java | Linkhalde | Weichware | Verfassung

☀ ☁ ☂ ☃ ☢ ☣ ☤ ☥ ☪ ☫ ☭ ☮ ☯ ☹ ☺ ♀ ♂ ♔ ♡ ♨ ♬

Den Schneemann finde ich am besten.

mehr…

User Generated Content - auch Aal-Prinzip genannt (andere arbeiten lassen) - ist mal wieder mächtig in. Ist so Web 2.0 mässig. Community-Site spriessen aus dem Boden. Beworben wird vielfach mit Chat und Dating - der ganze Social Network Quatsch halt. Damit sollen auch VCs gelockt werden. Die Rollenverteilung ist einfach: ich biete euch eine Plattform damit ihr sie füllt; ich kassiere am Ende die Kohle, damit ihr euch zum ficken treffen könnt. Virtuelle Zuhälterei - halbseidene Geschäftsideen.

Der GroovyClassLoader ermöglicht es, dass Groovy-Scripts im Sicherheitscontext einer JVM abgearbeitet werden können. Wird die JVM mit dem Property -Djava.security.manager gestartet, wird der SecurityManager mit seinem Kontext eingeschaltet. Mit dem Property -Djava.security.policy wird ein Verweis auf eine Policy-Datei übergeben. Damit das folgende Code-Snippet abgearbeitet werden kann, müssen in der Policy-Datei einige Security-Permissions gewährt werden.

Code-Snippet:


    final ClassLoader parent = GroovySecurityTest.class.getClassLoader();
    final GroovyClassLoader loader = new GroovyClassLoader(parent);

    final String script = "println 'hello world'";

    final GroovyCodeSource gcs = new GroovyCodeSource(script,
                                                      "HelloWorld",
                                                      "/speexx/test");

    final Class groovyClass = loader.parseClass(gcs);
    final GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance();
    final Object[] arguments = new Object[] {};

    groovyObject.invokeMethod("run", arguments);
  

Policy Grants:


    grant { 
        permission java.lang.RuntimePermission  "createClassLoader";       
        permission java.lang.RuntimePermission  "accessDeclaredMembers";
        permission java.lang.RuntimePermission  "getProtectionDomain";
        permission java.util.PropertyPermission "antlr.ast", "read";
        permission java.util.PropertyPermission "groovy.ast", "read";
        permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
        permission groovy.security.GroovyCodeSourcePermission "/speexx/test";
    };