- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Zeitlich gesteuerte Aktualisierung von Dateien im Mediastore
Hallo zusammen,
ich wรผrde gern mit Hilfe der Auftragsverwaltung einen Task anlegen, welcher eine zeitlich gesteuerte Aktualisierung einer JSON-Datei im Mediastore realisiert. Fรผr diesen Zweck habe ich ein kleines Plugin entwickelt, welches ich als Bibliothek serverweit bekannt gemacht habe. Den Aufruf der Bibliothek habe ich mittels Beanshell Skript getestet und konnte damit verifizieren, dass die Bibliothek das tut was sie soll.
Wenn ich jetzt allerdings versuche das Ganze in der Auftragsverwaltung meines Projektes als Aktion auszufรผhren, kommt es zu einer SecurtyException.
Nachfolgend einmal der (scheinbar) problematische Code und Fehlerlog:
ScheduleContext scheduleContext = (ScheduleContext) context;
StoreAgent storeAgent = context.requestSpecialist(StoreAgent.TYPE);
if (storeAgent != null) {
Store mediaStore = storeAgent.getStore(Store.Type.MEDIASTORE);
MediaImpl medium = (MediaImpl) mediaStore.getStoreElement(jsonMediaId, IDProvider.UidType.MEDIASTORE_LEAF);
{...}
medium.setLock(true, false);
de.espirit.firstspirit.access.store.mediastore.File mFile = medium.getFile(scheduleContext.getProject().getMasterLanguage());
mFile.setFile(jsonTempFile.length(), fis, "json");
medium.setParseFile(false);
medium.save("Aktualisierte JSON-Menรผstuktur", false);
medium.setLock(false, false);
{...}
}
ERROR
[โ] 04.03.2021 16:06:50 ERROR 04.03.2021 16:06:50.648 {uID=0,seID=145005,pID=113297} (de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor): error during script execution : de.espirit.firstspirit.access.script.ExecutionException: Method Invocation execute : at Line: 4 : in file: inline evaluation of: ``__execute() { //!Beanshell import de.adesso.firstspirit.intranet.maginal.Intrane . . . '' : .execute ( context )
Called from method: __execute
Target exception: java.lang.SecurityException: changes not allowed for current connection
at line 4
FSVersion=5.2.190910.78562;JDK=11.0.6 64bit Oracle Corporation;OS=Linux 3.10.0-1160.6.1.el7.x86_64 amd64;Date=04.03.2021 16:06:50 (I)
de.espirit.firstspirit.access.script.ExecutionException: Method Invocation execute : at Line: 4 : in file: inline evaluation of: ``__execute() { //!Beanshell import de.adesso.firstspirit.intranet.maginal.Intrane . . . '' : .execute ( context )
Called from method: __execute
Target exception: java.lang.SecurityException: changes not allowed for current connection
at line 4
at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:109)
at de.espirit.firstspirit.server.script.PermissionsScriptEngine$PermissionsExecutable.lambda$execute$1(PermissionsScriptEngine.java:83)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at de.espirit.firstspirit.server.script.PermissionsScriptEngine$PermissionsExecutable.execute(PermissionsScriptEngine.java:88)
at de.espirit.firstspirit.server.script.PermissionsScriptEngine$PermissionsExecutable.execute(PermissionsScriptEngine.java:83)
at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:106)
at de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor.run(ScriptTaskExecutor.java:127)
at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2506)
at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2489)
at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.call(ScheduleManagerImpl.java:2421)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:590)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:436)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:56)
Caused by: java.lang.SecurityException: changes not allowed for current connection
at de.espirit.firstspirit.server.scheduler.RestrictedTaskSecurityManager.checkAccess(RestrictedTaskSecurityManager.java:29)
at de.espirit.firstspirit.store.access.AbstractStoreElement.checkAccess(AbstractStoreElement.java:1443)
at de.espirit.firstspirit.store.access.DefaultStoreElement.setLock(DefaultStoreElement.java:449)
at de.espirit.firstspirit.store.access.DefaultStoreElement.setLock(DefaultStoreElement.java:441)
at de.adesso.firstspirit.intranet.maginal.IntranetMaginalJsonCreatorExecutable.writeToMediastore(IntranetMaginalJsonCreatorExecutable.java:104)
at de.adesso.firstspirit.intranet.maginal.IntranetMaginalJsonCreatorExecutable.execute(IntranetMaginalJsonCreatorExecutable.java:47)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at bsh.Reflect.invokeMethod(Reflect.java:185)
at bsh.Reflect.invokeObjectMethod(Reflect.java:118)
at bsh.BSHPrimarySuffix.doName(BSHPrimarySuffix.java:176)
at bsh.BSHPrimarySuffix.doSuffix(BSHPrimarySuffix.java:120)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:80)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
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)
... 18 more
Gibt es etwas, was ich zur Realisierung meines Vorhabens noch beachten muss oder ist das eventuell einfach nicht mรถglich?
Vielen Dank schon mal fรผr eure Hilfe!
Viele Grรผรe
Richard
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Richard,
die Fehlermeldung "changes not allowed for current connection" deutet darauf hin, dass Du versuchst, die รnderungen mit der Session des Auftrags direkt durchzufรผhren. Das wird unterbunden.
Lรถsung: In der Skript-Aktion unter Eigenschaften den Haken "Eigene Verbindung" aktivieren und die Zugangsdaten von einem Benutzer verwenden, der ausreichend Rechte hat, um die entsprechenden รnderungen durchzufรผhren:
Viele Grรผรe
Holger
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Richard,
die Fehlermeldung "changes not allowed for current connection" deutet darauf hin, dass Du versuchst, die รnderungen mit der Session des Auftrags direkt durchzufรผhren. Das wird unterbunden.
Lรถsung: In der Skript-Aktion unter Eigenschaften den Haken "Eigene Verbindung" aktivieren und die Zugangsdaten von einem Benutzer verwenden, der ausreichend Rechte hat, um die entsprechenden รnderungen durchzufรผhren:
Viele Grรผรe
Holger
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Holger,
tausend Dank fรผr die schnelle Hilfe! Daran hat es tatsรคchlich gelegen.
Viele Grรผรe
Richard

