Skip to content

Commit 9087ec0

Browse files
authored
fix: remove privacy zone from attributes in saml (#450)
1 parent dcb1ec7 commit 9087ec0

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

docker/keycloak/extensions-26/services/src/main/java/com/github/bcgov/keycloak/protocol/saml/mappers/PPIDAttributeMapperNameId.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.github.bcgov.keycloak.protocol.saml.mappers;
22

3+
import org.keycloak.models.AuthenticatedClientSessionModel;
34
import org.keycloak.models.ClientSessionContext;
45
import org.keycloak.models.KeycloakSession;
56
import org.keycloak.models.UserSessionModel;
67
import org.keycloak.protocol.saml.mappers.AbstractSAMLProtocolMapper;
8+
import org.keycloak.protocol.saml.mappers.SAMLAttributeStatementMapper;
79
import org.keycloak.protocol.saml.mappers.SAMLLoginResponseMapper;
810
import org.keycloak.protocol.saml.SamlProtocol;
911
import org.keycloak.representations.idm.ProtocolMapperRepresentation;
@@ -16,6 +18,8 @@
1618
import org.keycloak.provider.ProviderConfigProperty;
1719
import org.keycloak.models.ProtocolMapperModel;
1820
import org.jboss.logging.Logger;
21+
import org.keycloak.dom.saml.v2.assertion.AttributeStatementType;
22+
import org.keycloak.dom.saml.v2.assertion.AttributeStatementType.ASTChoiceType;
1923
import org.keycloak.dom.saml.v2.assertion.NameIDType;
2024
import org.keycloak.dom.saml.v2.assertion.SubjectConfirmationType;
2125
import org.keycloak.dom.saml.v2.assertion.SubjectType;
@@ -24,7 +28,8 @@
2428
import java.net.URI;
2529
import java.util.*;
2630

27-
public class PPIDAttributeMapperNameId extends AbstractSAMLProtocolMapper implements SAMLLoginResponseMapper {
31+
public class PPIDAttributeMapperNameId extends AbstractSAMLProtocolMapper
32+
implements SAMLLoginResponseMapper, SAMLAttributeStatementMapper {
2833

2934
private static final Logger logger = Logger.getLogger(PPIDAttributeMapperNameId.class);
3035

@@ -131,4 +136,17 @@ public static ProtocolMapperRepresentation create(String name, String nameIdValu
131136
return rep;
132137
}
133138

139+
@Override
140+
public void transformAttributeStatement(AttributeStatementType attributeStatement, ProtocolMapperModel mappingModel,
141+
KeycloakSession keycloakSession, UserSessionModel userSession, AuthenticatedClientSessionModel clientSession) {
142+
List<ASTChoiceType> attributes = attributeStatement.getAttributes();
143+
for (int i = attributes.size(); i-- > 0;) {
144+
AttributeStatementType.ASTChoiceType attribute = attributes.get(i);
145+
String name = attribute.getAttribute().getName();
146+
if (name.equals(PRIVACY_ZONE_MAPPER)) {
147+
attributeStatement.removeAttribute(attribute);
148+
break;
149+
}
150+
}
151+
}
134152
}

0 commit comments

Comments
 (0)