From 8379a316bc051ff05ac2fb06671871ab82f01feb Mon Sep 17 00:00:00 2001
From: Phy <git@phy25.com>
Date: Wed, 06 May 2020 00:52:58 +0000
Subject: [PATCH] Update to Keycloak 9.0.0 and apply API change
---
src/main/java/org/keycloak/protocol/cas/representations/SamlResponseHelper.java | 6 +++---
src/main/java/org/keycloak/protocol/cas/representations/SAMLCASConstants.java | 11 +++++++++++
pom.xml | 2 +-
src/main/java/org/keycloak/protocol/cas/endpoints/AbstractValidateEndpoint.java | 2 +-
4 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/pom.xml b/pom.xml
index 6891b7a..16ed5ae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-protocol-cas</artifactId>
- <version>8.0.2</version>
+ <version>9.0.0</version>
<name>Keycloak CAS Protocol</name>
<description />
diff --git a/src/main/java/org/keycloak/protocol/cas/endpoints/AbstractValidateEndpoint.java b/src/main/java/org/keycloak/protocol/cas/endpoints/AbstractValidateEndpoint.java
index d1acb61..b480679 100644
--- a/src/main/java/org/keycloak/protocol/cas/endpoints/AbstractValidateEndpoint.java
+++ b/src/main/java/org/keycloak/protocol/cas/endpoints/AbstractValidateEndpoint.java
@@ -153,7 +153,7 @@
protected Map<String, Object> getUserAttributes() {
UserSessionModel userSession = clientSession.getUserSession();
// CAS protocol does not support scopes, so pass null scopeParam
- ClientSessionContext clientSessionCtx = DefaultClientSessionContext.fromClientSessionAndScopeParameter(clientSession, null);
+ ClientSessionContext clientSessionCtx = DefaultClientSessionContext.fromClientSessionAndScopeParameter(clientSession, null, session);
Set<ProtocolMapperModel> mappings = clientSessionCtx.getProtocolMappers();
KeycloakSessionFactory sessionFactory = session.getKeycloakSessionFactory();
diff --git a/src/main/java/org/keycloak/protocol/cas/representations/SAMLCASConstants.java b/src/main/java/org/keycloak/protocol/cas/representations/SAMLCASConstants.java
new file mode 100644
index 0000000..574142c
--- /dev/null
+++ b/src/main/java/org/keycloak/protocol/cas/representations/SAMLCASConstants.java
@@ -0,0 +1,11 @@
+package org.keycloak.protocol.cas.representations;
+
+public interface SAMLCASConstants {
+
+ String AUTH_METHOD_PASSWORD = "urn:oasis:names:tc:SAML:1.0:am:password";
+
+ String FORMAT_EMAIL_ADDRESS = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress";
+
+ String FORMAT_UNSPECIFIED = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified";
+
+}
diff --git a/src/main/java/org/keycloak/protocol/cas/representations/SamlResponseHelper.java b/src/main/java/org/keycloak/protocol/cas/representations/SamlResponseHelper.java
index f5db51c..cc8ec8d 100644
--- a/src/main/java/org/keycloak/protocol/cas/representations/SamlResponseHelper.java
+++ b/src/main/java/org/keycloak/protocol/cas/representations/SamlResponseHelper.java
@@ -74,7 +74,7 @@
conditions.setNotOnOrAfter(factory.newXMLGregorianCalendar(GregorianCalendar.from(nowZoned.plusMinutes(5))));
}));
assertion.add(applyTo(new SAML11AuthenticationStatementType(
- URI.create(SAML11Constants.AUTH_METHOD_PASSWORD),
+ URI.create(SAMLCASConstants.AUTH_METHOD_PASSWORD),
now
), stmt -> stmt.setSubject(toSubject(username))));
assertion.addAllStatements(toAttributes(username, attributes));
@@ -141,8 +141,8 @@
private static URI nameIdFormat(String username) {
return URI.create(Validation.isEmailValid(username) ?
- SAML11Constants.FORMAT_EMAIL_ADDRESS :
- SAML11Constants.FORMAT_UNSPECIFIED
+ SAMLCASConstants.FORMAT_EMAIL_ADDRESS :
+ SAMLCASConstants.FORMAT_UNSPECIFIED
);
}
--
Gitblit v1.9.1