This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-auth-oauth-client.git
The following commit(s) were added to refs/heads/master by this push:
new 6795cc2 SLING-12926 SlingLoginCookieManager hardcodes the idp name to
'oidc' (#30)
6795cc2 is described below
commit 6795cc2c8efcd7def1bafb2bb47d244db7847cc2
Author: Nicola Scendoni <[email protected]>
AuthorDate: Fri Sep 5 15:53:33 2025 +0200
SLING-12926 SlingLoginCookieManager hardcodes the idp name to 'oidc' (#30)
---
.../sling/auth/oauth_client/impl/SlingLoginCookieManager.java | 11 ++++++++---
.../sling/auth/oauth_client/AuthorizationCodeFlowIT.java | 8 +++++++-
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git
a/src/main/java/org/apache/sling/auth/oauth_client/impl/SlingLoginCookieManager.java
b/src/main/java/org/apache/sling/auth/oauth_client/impl/SlingLoginCookieManager.java
index b3aa3a0..54ba4a0 100644
---
a/src/main/java/org/apache/sling/auth/oauth_client/impl/SlingLoginCookieManager.java
+++
b/src/main/java/org/apache/sling/auth/oauth_client/impl/SlingLoginCookieManager.java
@@ -54,6 +54,7 @@ public class SlingLoginCookieManager implements
LoginCookieManager {
private final TokenStore tokenStore;
private final long sessionTimeout;
private final String cookieName;
+ private final String idpName;
@ObjectClassDefinition(
name = "Apache Sling Token Update Configuration for OIDC
Authentication Handler",
@@ -70,6 +71,9 @@ public class SlingLoginCookieManager implements
LoginCookieManager {
@AttributeDefinition(name = "cookieName", description = "Cookie Name")
String cookieName() default "sling.oidcauth";
+
+ @AttributeDefinition(name = "idpName", description = "IdP Name")
+ String idpName();
}
@Activate
@@ -83,6 +87,7 @@ public class SlingLoginCookieManager implements
LoginCookieManager {
this.sessionTimeout = config.sessionTimeout();
this.cookieName = config.cookieName();
this.tokenStore = new TokenStore(tokenFile, sessionTimeout, fastSeed);
+ this.idpName = config.idpName();
}
@Override
@@ -134,16 +139,16 @@ public class SlingLoginCookieManager implements
LoginCookieManager {
return null;
}
- private static @Nullable AuthenticationInfo createAuthInfo(@NotNull final
String authData) {
+ private @Nullable AuthenticationInfo createAuthInfo(@NotNull final String
authData) {
final String userId = getUserId(authData);
if (userId == null) {
return null;
}
- OidcAuthCredentials credentials = new OidcAuthCredentials(userId,
"oidc");
+ OidcAuthCredentials credentials = new OidcAuthCredentials(userId,
idpName);
credentials.setAttribute(".token", "");
- AuthenticationInfo authInfo = new AuthenticationInfo("oidc", userId);
+ AuthenticationInfo authInfo = new AuthenticationInfo(idpName, userId);
authInfo.put(JcrResourceConstants.AUTHENTICATION_INFO_CREDENTIALS,
credentials);
return authInfo;
diff --git
a/src/test/java/org/apache/sling/auth/oauth_client/AuthorizationCodeFlowIT.java
b/src/test/java/org/apache/sling/auth/oauth_client/AuthorizationCodeFlowIT.java
index 4509bc5..732e803 100644
---
a/src/test/java/org/apache/sling/auth/oauth_client/AuthorizationCodeFlowIT.java
+++
b/src/test/java/org/apache/sling/auth/oauth_client/AuthorizationCodeFlowIT.java
@@ -57,6 +57,7 @@ import
org.apache.sling.auth.oauth_client.impl.JcrUserHomeOAuthTokenStore;
import org.apache.sling.auth.oauth_client.impl.OAuthConnectionImpl;
import org.apache.sling.auth.oauth_client.impl.OAuthCookieValue;
import org.apache.sling.auth.oauth_client.impl.OidcConnectionImpl;
+import org.apache.sling.auth.oauth_client.impl.SlingLoginCookieManager;
import org.apache.sling.auth.oauth_client.impl.SlingUserInfoProcessorImpl;
import org.apache.sling.auth.oauth_client.itbundle.SupportBundle;
import
org.apache.sling.commons.crypto.internal.EnvironmentVariablePasswordProvider;
@@ -356,6 +357,10 @@ class AuthorizationCodeFlowIT {
configPidsToCleanup.add(sling.adaptTo(OsgiConsoleClient.class)
.editConfiguration(JcrUserHomeOAuthTokenStore.class.getName(),
null, Map.of("unused", "unused")));
+ // configure login cookie manager
+ configPidsToCleanup.add(sling.adaptTo(OsgiConsoleClient.class)
+ .editConfiguration(SlingLoginCookieManager.class.getName(),
null, Map.of("idpName", "oidc-idp")));
+
String oidcConnectionName = "keycloak";
// configure connection to keycloak
@@ -429,7 +434,7 @@ class AuthorizationCodeFlowIT {
EXTERNAL_LOGIN_MODULE_FACTORY_PID,
Map.of(
"sync.handlerName", "oidc",
- "idp.name", "oidc")));
+ "idp.name", "oidc-idp")));
configPidsToCleanup.add(sling.adaptTo(OsgiConsoleClient.class)
.editConfiguration(
@@ -448,6 +453,7 @@ class AuthorizationCodeFlowIT {
"callbackUri", "http://localhost:" + slingPort + TEST_PATH +
"/j_security_check");
authenticationHandlerConfig.put("pkceEnabled",
Boolean.toString(withPkce));
+ authenticationHandlerConfig.put("idp", "oidc-idp");
configPidsToCleanup.add(sling.adaptTo(OsgiConsoleClient.class)
.editConfiguration(