Ankündigung

Einklappen
Keine Ankündigung bisher.

Pruefung auf isAuthenticated funktioniert im Portlet nicht

Einklappen
X

Pruefung auf isAuthenticated funktioniert im Portlet nicht

Einklappen
  • Filter
  • Zeit
Alles löschen
neue Beiträge

  • Intrexx 8.0 Pruefung auf isAuthenticated funktioniert im Portlet nicht

    Hallo zusammen,

    ich habe ein relativ mühsames Problem mit dem Exchange Connector. Den Support hatte ich schon angeschrieben, aber da kam keine unmittelbar hilfreiche Antwort zurück.
    Kurz zum Problem:
    Wir verwenden den Exchange Server mit Benutzername/Passwort-Authentifizierung. Das funktioniert an sich ganz gut, außer man lädt entsprechende Kalender in einem Portlet.
    Wenn der User nicht im Media Gateway eingeloggt ist, so kommt nicht wie üblich das Loginfenster, sondern eine unspezifische "An error occured"-Fehlermeldung. Das interne Errorhandling welches Authentifizierungsfehler abfängt und behandelt funktioniert offensichtlich nicht - warum auch immer.

    Nun dachte ich, ich bin so clever und frage erst per Velocity ab, ob der User authentifiziert ist:
    Code:
    #set($conn = $ExchangeCallable.isAuthenticated($Session))
    Das funktioniert sogar (ich bekomme true oder false zurück), allerdings erscheint dann im Portal-Log trotzdem ein Fehler:

    Code:
    ERROR 2017-08-24 17:03:15,860 - de.uplanet.lucy.server.businesslogic.rtdata.jdbc.AbstractRtDataGroup[WebConnectorWorker-localhost:8102-26]
          de.uplanet.lucy.server.thread.ThreadContextException: Cannot create a database connection for ID exchange_server.
    de.uplanet.lucy.server.exchange.ExchangeLoginRequiredException: de.uplanet.lucy.server.thread.ThreadContextException: Cannot create a database connection for ID exchange_server.
        at de.uplanet.lucy.server.businesslogic.exchange.ExchangeConnections.a(Unknown Source)
        at de.uplanet.lucy.server.businesslogic.exchange.ExchangeConnections.getConnection(Unknown Source)
        at de.uplanet.lucy.server.businesslogic.exchange.ExchangeConnections.getConnectionForDataHandler(Unknown Source)
        at de.uplanet.lucy.server.businesslogic.exchange.rtdata.jdbc.RtDataGroupTableExchange.getDataConnection(Unknown Source)
        at de.uplanet.lucy.server.businesslogic.rtdata.jdbc.AbstractRtDataGroup._checkDgPermission(Unknown Source)
        at de.uplanet.lucy.server.businesslogic.rtdata.jdbc.AbstractRtDataGroup.checkDgPermission(Unknown Source)
        at de.uplanet.lucy.server.businesslogic.rtappservices.AbstractRtApp.checkAppDgPermission(Unknown Source)
        at de.uplanet.lucy.server.businesslogic.rtappservices.AbstractRtApp.checkDgPermissionFromPage(Unknown Source)
        at de.uplanet.lucy.server.businesslogic.rtappservices.AbstractRtApp.hasDgPermissionFromPage(Unknown Source)
        at de.uplanet.lucy.server.auxiliaries.security.IxAccessController.hasDatagroupPermissionFromPage(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor454.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
    (...)
        at org.apache.velocity.runtime.parser.node.SimpleNode.render(Unknown Source)
        at org.apache.velocity.runtime.directive.Parse.render(Unknown Source)
    
        at de.uplanet.lucy.server.engine.http.HttpRequestProcessingPipeline.process(Unknown Source)
        at de.uplanet.lucy.server.connector.web.WebConnectorWorkerThread.run(Unknown Source)
    Caused by: de.uplanet.lucy.server.thread.ThreadContextException: Cannot create a database connection for ID exchange_server.
        at de.uplanet.lucy.server.thread.ThreadContext.instanceGetDatabaseConnection(Unknown Source)
        at de.uplanet.lucy.server.thread.ThreadContext.getDatabaseConnection(Unknown Source)
        at de.uplanet.lucy.server.ContextConnection.get(Unknown Source)
        ... 115 more
    Caused by: java.sql.SQLException: MgSessionException
    AuthenticationFailException:Authentication Failed
    AUTH_BASIC: User name or Password is not valid.
        at de.uplanet.lucy.server.mgw.MgwDatabaseConnectionFactory.createConnection(Unknown Source)
        ... 118 more
    Caused by: java.sql.SQLException: MgSessionException
    AuthenticationFailException:Authentication Failed
    AUTH_BASIC: User name or Password is not valid.
        at com.cnsconnect.mgw.jdbc.mgsApi.corba.Connection.newOpen(Connection.java:216)
        at com.cnsconnect.mgw.jdbc.mgsApi.corba.Connection.open(Connection.java:81)
        at com.cnsconnect.mgw.jdbc.MgConnection.<init>(MgConnection.java:125)
        at com.cnsconnect.mgw.jdbc.MgDriver.connect(MgDriver.java:270)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:270)
        at de.uplanet.lucy.server.mgw.MgwDatabaseConnectionFactory.getConnection(Unknown Source)
        at de.uplanet.lucy.server.mgw.MgwDatabaseConnectionFactory.a(Unknown Source)
        ... 119 more
    Caused by: Ch.Elca.Iiop.GenericUserException: IDL:Ch/Elca/Iiop/GenericUserException:1.0
        at Ch.Elca.Iiop.GenericUserExceptionHelper.read(GenericUserExceptionHelper.java:48)
        at MG.Server.Core.MgsAPI._IMgConnectionStub.SetAttributes(_IMgConnectionStub.java:805)
        at com.cnsconnect.mgw.jdbc.mgsApi.corba.Connection.newOpen(Connection.java:207)
        ... 126 more

    Hat irgendjemand eine Idee, dass diese Sache ohne Fehler für den User oder im Logfile von Statten geht?
    Es spielt übrigens keine Rolle, ob das Portlet asynchron oder "normal" geladen wird.

    Nachtrag: Die Geschichte stellt sich noch etwa seltsamer dar:
    Den Error im Portal-Log habe ich bekommen, wenn ich den Velocity-Code mittels VTL-Include auf der Portlet-Seite verwendet habe.
    Verwende ich den identischen Code in einer Gruppierung (und zwar in jener, in welcher der Kalender angezeigt wird) zur Prüfung ob die Gruppierung angezeigt werden soll, dann funktioniert's analog - es gibt aber bei false keinen Eintrag im Error-Log.

  • #2
    Ach ich muss gerade feststellen, dass ein erster Zugriff ohne bestehende Session wohl generell zu Fehlern führt, welche im Portal-Log angezeigt werden. Auch wenn man direkt eine Seite mit einem Kalender aufruft, außerhalb eines Portlets.

    Kommentar

    Lädt...
    X