[
https://issues.apache.org/jira/browse/KNOX-3232?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tamás Marcinkovics updated KNOX-3232:
-
Description:
When testing Knox SSO with Pac4j and CAS, if the user clicks on global logout,
and does not close the browser, refreshing the homepage link results in a 500
internal server error due to KnoxSessionStore not being able to get the value
of CasClient$attemptedAuthentication cookie.
When pac4j calls the
KnoxSessionStore.set() method with null value, we will add a Set-Cookie-Header
with "null" value instead of empty.
setCookieHeader = new SetCookieHeader(PAC4J_SESSION_PREFIX + key, null);
When KnoxSessionStore.get() is called, it tries to uncompress the non-empty
value and fails with a BufferUnderflowException.
To test, replace the conf/knoxsso.xml with the contents of the attached
knoxsso-cas-test.xml and set global logout in gateway-site.xml by setting the
properties
{noformat}
knox.homepage.logout.enabled
true
knox.global.logout.page.url
https://casserverpac4j.herokuapp.com/logout
{noformat}
Then log in to CAS using the same username and password, then in the knox
homepage press the logout and global logout link afterwards.
was:
When testing Knox SSO with Pac4j and CAS, if the user clicks on global logout,
and does not close the browser, refreshing the homepage link results in a 500
internal server error due to KnoxSessionStore not being able to get the value
of CasClient$attemptedAuthentication cookie.
When pac4j calls the
KnoxSessionStore.set() method with null value, we will add a Set-Cookie-Header
with "null" value instead of empty.
setCookieHeader = new SetCookieHeader(PAC4J_SESSION_PREFIX + key, null);
When KnoxSessionStore.get() is called, it tries to uncompress the non-empty
value and fails with a BufferUnderflowException.
> Handle pac4j cookies with "null" value
> --
>
> Key: KNOX-3232
> URL: https://issues.apache.org/jira/browse/KNOX-3232
> Project: Apache Knox
> Issue Type: Task
> Components: KnoxSSO
>Affects Versions: 3.0.0
>Reporter: Tamás Marcinkovics
>Assignee: Tamás Marcinkovics
>Priority: Major
> Attachments: knoxsso-cas-test.xml
>
>
> When testing Knox SSO with Pac4j and CAS, if the user clicks on global
> logout, and does not close the browser, refreshing the homepage link results
> in a 500 internal server error due to KnoxSessionStore not being able to get
> the value of CasClient$attemptedAuthentication cookie.
> When pac4j calls the
> KnoxSessionStore.set() method with null value, we will add a
> Set-Cookie-Header with "null" value instead of empty.
> setCookieHeader = new SetCookieHeader(PAC4J_SESSION_PREFIX + key, null);
> When KnoxSessionStore.get() is called, it tries to uncompress the non-empty
> value and fails with a BufferUnderflowException.
>
> To test, replace the conf/knoxsso.xml with the contents of the attached
> knoxsso-cas-test.xml and set global logout in gateway-site.xml by setting the
> properties
> {noformat}
>
> knox.homepage.logout.enabled
> true
>
>
> knox.global.logout.page.url
> https://casserverpac4j.herokuapp.com/logout
>
> {noformat}
>
> Then log in to CAS using the same username and password, then in the knox
> homepage press the logout and global logout link afterwards.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)