Skip to main content

Authentification Exceptions

Comments

10 comments

  • Zendesk API User
    Author: Peter_Jodeleit - 5/27/2015 16:30

    Auch die Angabe einer eigenen Verbindung in den Skript-Task-Eigenschaften führt zu diesem Ergebnis.

    Das sollte aber nicht so sein.

    Deswegen verbindet sich das Modul aktuell mittels  getConnection(...) und einem technischen Nutzer mit dem Serrver.

    [..]

    Das funktioniert auch eine Weile (ca. 20min?) gut, irgendwann bekomme ich jedoch dann immer eine unexpected authentication exception und einen Abbruch des Auftrages.

    Poste doch mal die Exception hier.

    0
  • Zendesk API User
    Author: ASpengler - 5/28/2015 7:58

    Das sollte aber nicht so sein.

    Eventuell hole ich mir die Connection falsch? Ich verwende ich getConnection() ohne Parameter auf dem SchedulerContext.

    Poste doch mal die Exception hier.

    INFO  26.05.2015 13:03:18.227 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): new session (ID=2929856222415414847, user=pim, userID=237345, type=CHILD) created

    ERROR 26.05.2015 13:03:18.228 (de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor): error during script execution : de.espirit.firstspirit.access.AccessRuntimeException: unexpected authentication exception!

    de.espirit.firstspirit.access.AccessRuntimeException: unexpected authentication exception!

        at de.espirit.firstspirit.server.io.ServerConnectionImpl.createUserService(ServerConnectionImpl.java:171)

        at de.espirit.firstspirit.server.io.ServerConnectionImpl.access$000(ServerConnectionImpl.java:48)

        at de.espirit.firstspirit.server.io.ServerConnectionImpl$1.invoke(ServerConnectionImpl.java:96)

        at de.espirit.firstspirit.server.io.ServerConnectionImpl$1.invoke(ServerConnectionImpl.java:95)

        at de.espirit.common.util.CachingFactory$ValueCreationStrategy$1.get(CachingFactory.java:45)

        at de.espirit.common.util.CachingFactory.get(CachingFactory.java:223)

        at de.espirit.firstspirit.server.io.ServerConnectionImpl.getUserService(ServerConnectionImpl.java:147)

        at de.espirit.firstspirit.server.io.ServerConnectionImpl.getUserService(ServerConnectionImpl.java:136)

        at de.espirit.firstspirit.server.io.ServerConnectionImpl.getUserService(ServerConnectionImpl.java:48)

        at de.espirit.firstspirit.server.projectmanagement.ProjectImpl.getUserService(ProjectImpl.java:2121)

        at de.espirit.firstspirit.client.UserServiceImpl.getRemoteUserService(UserServiceImpl.java:676)

        at de.espirit.firstspirit.agency.UserServiceDelegatingSpecialistsBroker$BrokerAgentImpl.getBroker(UserServiceDelegatingSpecialistsBroker.java:154)

        at de.espirit.firstspirit.client.access.editor.ReferenceEditorValueImpl.parseValue(ReferenceEditorValueImpl.java:177)

        at de.espirit.firstspirit.client.access.editor.ReferenceEditorValueImpl.parseValue(ReferenceEditorValueImpl.java:105)

        at de.espirit.firstspirit.client.access.editor.ReferenceEditorValueImpl.parseValue(ReferenceEditorValueImpl.java:61)

        at de.espirit.firstspirit.client.access.editor.AbstractEditorValue.parseDataElement(AbstractEditorValue.java:424)

        at de.espirit.firstspirit.client.access.editor.AbstractEditorValue.assimilate(AbstractEditorValue.java:777)

        at de.espirit.firstspirit.store.access.contentstore.ContentUtil$1.get(ContentUtil.java:151)

        at de.espirit.firstspirit.store.access.DataUtil.copy(DataUtil.java:123)

        at de.espirit.firstspirit.store.access.DataUtil.injectFormData(DataUtil.java:41)

        at de.espirit.firstspirit.store.access.contentstore.DatasetImpl.setFormData(DatasetImpl.java:197)

        at de.adesso.bosch.pt.fsmodule.automation.AddToProductExecutable.addTeaser(AddToProductExecutable.java:115)

        at de.adesso.bosch.pt.fsmodule.automation.AddToProductExecutable.execute(AddToProductExecutable.java:55)

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

        at de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor.run(ScriptTaskExecutor.java:119)

        at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2062)

        at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2045)

        at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.call(ScheduleManagerImpl.java:1973)

        at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:520)

        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

        at java.util.concurrent.FutureTask.run(FutureTask.java:138)

        at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)

        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

        at java.util.concurrent.FutureTask.run(FutureTask.java:138)

        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

        at java.lang.Thread.run(Thread.java:662)

        at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:36)

    Caused by: java.lang.IllegalArgumentException: Parent session (id=7244416222538068344) not found!

        at de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl.linkSessions(SessionManagerImpl.java:724)

        at de.espirit.firstspirit.client.io.ProjectConnection.connect(ProjectConnection.java:58)

        at de.espirit.firstspirit.server.io.ServerConnectionImpl.createUserService(ServerConnectionImpl.java:169)

        ... 38 more

    INFO  26.05.2015 13:03:18.228 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): finished task 'AddTeaser' - schedule entry 'AddTeaserTest' (id=5736309)

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 5/28/2015 13:43

    Durchläuft der Code eine Schleife? Wenn ja, kannst du da testweise ein "connection.ping()" einfügen?
    Ursache ist wohl, das hier eine Session weggeräumt wurde:

    Parent session (id=7244416222538068344) not found!

    Die von dir erwähnten 20 Minuten hören sich so an, als hätte hier ein autmatischer Timeout zugeschlagen, was eigentlich nicht passieren darf.

    Das ist die Connection aus dem SchedulerContext mit dem technischem Nutzer?

    0
  • Zendesk API User
    Author: ASpengler - 5/29/2015 8:03

    Hallo,

    das mit dem Connection.ping() teste ich aus und gebe Rückmeldung.

    Die Connection ist die zum oben gezeigtem Stack passt, ist die "manuelle" Verbindung mit technischem User. Bei der Connection aus dem Context mit technischem Benutzer komme ich wie gesagt garnicht so weit. (changes not allowed for current connection)

    0
  • Zendesk API User
    Author: ASpengler - 6/1/2015 7:52

    Laut API gibt es keine ping()-Methode für die Connection-Klasse. Meintest du was anderes?

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 6/1/2015 14:12

    Laut API gibt es keine ping()-Methode für die Connection-Klasse. Meintest du was anderes?

    Stimmt, mein Fehler.

    Kannst du noch mal den Weg über den technischen Benutzer testen? Und das Code-Fragment posten, wie du dir die Connection aus dem Kontext holst?

    0
  • Zendesk API User
    Author: ASpengler - 6/1/2015 15:03

    Ich habs nochmal umgestellt mit selben Ergebnis (wie zuvor):

    Scriptaufruf:

    Code für die connection:


    Connection connection = context.getConnection();

    Fehlermeldung:

    ERROR 01.06.2015 15:54:25.609 (de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor): error during script execution : java.lang.SecurityException: changes not allowed for current connection

    java.lang.SecurityException: changes not allowed for current connection

        at de.espirit.firstspirit.server.scheduler.RestrictedTaskSecurityManager.checkAccess(RestrictedTaskSecurityManager.java:28)

        at de.espirit.firstspirit.store.access.AbstractStoreElement.checkAccess(AbstractStoreElement.java:1599)

        at de.espirit.firstspirit.store.access.contentstore.Content2Impl.lock(Content2Impl.java:287)

        at de.espirit.firstspirit.store.access.contentstore.DatasetImpl.setLock(DatasetImpl.java:974)

        at de.espirit.firstspirit.store.access.contentstore.DatasetImpl.setLock(DatasetImpl.java:983)

        at de.adesso.bosch.pt.fsmodule.automation.AddToProductExecutable.addTeaser(AddToProductExecutable.java:115)

        at de.adesso.bosch.pt.fsmodule.automation.AddToProductExecutable.execute(AddToProductExecutable.java:55)

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

        at de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor.run(ScriptTaskExecutor.java:119)

        at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2062)

        at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2045)

        at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.call(ScheduleManagerImpl.java:1973)

        at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:520)

        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

        at java.util.concurrent.FutureTask.run(FutureTask.java:138)

        at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)

        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

        at java.util.concurrent.FutureTask.run(FutureTask.java:138)

        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

        at java.lang.Thread.run(Thread.java:662)

        at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:36)

    INFO  01.06.2015 15:54:25.609 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): Session terminated (ID=1277186608780062882, user=pim (pim)(dummy)), number of sessions now 31

    Es wird ja scheinbar auch der angebene technische Benutzer (pim) verwendet, denn den Auftrag starte ich als Admin. pim ist in der Gruppe der Projektadministratoren.

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 6/1/2015 15:41

    Das Element, welches da gesperrt wird ("AddToProductExecutable.java:115"), kommt das auch über diese Connection?

    0
  • Zendesk API User
    Author: ASpengler - 6/2/2015 7:51

    Ja, ich hole mir aus der connection den UserService und ab da immer weiter. Ich hab den Weg zum Lock mal unten skizziert:

    UserService us = connection.getProjectById(context.getProject().getId()).getUserService();

    ContentStoreRoot contentStoreRoot = (ContentStoreRoot) us.getStore(Store.Type.CONTENTSTORE, false);

    Content2 products = contentStoreRoot.getContent2ByName("products_table");

    List<? extends Entity> productsList = products.getData();

    for (Entity product : productsList) {

         Dataset productDataSet = products.getDataset(product);

         ...

         productDataSet.setLock(true, false);

         ...

        }

    0
  • Zendesk API User
    Author: ASpengler - 6/12/2015 7:44

    Mittlerweile konnte ich das Problem lösen: die Art und Weise die eigene Verbindung aus dem Skript-Auftrag zu holen, war nicht korrekt. Mit connection = (Connection) map.get("connection"); bekomme ich die richtige Connection die auch nicht nach 20min aussteigt.

    0

Please sign in to leave a comment.