[java-identity-provider] branch main updated: IDP-2374 - Implement support for SameSite directly when possible
Scott Cantor
cantor.2 at osu.edu
Wed Apr 9 20:05:58 UTC 2025
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=cc1bb44b8bc9278692afdd194c5dc29c0d8da213
The following commit(s) were added to refs/heads/main by this push:
new cc1bb44b8 IDP-2374 - Implement support for SameSite directly when possible
cc1bb44b8 is described below
commit cc1bb44b8bc9278692afdd194c5dc29c0d8da213
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Apr 9 16:05:55 2025 -0400
IDP-2374 - Implement support for SameSite directly when possible
https://shibboleth.atlassian.net/browse/IDP-2374
Move web.xml to a proper Servlet 5.0 descriptor.
Add commented cookie attribute decl for SameSite.
Adjust wiring of SameSite filter and CookieManagers.
---
.../src/main/resources/net/shibboleth/idp/conf/filters.xml | 1 +
.../main/resources/net/shibboleth/idp/conf/global-system.xml | 12 ++++++++++++
idp-war/src/main/webapp/WEB-INF/web.xml | 11 +++++++++--
3 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/filters.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/filters.xml
index 8a5ad909e..c6ef62b18 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/filters.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/filters.xml
@@ -47,6 +47,7 @@
<!-- Mapped to all requests but runs conditionally, and runs EARLIEST to ensure a last look at cookies. -->
<bean class="net.shibboleth.shared.spring.servlet.impl.SameSiteCookieHeaderFilter"
+ p:disableBasedOnServletAPI="%{idp.cookie.sameSite.autoDisableFilter:true}"
p:activationCondition-ref="#{'%{idp.cookie.sameSiteCondition:shibboleth.Conditions.FALSE}'.trim()}"
p:defaultValue="%{idp.cookie.sameSite:None}"
p:sameSiteCookies="#{getObject('shibboleth.SameSiteCookieMap')}" />
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml
index 4b093f63b..2584bac47 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml
@@ -328,6 +328,9 @@
p:httpOnly="%{idp.cookie.httpOnly:true}"
p:cookieDomain="%{idp.cookie.domain:}"
p:cookiePath="%{idp.cookie.path:/}"
+ p:sameSite="%{idp.cookie.sameSite:None}"
+ p:sameSiteCondition-ref="#{'%{idp.cookie.sameSiteCondition:shibboleth.Conditions.FALSE}'.trim()}"
+ p:sameSiteCookies="#{getObject('shibboleth.SameSiteCookieMap')}"
p:maxAge="-1" />
<bean id="shibboleth.PersistentCookieManager" class="net.shibboleth.shared.net.CookieManager" lazy-init="true"
@@ -337,6 +340,9 @@
p:httpOnly="%{idp.cookie.httpOnly:true}"
p:cookieDomain="%{idp.cookie.domain:}"
p:cookiePath="%{idp.cookie.path:/}"
+ p:sameSite="%{idp.cookie.sameSite:None}"
+ p:sameSiteCondition-ref="#{'%{idp.cookie.sameSiteCondition:shibboleth.Conditions.FALSE}'.trim()}"
+ p:sameSiteCookies="#{getObject('shibboleth.SameSiteCookieMap')}"
p:maxAge="%{idp.cookie.maxAge:31536000}" />
<bean id="shibboleth.StorageAwarePersistentCookieManager" class="net.shibboleth.idp.profile.support.StorageAwareCookieManager" lazy-init="true"
@@ -347,6 +353,9 @@
p:httpOnly="%{idp.cookie.httpOnly:true}"
p:cookieDomain="%{idp.cookie.domain:}"
p:cookiePath="%{idp.cookie.path:/}"
+ p:sameSite="%{idp.cookie.sameSite:None}"
+ p:sameSiteCondition-ref="#{'%{idp.cookie.sameSiteCondition:shibboleth.Conditions.FALSE}'.trim()}"
+ p:sameSiteCookies="#{getObject('shibboleth.SameSiteCookieMap')}"
p:maxAge="%{idp.cookie.maxAge:31536000}">
<property name="usernameLookupStrategy">
<bean parent="shibboleth.Functions.Compose"
@@ -362,6 +371,9 @@
p:httpOnly="false"
p:cookieDomain="%{idp.cookie.domain:}"
p:cookiePath="%{idp.cookie.path:/}"
+ p:sameSite="%{idp.cookie.sameSite:None}"
+ p:sameSiteCondition-ref="#{'%{idp.cookie.sameSiteCondition:shibboleth.Conditions.FALSE}'.trim()}"
+ p:sameSiteCookies="#{getObject('shibboleth.SameSiteCookieMap')}"
p:maxAge="%{idp.cookie.maxAge:31536000}" />
<!--
diff --git a/idp-war/src/main/webapp/WEB-INF/web.xml b/idp-war/src/main/webapp/WEB-INF/web.xml
index 13335b252..93229a4e4 100644
--- a/idp-war/src/main/webapp/WEB-INF/web.xml
+++ b/idp-war/src/main/webapp/WEB-INF/web.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
+<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" version="5.0">
<display-name>Shibboleth Identity Provider</display-name>
@@ -59,6 +59,13 @@
<path>/</path>
<secure>true</secure>
<http-only>true</http-only>
+ <!-- Uncomment when deploying on EE10/Servlet6. -->
+ <!--
+ <attribute>
+ <attribute-name>SameSite</attribute-name>
+ <attribute-value>None</attribute-value>
+ </attribute>
+ -->
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list