TWidmayer
Elite Observer

Security Exception beim Projekt anlegen

Jump to solution

Hallo zusammen,

ich habe ein Skript geschrieben, welches ich über das Menü ausführen, um neue Projekte anzulegen.

Jedoch bekomme ich folgende Exception wenn ich nicht mit dem "Admin"-Account eingeloggt bin und das Skript ausführe.

java.lang.SecurityException: CHANGE_SERVER_SETTING

Der andere User, bei dem ich die Exception bekomme, ist aber auch Server-Administrator, weshalb mich dann die Exception wundert,

denn mit dem User kann ich ja manuell auch ein neues Projekt anlegen.

Was ich hier in der Community gelesen habe, ist dass ich eine Admin-Connection aufbauen muss??

Stimmt das? Mache ich hier was falsch?

Connection connection = context.getConnection();
Connection adminConnection = connection.getService(AdminService.class).getConnection();

adminService = adminConnection.getService(AdminService.class);
projectStorage = adminService.getProjectStorage();

    try {

   newProject = projectStorage.createProject("ProjectName","ProjectDescription");
   projectStorage.refreshProjects();

}

    catch (Exception e) {

   context.logInfo("Erstelle Projekt: " + e);
}

Vielen Dank und viele Grüße

Tobias

0 Kudos
1 Solution

Accepted Solutions
TWidmayer
Elite Observer

Die Antwort vom Helpdesk:

"Ich befürchte, dass Sie den Administrator-Modus nicht gestartet haben (Der Punkt unter Wichtig Smiley Happy und dass es deshalb nicht funktioniert hat (Ohne diese Option ist der Benutzer kein Server-Administrator und darf somit keine neuen Projekte anlegen). "

Also im Projekt unter dem Menüpunkt: "Projekt" --> "Administrator-Modus" muss ausgeführt sein... danach funktioniert es.

vielen Dank an Hr. Höbbel

View solution in original post

0 Kudos
4 Replies
MichaelaReydt
Community Manager

Hallo Tobias,

kannst du bitte auch den StackTrace zu der Exception posten und uns die von dir verwendete FS-Version mitteilen?

Vielen Dank im Voraus und viele Grüße

Michaela

0 Kudos

Hallo Michaela,

die FS-Version ist 5.1.410.67084

Was ist mit "den StackTrace zu der Exception"  genau gemeint?

Ich hab jetzt mal im catch-Zweig auf e die Methode printStackTrace() angewendet,

hoffe das war das was du meintest:

INFO  30.03.2015 13:04:35.486 (de.espirit.firstspirit.impl.access.ScriptContextImpl): Fehler beim Projekt erstellen java.lang.SecurityException: CHANGE_SERVER_SETTING

java.lang.SecurityException: CHANGE_SERVER_SETTING

    at de.espirit.firstspirit.store.access.AbstractSecurityManager.checkAction(AbstractSecurityManager.java:186)

    at de.espirit.firstspirit.admin.AdminImpl.createProject(AdminImpl.java:566)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.lang.reflect.Method.invoke(Unknown Source)

    at bsh.Reflect.invokeMethod(Reflect.java:166)

    at bsh.Reflect.invokeObjectMethod(Reflect.java:99)

    at bsh.Name.invokeMethod(Name.java:858)

    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)

    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)

    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)

    at bsh.BSHAssignment.eval(BSHAssignment.java:77)

    at bsh.BSHBlock.evalBlock(BSHBlock.java:130)

    at bsh.BSHBlock.eval(BSHBlock.java:80)

    at bsh.BSHBlock.eval(BSHBlock.java:46)

    at bsh.BSHTryStatement.eval(BSHTryStatement.java:88)

    at bsh.BSHBlock.evalBlock(BSHBlock.java:130)

    at bsh.BSHBlock.eval(BSHBlock.java:80)

    at bsh.BshMethod.invokeImpl(BshMethod.java:371)

    at bsh.BshMethod.invoke(BshMethod.java:267)

    at bsh.BshMethod.invoke(BshMethod.java:170)

    at bsh.PreparsedScript.invoke(PreparsedScript.java:66)

    at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:100)

    at de.espirit.firstspirit.client.gui.applications.ApplicationTabRegistry$IdentifiableExecutable.execute(ApplicationTabRegistry.java:114)

    at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:106)

    at de.espirit.firstspirit.common.ScriptUtil.executePrivileged(ScriptUtil.java:161)

    at de.espirit.firstspirit.common.ScriptUtil.access$000(ScriptUtil.java:31)

    at de.espirit.firstspirit.common.ScriptUtil$2.run(ScriptUtil.java:148)

    at de.espirit.firstspirit.client.gui.util.GuiUtil$RunnableWrapper.run(GuiUtil.java:1958)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at java.lang.Thread.run(Unknown Source)

INFO  30.03.2015 13:04:35.486 (de.espirit.firstspirit.impl.access.ScriptContextImpl): Fehler beim Projekt erstellen java.lang.SecurityException: CHANGE_SERVER_SETTING

java.lang.SecurityException: CHANGE_SERVER_SETTING

    at de.espirit.firstspirit.store.access.AbstractSecurityManager.checkAction(AbstractSecurityManager.java:186)

    at de.espirit.firstspirit.admin.AdminImpl.createProject(AdminImpl.java:566)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.lang.reflect.Method.invoke(Unknown Source)

    at bsh.Reflect.invokeMethod(Reflect.java:166)

    at bsh.Reflect.invokeObjectMethod(Reflect.java:99)

    at bsh.Name.invokeMethod(Name.java:858)

    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)

    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)

    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)

    at bsh.BSHAssignment.eval(BSHAssignment.java:77)

    at bsh.BSHBlock.evalBlock(BSHBlock.java:130)

    at bsh.BSHBlock.eval(BSHBlock.java:80)

    at bsh.BSHBlock.eval(BSHBlock.java:46)

    at bsh.BSHTryStatement.eval(BSHTryStatement.java:88)

    at bsh.BSHBlock.evalBlock(BSHBlock.java:130)

    at bsh.BSHBlock.eval(BSHBlock.java:80)

    at bsh.BshMethod.invokeImpl(BshMethod.java:371)

    at bsh.BshMethod.invoke(BshMethod.java:267)

    at bsh.BshMethod.invoke(BshMethod.java:170)

    at bsh.PreparsedScript.invoke(PreparsedScript.java:66)

    at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:100)

    at de.espirit.firstspirit.client.gui.applications.ApplicationTabRegistry$IdentifiableExecutable.execute(ApplicationTabRegistry.java:114)

    at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:106)

    at de.espirit.firstspirit.common.ScriptUtil.executePrivileged(ScriptUtil.java:161)

    at de.espirit.firstspirit.common.ScriptUtil.access$000(ScriptUtil.java:31)

    at de.espirit.firstspirit.common.ScriptUtil$2.run(ScriptUtil.java:148)

    at de.espirit.firstspirit.client.gui.util.GuiUtil$RunnableWrapper.run(GuiUtil.java:1958)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

    at java.lang.Thread.run(Unknown Source)

Viele Grüße

Tobias

0 Kudos

Hallo Tobias,

ich kann Dein Problem reproduzieren. Ich vermute, hier liegt ein Bug vor. Bitte wende Dich an unseren TechnicalSupport.

Grüße Marian

0 Kudos
TWidmayer
Elite Observer

Die Antwort vom Helpdesk:

"Ich befürchte, dass Sie den Administrator-Modus nicht gestartet haben (Der Punkt unter Wichtig Smiley Happy und dass es deshalb nicht funktioniert hat (Ohne diese Option ist der Benutzer kein Server-Administrator und darf somit keine neuen Projekte anlegen). "

Also im Projekt unter dem Menüpunkt: "Projekt" --> "Administrator-Modus" muss ausgeführt sein... danach funktioniert es.

vielen Dank an Hr. Höbbel

0 Kudos