[ 
https://issues.apache.org/jira/browse/KNOX-3254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sandor Molnar updated KNOX-3254:
--------------------------------
    Description: 
h3. Problem

The {{KnoxSessionStore}} always sets the {{Secure}} flag on session cookies 
regardless of whether the incoming request is HTTPS:
{noformat}
setCookieHeader.setSecure(true){noformat}
This behavior prevents testing scenarios that run over HTTP (e.g., local 
development, integration tests, CI environments) where secure cookies are not 
accepted by browsers or HTTP clients.

As a result, authentication flows using pac4j session cookies cannot be tested 
properly in non-HTTPS environments.
----
h3. Proposed Improvement

Introduce a configurable parameter:
{noformat}
pac4j.session.store.secure.cookie{noformat}
When present, this parameter explicitly controls whether the {{Secure}} 
attribute is set on session cookies.
 

*New Behavior*
h4. When configuration is NOT set

The Secure flag is determined from the request:
 * HTTPS request → Secure = true

 * HTTP request → Secure = false

h4. When configuration IS set

The parameter overrides the default logic:
 * {{true}} → always Secure

 * {{false}} → never Secure

 
----
h3. Backward Compatibility

⚠️ *Behavior change*

Previously:
 * Secure flag was always set to {{true}}

Now (if not configured):
 * Secure flag depends on request security

Implications:
 * Deployments serving Knox over plain HTTP will now receive non-Secure cookies

 * Deployments relying on always-Secure cookies should explicitly set:

  was:
h3. Problem

The {{KnoxSessionStore}} always sets the {{Secure}} flag on session cookies 
regardless of whether the incoming request is HTTPS:
setCookieHeader.setSecure(true)
 
This behavior prevents testing scenarios that run over HTTP (e.g., local 
development, integration tests, CI environments) where secure cookies are not 
accepted by browsers or HTTP clients.
As a result, authentication flows using pac4j session cookies cannot be tested 
properly in non-HTTPS environments.

 
----
h3. Proposed Improvement

Introduce a configurable parameter:
pac4j.session.store.secure.cookie
 
When present, this parameter explicitly controls whether the {{Secure}} 
attribute is set on session cookies.
 
h3. New Behavior
h4. When configuration is NOT set

The Secure flag is determined from the request:
 * HTTPS request → Secure = true

 * HTTP request → Secure = false

h4. When configuration IS set

The parameter overrides the default logic:
 * {{true}} → always Secure

 * {{false}} → never Secure
h3. Backward Compatibility

⚠️ *Behavior change*

Previously:
 * Secure flag was always set to {{true}}

Now (if not configured):
 * Secure flag depends on request security

Implications:
 * Deployments serving Knox over plain HTTP will now receive non-Secure cookies

 * Deployments relying on always-Secure cookies should explicitly set:


> Add configuration option to control Secure flag for pac4j session store 
> cookies
> -------------------------------------------------------------------------------
>
>                 Key: KNOX-3254
>                 URL: https://issues.apache.org/jira/browse/KNOX-3254
>             Project: Apache Knox
>          Issue Type: Improvement
>          Components: Server
>    Affects Versions: 2.1.0
>            Reporter: Sandor Molnar
>            Assignee: Sandor Molnar
>            Priority: Major
>             Fix For: 3.0.0
>
>
> h3. Problem
> The {{KnoxSessionStore}} always sets the {{Secure}} flag on session cookies 
> regardless of whether the incoming request is HTTPS:
> {noformat}
> setCookieHeader.setSecure(true){noformat}
> This behavior prevents testing scenarios that run over HTTP (e.g., local 
> development, integration tests, CI environments) where secure cookies are not 
> accepted by browsers or HTTP clients.
> As a result, authentication flows using pac4j session cookies cannot be 
> tested properly in non-HTTPS environments.
> ----
> h3. Proposed Improvement
> Introduce a configurable parameter:
> {noformat}
> pac4j.session.store.secure.cookie{noformat}
> When present, this parameter explicitly controls whether the {{Secure}} 
> attribute is set on session cookies.
>  
> *New Behavior*
> h4. When configuration is NOT set
> The Secure flag is determined from the request:
>  * HTTPS request → Secure = true
>  * HTTP request → Secure = false
> h4. When configuration IS set
> The parameter overrides the default logic:
>  * {{true}} → always Secure
>  * {{false}} → never Secure
>  
> ----
> h3. Backward Compatibility
> ⚠️ *Behavior change*
> Previously:
>  * Secure flag was always set to {{true}}
> Now (if not configured):
>  * Secure flag depends on request security
> Implications:
>  * Deployments serving Knox over plain HTTP will now receive non-Secure 
> cookies
>  * Deployments relying on always-Secure cookies should explicitly set:



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to