# Groovy Scripts im ApplicationServer absichern



## urbiwanus (13. Apr 2012)

Hallo zusammen, 

In meiner JEE 6 Anwendung ist es möglich, dass der Anwender ( aktuell nur Admins) an bestimmten stellen Groovy Skripte eingeben und ausführen kann. 

In der neuen Version möchte ich den Kreis der Anwender erweitern. Daher suche ich eine Möglichkeit bestimme Befehle z.B System.exit(0) zu sperren. 

Die Applikation wird derzeit auf Glassfish 3.1 deployed.


Gibt es eine Möglichkeit (z.B policy Datei)  um bestimmte Befehle zu sperren bzw. nur ein Set an Befehlen zuzulassen oder muss ich das selbst in meine Anwendung integrieren ?


Grüße


----------



## HoaX (14. Apr 2012)

SecurityManager passend setzen/konfigurieren.

Groovy - Security
Groovy scripts and JVM Security  chris moos's blog


----------



## urbiwanus (17. Apr 2012)

Hi

Danke für die Infos 

leider bekomm ich es nicht richtig zum laufen 

in meiner server.policy hab ich folgenden Eintrag hinzugefügt 


```
grant codeBase "file:/restrictedScript" {

};
```

Mein Java Code sieht so aus:


```
try {
            GroovyCodeSource groovyCodeSource = new GroovyCodeSource(groovyScript, "UntrustedScript", "/restrictedScript");
            result = shell.evaluate(groovyCodeSource);
        }
        catch (Exception ex) {
            java.util.logging.Logger.getLogger(GroovyService.class.getName()).log(Level.SEVERE, null, ex);
        }
        return result;
```

Leider scheint die policy nicht zu greifen (System.getenv(), exit(0) gehen immer noch)


----------



## HoaX (17. Apr 2012)

Schau mal da:


			
				http://docs.oracle.com/cd/E18930_01/html/821-2418/beabx.html hat gesagt.:
			
		

> Enabling and Disabling the Security Manager
> 
> The security manager is disabled by default.



Oder auch hier: https://blogs.oracle.com/monzillo/entry/policy_files_the_securitymanager_and

Waren keine 2 Minuten googlen...


----------



## urbiwanus (17. Apr 2012)

Vielen Dank !!

Hab immer nach den falschen Wörtern gegoogelt.


----------



## urbiwanus (17. Apr 2012)

In der neuen Groovy Version lässt sich mit Hillfe von SecureASTCustomizer 
das ganze zur Laufzeit steuern

siehe Cedric Champeau's Weblog : Weblog


----------

