exist icon indicating copy to clipboard operation
exist copied to clipboard

[BUG] Log out do nothing

Open stjmt opened this issue 11 months ago • 4 comments

Describe the bug Logout impossible.

To Reproduce I use firefox, i connect with admin password but when i click on logout ... nothing. "Solution" clear all : cache, history, cookie ... on firefox.

  • Build: eXist-6.2.0
  • Java: Last Java Adoptium (Temurin) 17
  • OS: Debian 11

Additional context

  • How is eXist-db installed? exist-distribution-6.2.0-unix.tar.bz2 from github
  • Any custom changes in e.g. conf.xml?

conf.xml (click on details)

<?xml version="1.0" encoding="UTF-8"?>
<exist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../schema/conf.xsd">
        Configures the database backend.
        
        - cacheSize:
            the maximum amount of memory to use for database page buffers.
            Each database file has an associated page buffer for B+-tree and
            data pages. However, the memory specified via cacheSize is shared
            between all page buffers. It represents an absolute maximum, which
            would be occupied if all page buffers were completely full.
            
            The cacheSize should typically not be more than half of the size of 
            the JVM heap size (set by the JVM -Xmx parameter). It can be larger 
            if you have a large-memory JVM (usually a 64bit JVM)
        
        - checkMaxCacheSize:
            specifies whether eXist should check the max cache size on startup 
            and reduce it if it is too large.
            
            This value should normally be set to true.
            
            Only set this value to false if:
            
                a) You know what you are doing!
                b) You have a JVM with tons of memory (typically using a 64-bit 
                   JVM, which is the scenario this setting is intended for).
                c) You are really sure you've complied with a) and b) above.
                
            Setting this value to false may cause memory issues which may lead to 
            database corruptions, since it disables the automated max cache size 
            checks! You have been warned! ;-)
            
        - collectionCache:
            maximum amount of memory (in megabytes) to use for collection caches.
            Memory calculation is just approximate. If your collections are very 
            different in size, it might be possible that the actual amount of 
            memory used exceeds the specified limit. You should thus be careful 
            with this setting.
        
        - database:
            selects a database backend. Currently, "native" is the only valid setting.
        
        - files:
            path to the directory where database files are stored.
        
        - pageSize:
            the size of one page on the disk. This is the smallest unit
            transferred from and to the database files. Should be a multiple of
            the operating system's file system page size (usually 4096).
        - nodesBuffer:
            size of the temporary buffer used by eXist for caching index
            data while indexing a document. If set to -1, eXist will use the
            entire free memory to buffer index entries and will flush the
            cache once the memory is full.
            If set to a value > 0, the buffer will be fixed to the given size.
            The specified number corresponds to the number of nodes the
            buffer can hold, in thousands. Usually, a good default could be
            nodesBuffer="1000".
    
         - cacheShrinkThreshold:
            The minimum number of pages that must be read from a
            cache between check intervals to be not considered for 
            shrinking. This is a measure for the "load" of the cache. Caches
            with high load will never be shrinked. A negative value means that
            shrinkage will not be performed.
        - minDiskSpace:
            The amount of disk space (in megabytes) which should be available for
            the database to continue operations. If free disk space goes below
            the configured limit, eXist-db will flush all buffers to disk and
            switch to read-only mode in order to prevent potential data loss. 
            Set the limit large enough to allow all pending operations to 
            complete. Set to -1 to disable. The default is 1 gigabyte.
        - posix-chown-restricted:
            As defined by POSIX.1 for _POSIX_CHOWN_RESTRICTED.
            When posix-chown-restricted="true" (the default) then:
                1. Only a superuser process can change the user ID of the file.
                2. A non-superuser process can change the group ID of the file
                   if the process owns the file (the effective user ID equals
                   the user ID of the file), and group equals either the
                   effective group ID of the process or one of the
                   process’s supplementary group IDs.
            This means that when posix-chown-restricted="true", you can’t change
            the user ID of your files. You can change the group ID of files that
            you own, but only to groups that you belong to.
            When posix-chown-restricted="false" you can change the user ID of
            any file that you own, effectively "giving away the file" to
            another user. Such a setting has negative security implications,
            further details can be seen in the "Rationale" section for the
            chown function in the POSIX.1-2017 (Issue 7, 2018 edition) standard.
            See: http://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html#tag_16_59_07
        - preserve-on-copy
            When copying Collections and Documents within the database, the
            default (`false`), is not to preserve their attributes
            (modification time, mode, user-id, group-id, and ACL).
            NOTE: Not preserving attributes, is inline with both the GNU and
            BSD `cp` commands, and therefore expected behaviour; The target
            Collection or Document is created following the rules of the
            target parent, and the effective user and their umask.
            Setting preserve-on-copy="true" changes the default behaviour
            so that the target Collection or Document of a copy, has the same
            attributes as the source.
            The preserve-on-copy setting can be overridden on a case-by-case
            basis by setting the `preserve` flag to either `true` or `false`
            when calling xmldb:copy(), or via any other API that supports copy.
            Omitting the preserve flag when calling a copy operation, implies
            the behaviour that is set in this configuration.
        =====================================================================
        
        The settings below are very conservative to avoid out-of-memory
        exceptions on machines with limited memory (256MB).
        
        Increase the buffer settings for elements_buffers and words_buffers if 
        you have some more memory to waste. If you deal with lots of 
        collections, you can also increase the collectionCacheSize value 
    -->
    <db-connection cacheSize="512M" checkMaxCacheSize="true" collectionCache="512M" database="native"
        files="/var/lib/existdb" pageSize="4096" nodesBuffer="1000" cacheShrinkThreshold="10000"
        minDiskSpace="128M" posix-chown-restricted="true" preserve-on-copy="false">
        <startup>
            <triggers>
		<trigger class="org.exist.security.BouncyCastleJceProviderStartupTrigger"/>
                <trigger class="org.exist.protocolhandler.URLStreamHandlerStartupTrigger">
                    <parameter name="mode" value="disk"/>
                    <parameter name="mode" value="memory"/>
                </trigger>
                <trigger class="org.exist.extensions.exquery.restxq.impl.RestXqStartupTrigger"/>
                <trigger class="org.exist.repo.AutoDeploymentTrigger">
                </trigger>
            </triggers>
        </startup>
        <pool max="20" min="1" sync-period="120000" wait-before-shutdown="120000"/>
        <query-pool max-stack-size="64" size="128"/>
        <recovery enabled="yes"  group-commit="no"   journal-dir="/var/lib/existdb"
                  size="100M" sync-on-commit="no"  force-restart="no"  consistency-check="yes"/>
        <watchdog output-size-limit="1000000" query-timeout="-1"/>
    </db-connection>
    <lock-manager
            upgrade-check="false"
            warn-wait-on-read-for-write="false"
            paths-multi-writer="false">
        <lock-table disabled="false" trace-stack-depth="0"/>
        <document use-path-locks="false"/>
    </lock-manager>
    <repository root="/db/apps"/>
    <binary-manager>
        <cache class="org.exist.util.io.FileFilterInputStreamCache"/>
    </binary-manager>
    <indexer caseSensitive="yes" index-depth="5" preserve-whitespace-mixed-content="no"
        suppress-whitespace="none">
        <modules>
            <module id="ngram-index" file="ngram.dbx" n="3" class="org.exist.indexing.ngram.NGramIndex"/>
            <module id="lucene-index" buffer="32" class="org.exist.indexing.lucene.LuceneIndex" />
            <module id="sort-index"      class="org.exist.indexing.sort.SortIndex"/>
            <module id="range-index"    class="org.exist.indexing.range.RangeIndex"/>
        </modules>
        <index>
        </index>
    </indexer>
    <scheduler>    
    </scheduler>
    <parser>
        <xml>
            <features>
            </features>
        </xml>
        <html-to-xml class="org.cyberneko.html.parsers.SAXParser">
            <properties>
                <property name="http://cyberneko.org/html/properties/names/elems" value="match"/>
                <property name="http://cyberneko.org/html/properties/names/attrs" value="no-change"/>
            </properties>
        </html-to-xml>
    </parser>
    <serializer add-exist-id="none" compress-output="no" output-doctype="yes" enable-xinclude="yes"
                enable-xsl="yes" indent="yes" match-tagging-attributes="no" 
                match-tagging-elements="no">
    </serializer>
    <transformer class="net.sf.saxon.TransformerFactoryImpl" caching="yes">
        <attribute name="http://saxon.sf.net/feature/version-warning" value="false" type="boolean"/>
    </transformer>
    <validation mode="no">
        <entity-resolver>
            <catalog uri="${WEBAPP_HOME}/WEB-INF/catalog.xml"/>
        </entity-resolver>
    </validation>
    <xquery enable-java-binding="no" disable-deprecated-functions="no" 
            enable-query-rewriting="yes" backwardCompatible="no" 
            enforce-index-use="always"
            raise-error-on-failed-retrieval="no">
        
        <builtin-modules>
            <module uri="http://www.w3.org/2005/xpath-functions/map"  class="org.exist.xquery.functions.map.MapModule"/>
            <module uri="http://www.w3.org/2005/xpath-functions/math" class="org.exist.xquery.functions.math.MathModule"/>
            <module uri="http://www.w3.org/2005/xpath-functions/array" class="org.exist.xquery.functions.array.ArrayModule"/>
            <module uri="http://exist-db.org/xquery/backups" class="org.exist.backup.xquery.BackupModule"/>
            <module uri="http://exist-db.org/xquery/inspection" class="org.exist.xquery.functions.inspect.InspectionModule"/>
            <module uri="http://www.json.org" src="resource:org/exist/xquery/lib/json.xq"/>
            <module uri="http://www.jsonp.org" src="resource:org/exist/xquery/lib/jsonp.xq"/>
            <module uri="http://exist-db.org/xquery/kwic" src="resource:org/exist/xquery/lib/kwic.xql"/>
            <module uri="http://exist-db.org/xquery/request" class="org.exist.xquery.functions.request.RequestModule"/>
            <module uri="http://exist-db.org/xquery/response" class="org.exist.xquery.functions.response.ResponseModule"/>
            <module uri="http://exist-db.org/xquery/securitymanager" class="org.exist.xquery.functions.securitymanager.SecurityManagerModule"/>
            <module uri="http://exist-db.org/xquery/session" class="org.exist.xquery.functions.session.SessionModule"/>
            <module uri="http://exist-db.org/xquery/system" class="org.exist.xquery.functions.system.SystemModule"/>
            <module uri="http://exist-db.org/xquery/testing" src="resource:org/exist/xquery/lib/test.xq"/>
            <module uri="http://exist-db.org/xquery/transform" class="org.exist.xquery.functions.transform.TransformModule"/>
            <module uri="http://exist-db.org/xquery/util" class="org.exist.xquery.functions.util.UtilModule">
                <parameter name="evalDisabled" value="false"/>
            </module>
            <module uri="http://exist-db.org/xquery/validation" class="org.exist.xquery.functions.validation.ValidationModule"/>
            <module uri="http://exist-db.org/xquery/xmldb" class="org.exist.xquery.functions.xmldb.XMLDBModule">
                <parameter name="allowAnyUri" value="false"/>
            </module>
            <module uri="http://exist-db.org/xquery/lucene" class="org.exist.xquery.modules.lucene.LuceneModule"/>
            <module uri="http://exist-db.org/xquery/ngram"  class="org.exist.xquery.modules.ngram.NGramModule"/>
            <module uri="http://exist-db.org/xquery/range"  class="org.exist.xquery.modules.range.RangeIndexModule"/>
            <module uri="http://exist-db.org/xquery/sort"   class="org.exist.xquery.modules.sort.SortModule"/>
            <module uri="http://exist-db.org/xquery/contentextraction"  class="org.exist.contentextraction.xquery.ContentExtractionModule"/>
            <module uri="http://expath.org/ns/http-client" class="org.expath.exist.HttpClientModule"/>
            <module uri="http://expath.org/ns/zip" class="org.expath.exist.ZipModule"/>
            <module uri="http://exquery.org/ns/request" class="org.exist.extensions.exquery.modules.request.RequestModule"/>
            <module uri="http://exquery.org/ns/restxq" class="org.exist.extensions.exquery.restxq.impl.xquery.RestXqModule"/>
            <module uri="http://exquery.org/ns/restxq/exist" class="org.exist.extensions.exquery.restxq.impl.xquery.exist.ExistRestXqModule"/>
            <module uri="http://exist-db.org/xquery/xqdoc" class="org.exist.xqdoc.xquery.XQDocModule"/>
            <module uri="http://exist-db.org/xquery/cache" class="org.exist.xquery.modules.cache.CacheModule">
                <parameter name="enableLazyCreation" value="true"/>
                <parameter name="lazy.maximumSize" value="128"/>
            </module>
            <module uri="http://exist-db.org/xquery/compression" class="org.exist.xquery.modules.compression.CompressionModule"/>
            <module uri="http://exist-db.org/xquery/counter" class="org.exist.xquery.modules.counter.CounterModule"/>
            <module uri="http://exist-db.org/xquery/cqlparser" class="org.exist.xquery.modules.cqlparser.CQLParserModule"/>
            <module uri="http://exist-db.org/xquery/repo" class="org.exist.xquery.modules.expathrepo.ExpathPackageModule"/>
            <module uri="http://exist-db.org/xquery/file" class="org.exist.xquery.modules.file.FileModule"/>
            <module uri="http://exist-db.org/xquery/image" class="org.exist.xquery.modules.image.ImageModule"/>
            <module uri="http://exist-db.org/xquery/jndi" class="org.exist.xquery.modules.jndi.JNDIModule"/>
            <module uri="http://exist-db.org/xquery/mail" class="org.exist.xquery.modules.mail.MailModule"/>
            <module uri="http://exist-db.org/xquery/persistentlogin" class="org.exist.xquery.modules.persistentlogin.PersistentLoginModule"/>
            <module uri="http://exist-db.org/xquery/process" class="org.exist.xquery.modules.process.ProcessModule"/>
            <module uri="http://exist-db.org/xquery/scheduler" class="org.exist.xquery.modules.scheduler.SchedulerModule"/>
            <module uri="http://exist-db.org/xquery/simple-ql" class="org.exist.xquery.modules.simpleql.SimpleQLModule"/>
            <module uri="http://exist-db.org/xquery/sql" class="org.exist.xquery.modules.sql.SQLModule">
            </module>
            <module uri="http://exist-db.org/xquery/xmldiff" class="org.exist.xquery.modules.xmldiff.XmlDiffModule"/>
            <module uri="http://exist-db.org/xquery/xslfo" class="org.exist.xquery.modules.xslfo.XSLFOModule">
                <parameter name="processorAdapter" value="org.exist.xquery.modules.xslfo.ApacheFopProcessorAdapter"/>
            </module>
        </builtin-modules>
    </xquery>
    <xupdate allowed-fragmentation="50000" enable-consistency-checks="no"/>
</exist>

stjmt avatar Sep 29 '23 12:09 stjmt

What are you logging out from? (If you’re not sure, please provide the URL of the page where you’re clicking on logout.)

joewiz avatar Sep 29 '23 19:09 joewiz

Input needed, please feel free to reopen ...

dizzzz avatar Apr 24 '24 18:04 dizzzz

Juri understands....

dizzzz avatar Apr 24 '24 18:04 dizzzz

@stjmt If I understand you correctly you logged in using a (bundled?) application that makes use of the persistentLogin module provided by exist-db. Is that correct?

line-o avatar Apr 24 '24 19:04 line-o

@stjmt If I understand you correctly you logged in using a (bundled?) application that makes use of the persistentLogin module provided by exist-db. Is that correct?

Hi, When i clicked on UI "logout" button, application do something but ... finallly i always connect (perhaps logout and auto relogin)

Actions

  • firefox url : http://myaddress:8080 .... i click on login (top right)
  • I use my admin account
  • on launcher page (existdb dashboard http://myaddress:8080/exist/apps/dashboard/admin#), i click on "logout admin"
  • i show a logout url (1 second) and i finish on same page (same url).

I debug firefox request, i read this

  • GET http://myaddress:8080/favicon.icon 404 not found
  • dashboard connected existdb-dashboard.html.js:1:326
  • warn password on http: .... security risk .... (admin)
  • _ExistdbLauncherApp connected existdb-launcher-app.html.js:8:320
  • _display/Applications existdb-launcher-app.html.js:16:110

stjmt avatar Aug 01 '24 06:08 stjmt