Manfred Baedke created OAK-8710: ----------------------------------- Summary: AbstractLoginModule#logout() may fail in the presence of principals unknown to Oak. Key: OAK-8710 URL: https://issues.apache.org/jira/browse/OAK-8710 Project: Jackrabbit Oak Issue Type: Bug Components: security-spi Reporter: Manfred Baedke
See https://github.com/apache/jackrabbit-oak/blob/9569d659f0655d3ba16c1cfe1fbb5f53959f701f/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/AbstractLoginModule.java#L189: The criterion for logout() to succeed is {code}!subject.getPrincipals().isEmpty() && !subject.getPublicCredentials(Credentials.class).isEmpty(){code} This did not work in a case where the subject was created by a thread handling an authenticated JMX connection (and later passed on to other threads due to AccessControlContext inheritage). I'd propose to make logout() succeed unconditionally, but I'm not entirely sure about side effects. -- This message was sent by Atlassian Jira (v8.3.4#803005)