[java-idp-oidc] 02/44: JOIDC-5 Initial version of the schema impl for RPs via SAML metadata.
Henri Mikkonen
henri.mikkonen at iki.fi
Thu Oct 22 13:08:14 UTC 2020
This is an automated email from the git hooks/post-receive script.
hjmikkon pushed a commit to branch main
in repository java-idp-oidc.
View the commit online:
http://git.shibboleth.net/view/?p=java-idp-oidc.git;a=commit;h=015902b4a4390599be6be9d78e0a43b1950619d0
commit 015902b4a4390599be6be9d78e0a43b1950619d0
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Wed Apr 15 16:11:38 2020 +0300
JOIDC-5 Initial version of the schema impl for RPs via SAML metadata.
https://issues.shibboleth.net/jira/browse/JOIDC-5
A good location candidate for these files would be 'idp-saml-impl'.
---
.../impl/AbstractMetadataValueMarshaller.java | 42 ++
.../impl/AbstractMetadataValueSAMLObject.java | 68 +++
.../impl/AbstractMetadataValueUnmarshaller.java | 35 ++
.../xmlobject/impl/ApplicationTypeBuilder.java | 46 ++
.../oidc/xmlobject/impl/ApplicationTypeImpl.java | 36 ++
.../xmlobject/impl/ApplicationTypeMarshaller.java | 26 ++
.../impl/ApplicationTypeUnmarshaller.java | 26 ++
.../saml/oidc/xmlobject/impl/ClientUriBuilder.java | 46 ++
.../saml/oidc/xmlobject/impl/ClientUriImpl.java | 36 ++
.../oidc/xmlobject/impl/ClientUriMarshaller.java | 26 ++
.../oidc/xmlobject/impl/ClientUriUnmarshaller.java | 26 ++
.../xmlobject/impl/DefaultAcrValueBuilder.java | 46 ++
.../oidc/xmlobject/impl/DefaultAcrValueImpl.java | 36 ++
.../xmlobject/impl/DefaultAcrValueMarshaller.java | 26 ++
.../impl/DefaultAcrValueUnmarshaller.java | 26 ++
.../saml/oidc/xmlobject/impl/GrantTypeBuilder.java | 46 ++
.../saml/oidc/xmlobject/impl/GrantTypeImpl.java | 37 ++
.../oidc/xmlobject/impl/GrantTypeMarshaller.java | 26 ++
.../oidc/xmlobject/impl/GrantTypeUnmarshaller.java | 26 ++
.../impl/IdTokenEncryptionResponseAlgBuilder.java | 46 ++
.../impl/IdTokenEncryptionResponseAlgImpl.java | 33 ++
.../IdTokenEncryptionResponseAlgMarshaller.java | 26 ++
.../IdTokenEncryptionResponseAlgUnmarshaller.java | 26 ++
.../impl/IdTokenEncryptionResponseEncBuilder.java | 46 ++
.../impl/IdTokenEncryptionResponseEncImpl.java | 36 ++
.../IdTokenEncryptionResponseEncMarshaller.java | 26 ++
.../IdTokenEncryptionResponseEncUnmarshaller.java | 26 ++
.../impl/IdTokenSignedResponseAlgBuilder.java | 46 ++
.../impl/IdTokenSignedResponseAlgImpl.java | 36 ++
.../impl/IdTokenSignedResponseAlgMarshaller.java | 26 ++
.../impl/IdTokenSignedResponseAlgUnmarshaller.java | 26 ++
.../xmlobject/impl/InitiateLoginUriBuilder.java | 46 ++
.../oidc/xmlobject/impl/InitiateLoginUriImpl.java | 36 ++
.../xmlobject/impl/InitiateLoginUriMarshaller.java | 26 ++
.../impl/InitiateLoginUriUnmarshaller.java | 26 ++
.../saml/oidc/xmlobject/impl/JwksUriBuilder.java | 46 ++
.../idp/saml/oidc/xmlobject/impl/JwksUriImpl.java | 36 ++
.../oidc/xmlobject/impl/JwksUriMarshaller.java | 26 ++
.../oidc/xmlobject/impl/JwksUriUnmarshaller.java | 26 ++
.../impl/OAuthRPRoleDescriptorTypeBuilder.java | 48 +++
.../impl/OAuthRPRoleDescriptorTypeImpl.java | 467 +++++++++++++++++++++
.../impl/OAuthRPRoleDescriptorTypeMarshaller.java | 29 ++
.../OAuthRPRoleDescriptorTypeUnmarshaller.java | 139 ++++++
.../impl/PostLogoutRedirectUriBuilder.java | 46 ++
.../xmlobject/impl/PostLogoutRedirectUriImpl.java | 36 ++
.../impl/PostLogoutRedirectUriMarshaller.java | 26 ++
.../impl/PostLogoutRedirectUriUnmarshaller.java | 26 ++
.../oidc/xmlobject/impl/RedirectUriBuilder.java | 46 ++
.../saml/oidc/xmlobject/impl/RedirectUriImpl.java | 37 ++
.../oidc/xmlobject/impl/RedirectUriMarshaller.java | 26 ++
.../xmlobject/impl/RedirectUriUnmarshaller.java | 26 ++
.../RequestObjectEncryptionResponseAlgBuilder.java | 46 ++
.../RequestObjectEncryptionResponseAlgImpl.java | 36 ++
...questObjectEncryptionResponseAlgMarshaller.java | 26 ++
...estObjectEncryptionResponseAlgUnmarshaller.java | 26 ++
.../RequestObjectEncryptionResponseEncBuilder.java | 46 ++
.../RequestObjectEncryptionResponseEncImpl.java | 36 ++
...questObjectEncryptionResponseEncMarshaller.java | 26 ++
...estObjectEncryptionResponseEncUnmarshaller.java | 26 ++
.../RequestObjectSignedResponseAlgBuilder.java | 46 ++
.../impl/RequestObjectSignedResponseAlgImpl.java | 36 ++
.../RequestObjectSignedResponseAlgMarshaller.java | 26 ++
...RequestObjectSignedResponseAlgUnmarshaller.java | 26 ++
.../oidc/xmlobject/impl/RequestUriBuilder.java | 46 ++
.../saml/oidc/xmlobject/impl/RequestUriImpl.java | 36 ++
.../oidc/xmlobject/impl/RequestUriMarshaller.java | 26 ++
.../xmlobject/impl/RequestUriUnmarshaller.java | 26 ++
.../oidc/xmlobject/impl/ResponseTypeBuilder.java | 46 ++
.../saml/oidc/xmlobject/impl/ResponseTypeImpl.java | 36 ++
.../xmlobject/impl/ResponseTypeMarshaller.java | 26 ++
.../xmlobject/impl/ResponseTypeUnmarshaller.java | 26 ++
.../idp/saml/oidc/xmlobject/impl/ScopeBuilder.java | 46 ++
.../idp/saml/oidc/xmlobject/impl/ScopeImpl.java | 36 ++
.../saml/oidc/xmlobject/impl/ScopeMarshaller.java | 26 ++
.../oidc/xmlobject/impl/ScopeUnmarshaller.java | 26 ++
.../xmlobject/impl/SectorIdentifierUriBuilder.java | 46 ++
.../xmlobject/impl/SectorIdentifierUriImpl.java | 36 ++
.../impl/SectorIdentifierUriMarshaller.java | 26 ++
.../impl/SectorIdentifierUriUnmarshaller.java | 26 ++
.../oidc/xmlobject/impl/SoftwareIdBuilder.java | 46 ++
.../saml/oidc/xmlobject/impl/SoftwareIdImpl.java | 36 ++
.../oidc/xmlobject/impl/SoftwareIdMarshaller.java | 26 ++
.../xmlobject/impl/SoftwareIdUnmarshaller.java | 26 ++
.../xmlobject/impl/SoftwareVersionBuilder.java | 46 ++
.../oidc/xmlobject/impl/SoftwareVersionImpl.java | 36 ++
.../xmlobject/impl/SoftwareVersionMarshaller.java | 26 ++
.../impl/SoftwareVersionUnmarshaller.java | 26 ++
.../oidc/xmlobject/impl/SubjectTypeBuilder.java | 46 ++
.../saml/oidc/xmlobject/impl/SubjectTypeImpl.java | 36 ++
.../oidc/xmlobject/impl/SubjectTypeMarshaller.java | 26 ++
.../xmlobject/impl/SubjectTypeUnmarshaller.java | 26 ++
.../impl/TokenEndpointAuthMethodBuilder.java | 46 ++
.../impl/TokenEndpointAuthMethodImpl.java | 36 ++
.../impl/TokenEndpointAuthMethodMarshaller.java | 26 ++
.../impl/TokenEndpointAuthMethodUnmarshaller.java | 26 ++
.../impl/TokenEndpointAuthSigningAlgBuilder.java | 46 ++
.../impl/TokenEndpointAuthSigningAlgImpl.java | 36 ++
.../TokenEndpointAuthSigningAlgMarshaller.java | 26 ++
.../TokenEndpointAuthSigningAlgUnmarshaller.java | 26 ++
.../impl/UserInfoEncryptionResponseAlgBuilder.java | 46 ++
.../impl/UserInfoEncryptionResponseAlgImpl.java | 36 ++
.../UserInfoEncryptionResponseAlgMarshaller.java | 26 ++
.../UserInfoEncryptionResponseAlgUnmarshaller.java | 26 ++
.../impl/UserInfoEncryptionResponseEncBuilder.java | 46 ++
.../impl/UserInfoEncryptionResponseEncImpl.java | 36 ++
.../UserInfoEncryptionResponseEncMarshaller.java | 26 ++
.../UserInfoEncryptionResponseEncUnmarshaller.java | 26 ++
.../impl/UserInfoSignedResponseAlgBuilder.java | 46 ++
.../impl/UserInfoSignedResponseAlgImpl.java | 36 ++
.../impl/UserInfoSignedResponseAlgMarshaller.java | 26 ++
.../UserInfoSignedResponseAlgUnmarshaller.java | 26 ++
.../impl/XMLObjectProviderInitializer.java | 37 ++
.../services/org.opensaml.core.config.Initializer | 1 +
.../resources/saml2-metadata-oidcmd-config.xml | 170 ++++++++
114 files changed, 4519 insertions(+)
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/AbstractMetadataValueMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/AbstractMetadataValueMarshaller.java
new file mode 100644
index 00000000..d176145f
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/AbstractMetadataValueMarshaller.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.MetadataValueSAMLObject;
+import org.opensaml.core.xml.XMLObject;
+import org.opensaml.core.xml.io.MarshallingException;
+import org.opensaml.saml.common.AbstractSAMLObjectMarshaller;
+import org.w3c.dom.Element;
+
+import net.shibboleth.utilities.java.support.xml.ElementSupport;
+
+/**
+ * Abstract thread safe Marshaller for {@link MetadataValueSAMLObject} objects.
+ * @param <T> The metadata value.
+ */
+public abstract class AbstractMetadataValueMarshaller<T extends MetadataValueSAMLObject> extends AbstractSAMLObjectMarshaller {
+
+ /** {@inheritDoc} */
+ protected void marshallElementContent(final XMLObject samlObject, final Element domElement)
+ throws MarshallingException {
+ final T metadataObject = (T) samlObject;
+
+ if (metadataObject.getValue() != null) {
+ ElementSupport.appendTextContent(domElement, metadataObject.getValue());
+ }
+ }
+}
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/AbstractMetadataValueSAMLObject.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/AbstractMetadataValueSAMLObject.java
new file mode 100644
index 00000000..b5710095
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/AbstractMetadataValueSAMLObject.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.opensaml.core.xml.AbstractXMLObject;
+import org.opensaml.core.xml.XMLObject;
+
+/**
+ * Base implementation for all simple metadata objects containing {@link String} value inside the element.
+ */
+public abstract class AbstractMetadataValueSAMLObject extends AbstractXMLObject {
+
+ /** The value for this metadata object. */
+ private String value;
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected AbstractMetadataValueSAMLObject(final String namespaceURI, final String elementLocalName,
+ final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+
+ /**
+ * Get the value for this metadata object.
+ *
+ * @return The value for this metadata object.
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Set the value for this metadata object.
+ *
+ * @param newValue What to set.
+ */
+ public void setValue(final String newValue) {
+ value = newValue;
+ }
+
+ /** {@inheritDoc} */
+ public List<XMLObject> getOrderedChildren() {
+ return Collections.emptyList();
+ }
+
+}
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/AbstractMetadataValueUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/AbstractMetadataValueUnmarshaller.java
new file mode 100644
index 00000000..ba03cfd5
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/AbstractMetadataValueUnmarshaller.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.MetadataValueSAMLObject;
+import org.opensaml.core.xml.XMLObject;
+import org.opensaml.saml.common.AbstractSAMLObjectUnmarshaller;
+
+/**
+ * Abstract thread-safe Unmarshaller for {@link MetadataValueSAMLObject} objects.
+ * @param <T> The metadata value.
+ */
+public abstract class AbstractMetadataValueUnmarshaller<T extends MetadataValueSAMLObject>
+ extends AbstractSAMLObjectUnmarshaller {
+
+ /** {@inheritDoc} */
+ protected void processElementContent(final XMLObject samlObject, final String elementContent) {
+ final T metadataObject = (T) samlObject;
+ metadataObject.setValue(elementContent);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeBuilder.java
new file mode 100644
index 00000000..e156ea75
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ApplicationType;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link ApplicationTypeImpl}.
+ */
+public class ApplicationTypeBuilder extends AbstractSAMLObjectBuilder<ApplicationType> {
+
+ /**
+ * Constructor.
+ */
+ public ApplicationTypeBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public ApplicationType buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, ApplicationType.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public ApplicationType buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new ApplicationTypeImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeImpl.java
new file mode 100644
index 00000000..9a6cc65e
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ApplicationType;
+
+/**
+ * Concrete implementation of {@link ApplicationType}.
+ */
+public class ApplicationTypeImpl extends AbstractMetadataValueSAMLObject implements ApplicationType {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected ApplicationTypeImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeMarshaller.java
new file mode 100644
index 00000000..261bc43e
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ApplicationType;
+
+/**
+ * A thread safe Marshaller for {@link ApplicationType} objects.
+ */
+public class ApplicationTypeMarshaller extends AbstractMetadataValueMarshaller<ApplicationType> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeUnmarshaller.java
new file mode 100644
index 00000000..20dc172f
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ApplicationTypeUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ApplicationType;
+
+/**
+ * A thread-safe Unmarshaller for {@link ApplicationType} objects.
+ */
+public class ApplicationTypeUnmarshaller extends AbstractMetadataValueUnmarshaller<ApplicationType> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriBuilder.java
new file mode 100644
index 00000000..35a188de
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ClientUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link ClientUriImpl}.
+ */
+public class ClientUriBuilder extends AbstractSAMLObjectBuilder<ClientUri> {
+
+ /**
+ * Constructor.
+ */
+ public ClientUriBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public ClientUri buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, ClientUri.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public ClientUri buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new ClientUriImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriImpl.java
new file mode 100644
index 00000000..23ef565d
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ClientUri;
+
+/**
+ * Concrete implementation of {@link ClientUri}.
+ */
+public class ClientUriImpl extends AbstractMetadataValueSAMLObject implements ClientUri {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected ClientUriImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriMarshaller.java
new file mode 100644
index 00000000..a702e065
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ClientUri;
+
+/**
+ * A thread safe Marshaller for {@link ClientUri} objects.
+ */
+public class ClientUriMarshaller extends AbstractMetadataValueMarshaller<ClientUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriUnmarshaller.java
new file mode 100644
index 00000000..d4ec0a6c
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ClientUriUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ClientUri;
+
+/**
+ * A thread-safe Unmarshaller for {@link ClientUri} objects.
+ */
+public class ClientUriUnmarshaller extends AbstractMetadataValueUnmarshaller<ClientUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueBuilder.java
new file mode 100644
index 00000000..364d121c
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.DefaultAcrValue;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link DefaultAcrValueImpl}.
+ */
+public class DefaultAcrValueBuilder extends AbstractSAMLObjectBuilder<DefaultAcrValue> {
+
+ /**
+ * Constructor.
+ */
+ public DefaultAcrValueBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public DefaultAcrValue buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, DefaultAcrValue.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public DefaultAcrValue buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new DefaultAcrValueImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueImpl.java
new file mode 100644
index 00000000..536d1fc6
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.DefaultAcrValue;
+
+/**
+ * Concrete implementation of {@link DefaultAcrValue}.
+ */
+public class DefaultAcrValueImpl extends AbstractMetadataValueSAMLObject implements DefaultAcrValue {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected DefaultAcrValueImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueMarshaller.java
new file mode 100644
index 00000000..5819befa
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.DefaultAcrValue;
+
+/**
+ * A thread safe Marshaller for {@link DefaultAcrValue} objects.
+ */
+public class DefaultAcrValueMarshaller extends AbstractMetadataValueMarshaller<DefaultAcrValue> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueUnmarshaller.java
new file mode 100644
index 00000000..8a4a71a2
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/DefaultAcrValueUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.DefaultAcrValue;
+
+/**
+ * A thread-safe Unmarshaller for {@link DefaultAcrValue} objects.
+ */
+public class DefaultAcrValueUnmarshaller extends AbstractMetadataValueUnmarshaller<DefaultAcrValue> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeBuilder.java
new file mode 100644
index 00000000..d503c067
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+import net.shibboleth.idp.saml.oidc.xmlobject.GrantType;
+
+/**
+ * Builder of {@link GrantTypeImpl}.
+ */
+public class GrantTypeBuilder extends AbstractSAMLObjectBuilder<GrantType> {
+
+ /**
+ * Constructor.
+ */
+ public GrantTypeBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public GrantType buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, GrantType.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public GrantType buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new GrantTypeImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeImpl.java
new file mode 100644
index 00000000..8a31792d
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeImpl.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.GrantType;
+
+/**
+ * Concrete implementation of {@link GrantType}.
+ */
+public class GrantTypeImpl extends AbstractMetadataValueSAMLObject implements GrantType {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected GrantTypeImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeMarshaller.java
new file mode 100644
index 00000000..5d3a4f97
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.GrantType;
+
+/**
+ * A thread safe Marshaller for {@link GrantType} objects.
+ */
+public class GrantTypeMarshaller extends AbstractMetadataValueMarshaller<GrantType> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeUnmarshaller.java
new file mode 100644
index 00000000..044c0812
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/GrantTypeUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.GrantType;
+
+/**
+ * A thread-safe Unmarshaller for {@link GrantType} objects.
+ */
+public class GrantTypeUnmarshaller extends AbstractMetadataValueUnmarshaller<GrantType> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgBuilder.java
new file mode 100644
index 00000000..52e2bb8d
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link IdTokenEncryptionResponseAlgImpl}.
+ */
+public class IdTokenEncryptionResponseAlgBuilder extends AbstractSAMLObjectBuilder<IdTokenEncryptionResponseAlg> {
+
+ /**
+ * Constructor.
+ */
+ public IdTokenEncryptionResponseAlgBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public IdTokenEncryptionResponseAlg buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, IdTokenEncryptionResponseAlg.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public IdTokenEncryptionResponseAlg buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new IdTokenEncryptionResponseAlgImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgImpl.java
new file mode 100644
index 00000000..2977b057
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgImpl.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseAlg;
+
+public class IdTokenEncryptionResponseAlgImpl extends AbstractMetadataValueSAMLObject implements IdTokenEncryptionResponseAlg {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected IdTokenEncryptionResponseAlgImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgMarshaller.java
new file mode 100644
index 00000000..b899fc4c
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseAlg;
+
+/**
+ * A thread safe Marshaller for {@link IdTokenEncryptionResponseAlg} objects.
+ */
+public class IdTokenEncryptionResponseAlgMarshaller extends AbstractMetadataValueMarshaller<IdTokenEncryptionResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgUnmarshaller.java
new file mode 100644
index 00000000..dc02b79e
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseAlgUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseAlg;
+
+/**
+ * A thread-safe Unmarshaller for {@link IdTokenEncryptionResponseAlg} objects.
+ */
+public class IdTokenEncryptionResponseAlgUnmarshaller extends AbstractMetadataValueUnmarshaller<IdTokenEncryptionResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncBuilder.java
new file mode 100644
index 00000000..a680d5a8
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseEnc;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link IdTokenEncryptionResponseEncImpl}.
+ */
+public class IdTokenEncryptionResponseEncBuilder extends AbstractSAMLObjectBuilder<IdTokenEncryptionResponseEnc> {
+
+ /**
+ * Constructor.
+ */
+ public IdTokenEncryptionResponseEncBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public IdTokenEncryptionResponseEnc buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, IdTokenEncryptionResponseEnc.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public IdTokenEncryptionResponseEnc buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new IdTokenEncryptionResponseEncImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncImpl.java
new file mode 100644
index 00000000..c85dff6f
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseEnc;
+
+/**
+ * Concrete implementation of {@link IdTokenEncryptionResponseEnc}.
+ */
+public class IdTokenEncryptionResponseEncImpl extends AbstractMetadataValueSAMLObject implements IdTokenEncryptionResponseEnc {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected IdTokenEncryptionResponseEncImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncMarshaller.java
new file mode 100644
index 00000000..1fd4c452
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseEnc;
+
+/**
+ * A thread safe Marshaller for {@link IdTokenEncryptionResponseEnc} objects.
+ */
+public class IdTokenEncryptionResponseEncMarshaller extends AbstractMetadataValueMarshaller<IdTokenEncryptionResponseEnc> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncUnmarshaller.java
new file mode 100644
index 00000000..812fc44d
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenEncryptionResponseEncUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseEnc;
+
+/**
+ * A thread-safe Unmarshaller for {@link IdTokenEncryptionResponseEnc} objects.
+ */
+public class IdTokenEncryptionResponseEncUnmarshaller extends AbstractMetadataValueUnmarshaller<IdTokenEncryptionResponseEnc> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgBuilder.java
new file mode 100644
index 00000000..0a3a4a19
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenSignedResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link IdTokenSignedResponseAlgImpl}.
+ */
+public class IdTokenSignedResponseAlgBuilder extends AbstractSAMLObjectBuilder<IdTokenSignedResponseAlg> {
+
+ /**
+ * Constructor.
+ */
+ public IdTokenSignedResponseAlgBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public IdTokenSignedResponseAlg buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, IdTokenSignedResponseAlg.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public IdTokenSignedResponseAlg buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new IdTokenSignedResponseAlgImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgImpl.java
new file mode 100644
index 00000000..9a23b8d8
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenSignedResponseAlg;
+
+/**
+ * Concrete implementation of {@link IdTokenSignedResponseAlg}.
+ */
+public class IdTokenSignedResponseAlgImpl extends AbstractMetadataValueSAMLObject implements IdTokenSignedResponseAlg {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected IdTokenSignedResponseAlgImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgMarshaller.java
new file mode 100644
index 00000000..d9ad0ecb
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenSignedResponseAlg;
+
+/**
+ * A thread safe Marshaller for {@link IdTokenSignedResponseAlg} objects.
+ */
+public class IdTokenSignedResponseAlgMarshaller extends AbstractMetadataValueMarshaller<IdTokenSignedResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgUnmarshaller.java
new file mode 100644
index 00000000..da4affaa
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/IdTokenSignedResponseAlgUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenSignedResponseAlg;
+
+/**
+ * A thread-safe Unmarshaller for {@link IdTokenSignedResponseAlg} objects.
+ */
+public class IdTokenSignedResponseAlgUnmarshaller extends AbstractMetadataValueUnmarshaller<IdTokenSignedResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriBuilder.java
new file mode 100644
index 00000000..f5b1ee95
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.InitiateLoginUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link InitiateLoginUriImpl}.
+ */
+public class InitiateLoginUriBuilder extends AbstractSAMLObjectBuilder<InitiateLoginUri> {
+
+ /**
+ * Constructor.
+ */
+ public InitiateLoginUriBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public InitiateLoginUri buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, InitiateLoginUri.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public InitiateLoginUri buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new InitiateLoginUriImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriImpl.java
new file mode 100644
index 00000000..719ee4d6
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.InitiateLoginUri;
+
+/**
+ * Concrete implementation of {@link InitiateLoginUri}.
+ */
+public class InitiateLoginUriImpl extends AbstractMetadataValueSAMLObject implements InitiateLoginUri {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected InitiateLoginUriImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriMarshaller.java
new file mode 100644
index 00000000..991c835e
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.InitiateLoginUri;
+
+/**
+ * A thread safe Marshaller for {@link InitiateLoginUri} objects.
+ */
+public class InitiateLoginUriMarshaller extends AbstractMetadataValueMarshaller<InitiateLoginUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriUnmarshaller.java
new file mode 100644
index 00000000..3d704510
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/InitiateLoginUriUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.InitiateLoginUri;
+
+/**
+ * A thread-safe Unmarshaller for {@link InitiateLoginUri} objects.
+ */
+public class InitiateLoginUriUnmarshaller extends AbstractMetadataValueUnmarshaller<InitiateLoginUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriBuilder.java
new file mode 100644
index 00000000..c1dad8bb
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.JwksUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link JwksUriImpl}.
+ */
+public class JwksUriBuilder extends AbstractSAMLObjectBuilder<JwksUri> {
+
+ /**
+ * Constructor.
+ */
+ public JwksUriBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public JwksUri buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, JwksUri.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public JwksUri buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new JwksUriImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriImpl.java
new file mode 100644
index 00000000..db005b19
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.JwksUri;
+
+/**
+ * Concrete implementation of {@link JwksUri}.
+ */
+public class JwksUriImpl extends AbstractMetadataValueSAMLObject implements JwksUri {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected JwksUriImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriMarshaller.java
new file mode 100644
index 00000000..8cdb868b
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.JwksUri;
+
+/**
+ * A thread safe Marshaller for {@link JwksUri} objects.
+ */
+public class JwksUriMarshaller extends AbstractMetadataValueMarshaller<JwksUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriUnmarshaller.java
new file mode 100644
index 00000000..0b421246
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/JwksUriUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.JwksUri;
+
+/**
+ * A thread-safe Unmarshaller for {@link JwksUri} objects.
+ */
+public class JwksUriUnmarshaller extends AbstractMetadataValueUnmarshaller<JwksUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeBuilder.java
new file mode 100644
index 00000000..5892989a
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeBuilder.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.MetadataValueSAMLObject;
+import net.shibboleth.idp.saml.oidc.xmlobject.OAuthRPRoleDescriptorType;
+
+/**
+ * Builder of {@link OAuthRPRoleDescriptorTypeImpl} objects.
+ */
+public class OAuthRPRoleDescriptorTypeBuilder extends AbstractSAMLObjectBuilder<OAuthRPRoleDescriptorType> {
+
+ /** Constructor. */
+ public OAuthRPRoleDescriptorTypeBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public OAuthRPRoleDescriptorType buildObject() {
+ return buildObject(MetadataValueSAMLObject.SAML20MDOIDCMD_NS,
+ OAuthRPRoleDescriptorType.DEFAULT_ELEMENT_LOCAL_NAME,
+ MetadataValueSAMLObject.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public OAuthRPRoleDescriptorType buildObject(final String namespaceURI, final String localName,
+ final String namespacePrefix) {
+ return new OAuthRPRoleDescriptorTypeImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeImpl.java
new file mode 100644
index 00000000..23bb6093
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeImpl.java
@@ -0,0 +1,467 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ApplicationType;
+import net.shibboleth.idp.saml.oidc.xmlobject.ClientUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.DefaultAcrValue;
+import net.shibboleth.idp.saml.oidc.xmlobject.GrantType;
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseEnc;
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenSignedResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.InitiateLoginUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.JwksUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.OAuthRPRoleDescriptorType;
+import net.shibboleth.idp.saml.oidc.xmlobject.PostLogoutRedirectUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.RedirectUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseEnc;
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectSignedResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.ResponseType;
+import net.shibboleth.idp.saml.oidc.xmlobject.Scope;
+import net.shibboleth.idp.saml.oidc.xmlobject.SectorIdentifierUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareId;
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareVersion;
+import net.shibboleth.idp.saml.oidc.xmlobject.SubjectType;
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthMethod;
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthSigningAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseEnc;
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoSignedResponseAlg;
+
+import org.opensaml.core.xml.util.XMLObjectChildrenList;
+import org.opensaml.saml.saml2.metadata.Endpoint;
+import org.opensaml.saml.saml2.metadata.impl.RoleDescriptorImpl;
+
+/**
+ * Implementation for {@link OAuthRPRoleDescriptorType}.
+ */
+public class OAuthRPRoleDescriptorTypeImpl extends RoleDescriptorImpl implements OAuthRPRoleDescriptorType {
+
+ /** Redirect URIs configured for this entity. */
+ private final XMLObjectChildrenList<RedirectUri> redirectUris;
+
+ /** Token endpoint authentication method for this entity. */
+ private TokenEndpointAuthMethod tokenEndpointAuthMethod;
+
+ /** Response types for this entity. */
+ private final XMLObjectChildrenList<ResponseType> responseTypes;
+
+ /** Grant types for this entity. */
+ private final XMLObjectChildrenList<GrantType> grantTypes;
+
+ /** Application type for this entity. */
+ private ApplicationType applicationType;
+
+ /** Client URI for this entity. */
+ private ClientUri clientUri;
+
+ private final XMLObjectChildrenList<Scope> scopes;
+
+ /** JWKS URI for this entity. */
+ private JwksUri jwksUri;
+
+ /** Software identifier for this entity. */
+ private SoftwareId softwareId;
+
+ /** Software version for this entity. */
+ private SoftwareVersion softwareVersion;
+
+ /** Sector identifier URI for this entity. */
+ private SectorIdentifierUri sectorIdentifierUri;
+
+ /** Subject type for this entity. */
+ private SubjectType subjectType;
+
+ /** ID token signed response algorithm for this entity. */
+ private IdTokenSignedResponseAlg idTokenSignedResponseAlg;
+
+ /** ID token encryption response algorithm for this entity. */
+ private IdTokenEncryptionResponseAlg idTokenEncryptionResponseAlg;
+
+ /** ID token encryption response encoder for this entity. */
+ private IdTokenEncryptionResponseEnc idTokenEncryptionResponseEnc;
+
+ /** User info signed response algorithm for this entity. */
+ private UserInfoSignedResponseAlg userInfoSignedResponseAlg;
+
+ /** User info encryption response algorithm for this entity. */
+ private UserInfoEncryptionResponseAlg userInfoEncryptionResponseAlg;
+
+ /** User info encryption response encoder for this entity. */
+ private UserInfoEncryptionResponseEnc userInfoEncryptionResponseEnc;
+
+ /** Request object signed response algorithm for this entity. */
+ private RequestObjectSignedResponseAlg requestObjectSignedResponseAlg;
+
+ /** Request object encryption response algorithm for this entity. */
+ private RequestObjectEncryptionResponseAlg requestObjectEncryptionResponseAlg;
+
+ /** Request object encryption response encoder for this entity. */
+ private RequestObjectEncryptionResponseEnc requestObjectEncryptionResponseEnc;
+
+ /** Token endpoint authentication signing algorithm for this entity. */
+ private TokenEndpointAuthSigningAlg tokenEndpointAuthSigningAlg;
+
+ /** Default ACR values for this entity. */
+ private final XMLObjectChildrenList<DefaultAcrValue> defaultAcrValues;
+
+ /** Initiate login URI for this entity. */
+ private InitiateLoginUri initiateLoginUri;
+
+ /** Request URIs for this entity. */
+ private final XMLObjectChildrenList<RequestUri> requestUris;
+
+ /** Post logout redirect URIs for this entity. */
+ private final XMLObjectChildrenList<PostLogoutRedirectUri> postLogoutRedirectUris;
+
+ /** Default max age for this entity. */
+ private int defaultMaxAge;
+
+ /** Require auth time flag for this entity. */
+ private boolean requireAuthTime;
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected OAuthRPRoleDescriptorTypeImpl(final String namespaceURI, final String elementLocalName,
+ final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ redirectUris = new XMLObjectChildrenList<>(this);
+ responseTypes = new XMLObjectChildrenList<>(this);
+ grantTypes = new XMLObjectChildrenList<>(this);
+ scopes = new XMLObjectChildrenList<>(this);
+ defaultAcrValues = new XMLObjectChildrenList<>(this);
+ requestUris = new XMLObjectChildrenList<>(this);
+ postLogoutRedirectUris = new XMLObjectChildrenList<>(this);
+ }
+
+ /** {@inheritDoc} */
+ public List<Endpoint> getEndpoints() {
+ return new ArrayList<>();
+ }
+
+ /** {@inheritDoc} */
+ public List<Endpoint> getEndpoints(final QName type) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public List<RedirectUri> getRedirectUris() {
+ return redirectUris;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public List<ResponseType> getResponseTypes() {
+ return responseTypes;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public List<GrantType> getGrantTypes() {
+ return grantTypes;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ApplicationType getApplicationType() {
+ return applicationType;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setApplicationType(final ApplicationType type) {
+ applicationType = type;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public TokenEndpointAuthMethod getTokenEndpointAuthMethod() {
+ return tokenEndpointAuthMethod;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setTokenEndpointAuthMethod(TokenEndpointAuthMethod method) {
+ tokenEndpointAuthMethod = method;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ClientUri getClientUri() {
+ return clientUri;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setClientUri(ClientUri uri) {
+ clientUri = uri;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public List<Scope> getScopes() {
+ return scopes;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public JwksUri getJwksUri() {
+ return jwksUri;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setJwksUri(JwksUri uri) {
+ jwksUri = uri;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SoftwareId getSoftwareId() {
+ return softwareId;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setSoftwareId(SoftwareId id) {
+ softwareId = id;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SoftwareVersion getSoftwareVersion() {
+ return softwareVersion;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setSoftwareVersion(SoftwareVersion version) {
+ softwareVersion = version;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SectorIdentifierUri getSectorIdentifierUri() {
+ return sectorIdentifierUri;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setSectorIdentifierUri(SectorIdentifierUri uri) {
+ sectorIdentifierUri = uri;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SubjectType getSubjectType() {
+ return subjectType;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setSubjectType(SubjectType type) {
+ subjectType = type;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public IdTokenSignedResponseAlg getIdTokenSignedResponseAlg() {
+ return idTokenSignedResponseAlg;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setIdTokenSignedResponseAlg(IdTokenSignedResponseAlg algorithm) {
+ idTokenSignedResponseAlg = algorithm;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public IdTokenEncryptionResponseAlg getIdTokenEncryptionResponseAlg() {
+ return idTokenEncryptionResponseAlg;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setIdTokenEncryptionResponseAlg(IdTokenEncryptionResponseAlg algorithm) {
+ idTokenEncryptionResponseAlg = algorithm;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public IdTokenEncryptionResponseEnc getIdTokenEncryptionResponseEnc() {
+ return idTokenEncryptionResponseEnc;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setIdTokenEncryptionResponseEnc(IdTokenEncryptionResponseEnc algorithm) {
+ idTokenEncryptionResponseEnc = algorithm;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public UserInfoSignedResponseAlg getUserInfoSignedResponseAlg() {
+ return userInfoSignedResponseAlg;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setUserInfoSignedResponseAlg(UserInfoSignedResponseAlg algorithm) {
+ userInfoSignedResponseAlg = algorithm;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public UserInfoEncryptionResponseAlg getUserInfoEncryptionResponseAlg() {
+ return userInfoEncryptionResponseAlg;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setUserInfoEncryptionResponseAlg(UserInfoEncryptionResponseAlg algorithm) {
+ userInfoEncryptionResponseAlg = algorithm;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public UserInfoEncryptionResponseEnc getUserInfoEncryptionResponseEnc() {
+ return userInfoEncryptionResponseEnc;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setUserInfoEncryptionResponseEnc(UserInfoEncryptionResponseEnc algorithm) {
+ userInfoEncryptionResponseEnc = algorithm;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public RequestObjectSignedResponseAlg getRequestObjectSignedResponseAlg() {
+ return requestObjectSignedResponseAlg;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setRequestObjectSignedResponseAlg(RequestObjectSignedResponseAlg algorithm) {
+ requestObjectSignedResponseAlg = algorithm;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public RequestObjectEncryptionResponseAlg getRequestObjectEncryptionResponseAlg() {
+ return requestObjectEncryptionResponseAlg;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setRequestObjectEncryptionResponseAlg(RequestObjectEncryptionResponseAlg algorithm) {
+ requestObjectEncryptionResponseAlg = algorithm;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public RequestObjectEncryptionResponseEnc getRequestObjectEncryptionResponseEnc() {
+ return requestObjectEncryptionResponseEnc;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setRequestObjectEncryptionResponseEnc(RequestObjectEncryptionResponseEnc algorithm) {
+ requestObjectEncryptionResponseEnc = algorithm;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public TokenEndpointAuthSigningAlg getTokenEndpointAuthSigningAlg() {
+ return tokenEndpointAuthSigningAlg;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setTokenEndpointAuthSigningAlg(TokenEndpointAuthSigningAlg algorithm) {
+ tokenEndpointAuthSigningAlg = algorithm;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public List<DefaultAcrValue> getDefaultAcrValues() {
+ return defaultAcrValues;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public InitiateLoginUri getInitiateLoginUri() {
+ return initiateLoginUri;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setInitiateLoginUri(InitiateLoginUri uri) {
+ initiateLoginUri = uri;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public List<RequestUri> getRequestUris() {
+ return requestUris;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public List<PostLogoutRedirectUri> getPostLogoutRedirectUris() {
+ return postLogoutRedirectUris;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public int getDefaultMaxAge() {
+ return defaultMaxAge;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setDefaultMaxAge(int age) {
+ defaultMaxAge = age;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public boolean isRequireAuthTime() {
+ return requireAuthTime;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setRequireAuthTime(boolean flag) {
+ requireAuthTime = flag;
+ }
+
+}
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeMarshaller.java
new file mode 100644
index 00000000..20b22543
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeMarshaller.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.saml2.metadata.impl.RoleDescriptorMarshaller;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.OAuthRPRoleDescriptorType;
+
+/**
+ * Marshaller for {@link OAuthRPRoleDescriptorType} objects.
+ */
+public class OAuthRPRoleDescriptorTypeMarshaller extends RoleDescriptorMarshaller {
+
+ //TODO
+}
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeUnmarshaller.java
new file mode 100644
index 00000000..744dcd74
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/OAuthRPRoleDescriptorTypeUnmarshaller.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.core.xml.XMLObject;
+import org.opensaml.core.xml.io.UnmarshallingException;
+import org.opensaml.saml.saml2.metadata.impl.RoleDescriptorUnmarshaller;
+import org.w3c.dom.Attr;
+
+import com.google.common.base.Strings;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ApplicationType;
+import net.shibboleth.idp.saml.oidc.xmlobject.ClientUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.DefaultAcrValue;
+import net.shibboleth.idp.saml.oidc.xmlobject.GrantType;
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenEncryptionResponseEnc;
+import net.shibboleth.idp.saml.oidc.xmlobject.IdTokenSignedResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.InitiateLoginUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.JwksUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.OAuthRPRoleDescriptorType;
+import net.shibboleth.idp.saml.oidc.xmlobject.PostLogoutRedirectUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.RedirectUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseEnc;
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectSignedResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.ResponseType;
+import net.shibboleth.idp.saml.oidc.xmlobject.Scope;
+import net.shibboleth.idp.saml.oidc.xmlobject.SectorIdentifierUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareId;
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareVersion;
+import net.shibboleth.idp.saml.oidc.xmlobject.SubjectType;
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthMethod;
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthSigningAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseEnc;
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoSignedResponseAlg;
+
+/**
+ * Unmarshaller for {@link OAuthRPRoleDescriptorType} objects.
+ */
+public class OAuthRPRoleDescriptorTypeUnmarshaller extends RoleDescriptorUnmarshaller {
+
+ /** {@inheritDoc} */
+ protected void processChildElement(final XMLObject parentSAMLObject, final XMLObject childSAMLObject)
+ throws UnmarshallingException {
+ final OAuthRPRoleDescriptorType descriptor = (OAuthRPRoleDescriptorType) parentSAMLObject;
+
+ if (childSAMLObject instanceof RedirectUri) {
+ descriptor.getRedirectUris().add((RedirectUri) childSAMLObject);
+ } else if (childSAMLObject instanceof ResponseType) {
+ descriptor.getResponseTypes().add((ResponseType) childSAMLObject);
+ } else if (childSAMLObject instanceof GrantType) {
+ descriptor.getGrantTypes().add((GrantType) childSAMLObject);
+ } else if (childSAMLObject instanceof ApplicationType) {
+ descriptor.setApplicationType((ApplicationType) childSAMLObject);
+ } else if (childSAMLObject instanceof TokenEndpointAuthMethod) {
+ descriptor.setTokenEndpointAuthMethod((TokenEndpointAuthMethod) childSAMLObject);
+ } else if (childSAMLObject instanceof ClientUri) {
+ descriptor.setClientUri((ClientUri) childSAMLObject);
+ } else if (childSAMLObject instanceof Scope) {
+ descriptor.getScopes().add((Scope) childSAMLObject);
+ } else if (childSAMLObject instanceof JwksUri) {
+ descriptor.setJwksUri((JwksUri) childSAMLObject);
+ } else if (childSAMLObject instanceof SoftwareId) {
+ descriptor.setSoftwareId((SoftwareId) childSAMLObject);
+ } else if (childSAMLObject instanceof SoftwareVersion) {
+ descriptor.setSoftwareVersion((SoftwareVersion) childSAMLObject);
+ } else if (childSAMLObject instanceof SectorIdentifierUri) {
+ descriptor.setSectorIdentifierUri((SectorIdentifierUri) childSAMLObject);
+ } else if (childSAMLObject instanceof SubjectType) {
+ descriptor.setSubjectType((SubjectType) childSAMLObject);
+ } else if (childSAMLObject instanceof IdTokenSignedResponseAlg) {
+ descriptor.setIdTokenSignedResponseAlg((IdTokenSignedResponseAlg) childSAMLObject);
+ } else if (childSAMLObject instanceof IdTokenEncryptionResponseAlg) {
+ descriptor.setIdTokenEncryptionResponseAlg((IdTokenEncryptionResponseAlg) childSAMLObject);
+ } else if (childSAMLObject instanceof IdTokenEncryptionResponseEnc) {
+ descriptor.setIdTokenEncryptionResponseEnc((IdTokenEncryptionResponseEnc) childSAMLObject);
+ } else if (childSAMLObject instanceof UserInfoSignedResponseAlg) {
+ descriptor.setUserInfoSignedResponseAlg((UserInfoSignedResponseAlg) childSAMLObject);
+ } else if (childSAMLObject instanceof UserInfoEncryptionResponseAlg) {
+ descriptor.setUserInfoEncryptionResponseAlg((UserInfoEncryptionResponseAlg) childSAMLObject);
+ } else if (childSAMLObject instanceof UserInfoEncryptionResponseEnc) {
+ descriptor.setUserInfoEncryptionResponseEnc((UserInfoEncryptionResponseEnc) childSAMLObject);
+ } else if (childSAMLObject instanceof RequestObjectSignedResponseAlg) {
+ descriptor.setRequestObjectSignedResponseAlg((RequestObjectSignedResponseAlg) childSAMLObject);
+ } else if (childSAMLObject instanceof RequestObjectEncryptionResponseAlg) {
+ descriptor.setRequestObjectEncryptionResponseAlg((RequestObjectEncryptionResponseAlg) childSAMLObject);
+ } else if (childSAMLObject instanceof RequestObjectEncryptionResponseEnc) {
+ descriptor.setRequestObjectEncryptionResponseEnc((RequestObjectEncryptionResponseEnc) childSAMLObject);
+ } else if (childSAMLObject instanceof TokenEndpointAuthSigningAlg) {
+ descriptor.setTokenEndpointAuthSigningAlg((TokenEndpointAuthSigningAlg) childSAMLObject);
+ } else if (childSAMLObject instanceof DefaultAcrValue) {
+ descriptor.getDefaultAcrValues().add((DefaultAcrValue) childSAMLObject);
+ } else if (childSAMLObject instanceof InitiateLoginUri) {
+ descriptor.setInitiateLoginUri((InitiateLoginUri) childSAMLObject);
+ } else if (childSAMLObject instanceof RequestUri) {
+ descriptor.getRequestUris().add((RequestUri) childSAMLObject);
+ } else if (childSAMLObject instanceof PostLogoutRedirectUri) {
+ descriptor.getPostLogoutRedirectUris().add((PostLogoutRedirectUri) childSAMLObject);
+ } else {
+ super.processChildElement(parentSAMLObject, childSAMLObject);
+ }
+ }
+
+ /** {@inheritDoc} */
+ protected void processAttribute(final XMLObject samlObject, final Attr attribute) throws UnmarshallingException {
+ final OAuthRPRoleDescriptorType descriptor = (OAuthRPRoleDescriptorType) samlObject;
+
+ if (attribute.getNamespaceURI() == null) {
+ if (attribute.getLocalName().equals(OAuthRPRoleDescriptorType.DEFAULT_MAX_AGE_ATTRIB_NAME)
+ && !Strings.isNullOrEmpty(attribute.getValue())) {
+ descriptor.setDefaultMaxAge(Integer.parseInt(attribute.getValue()));
+ } else if (attribute.getLocalName().equals(OAuthRPRoleDescriptorType.REQUIRE_AUTH_TIME_ATTRIB_NAME)
+ && !Strings.isNullOrEmpty(attribute.getValue())) {
+ descriptor.setRequireAuthTime(Boolean.parseBoolean(attribute.getValue()));
+ } else {
+ super.processAttribute(samlObject, attribute);
+ }
+ } else {
+ processUnknownAttribute(descriptor, attribute);
+ }
+ }
+}
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriBuilder.java
new file mode 100644
index 00000000..100a8b6f
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.PostLogoutRedirectUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link PostLogoutRedirectUriImpl}.
+ */
+public class PostLogoutRedirectUriBuilder extends AbstractSAMLObjectBuilder<PostLogoutRedirectUri> {
+
+ /**
+ * Constructor.
+ */
+ public PostLogoutRedirectUriBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public PostLogoutRedirectUri buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, PostLogoutRedirectUri.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public PostLogoutRedirectUri buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new PostLogoutRedirectUriImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriImpl.java
new file mode 100644
index 00000000..b1ee4294
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.PostLogoutRedirectUri;
+
+/**
+ * Concrete implementation of {@link PostLogoutRedirectUri}.
+ */
+public class PostLogoutRedirectUriImpl extends AbstractMetadataValueSAMLObject implements PostLogoutRedirectUri {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected PostLogoutRedirectUriImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriMarshaller.java
new file mode 100644
index 00000000..fe2b3677
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.PostLogoutRedirectUri;
+
+/**
+ * A thread safe Marshaller for {@link PostLogoutRedirectUri} objects.
+ */
+public class PostLogoutRedirectUriMarshaller extends AbstractMetadataValueMarshaller<PostLogoutRedirectUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriUnmarshaller.java
new file mode 100644
index 00000000..81f955e4
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/PostLogoutRedirectUriUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.PostLogoutRedirectUri;
+
+/**
+ * A thread-safe Unmarshaller for {@link PostLogoutRedirectUri} objects.
+ */
+public class PostLogoutRedirectUriUnmarshaller extends AbstractMetadataValueUnmarshaller<PostLogoutRedirectUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriBuilder.java
new file mode 100644
index 00000000..46508a40
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+import net.shibboleth.idp.saml.oidc.xmlobject.RedirectUri;
+
+/**
+ * Builder of {@link RedirectUriImpl}.
+ */
+public class RedirectUriBuilder extends AbstractSAMLObjectBuilder<RedirectUri> {
+
+ /**
+ * Constructor.
+ */
+ public RedirectUriBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public RedirectUri buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, RedirectUri.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public RedirectUri buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new RedirectUriImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriImpl.java
new file mode 100644
index 00000000..c9492e38
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriImpl.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RedirectUri;
+
+/**
+ * Concrete implementation of {@link RedirectUri}.
+ */
+public class RedirectUriImpl extends AbstractMetadataValueSAMLObject implements RedirectUri {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+
+ */
+ protected RedirectUriImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriMarshaller.java
new file mode 100644
index 00000000..1e4b7b89
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RedirectUri;
+
+/**
+ * A thread safe Marshaller for {@link RedirectUri} objects.
+ */
+public class RedirectUriMarshaller extends AbstractMetadataValueMarshaller<RedirectUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriUnmarshaller.java
new file mode 100644
index 00000000..373e5866
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RedirectUriUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RedirectUri;
+
+/**
+ * A thread-safe Unmarshaller for {@link RedirectUri} objects.
+ */
+public class RedirectUriUnmarshaller extends AbstractMetadataValueUnmarshaller<RedirectUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgBuilder.java
new file mode 100644
index 00000000..021071ac
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link RequestObjectEncryptionResponseAlgImpl}.
+ */
+public class RequestObjectEncryptionResponseAlgBuilder extends AbstractSAMLObjectBuilder<RequestObjectEncryptionResponseAlg> {
+
+ /**
+ * Constructor.
+ */
+ public RequestObjectEncryptionResponseAlgBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public RequestObjectEncryptionResponseAlg buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, RequestObjectEncryptionResponseAlg.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public RequestObjectEncryptionResponseAlg buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new RequestObjectEncryptionResponseAlgImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgImpl.java
new file mode 100644
index 00000000..723403e8
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseAlg;
+
+/**
+ * Concrete implementation of {@link RequestObjectEncryptionResponseAlg}.
+ */
+public class RequestObjectEncryptionResponseAlgImpl extends AbstractMetadataValueSAMLObject implements RequestObjectEncryptionResponseAlg {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected RequestObjectEncryptionResponseAlgImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgMarshaller.java
new file mode 100644
index 00000000..eebabfc0
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseAlg;
+
+/**
+ * A thread safe Marshaller for {@link RequestObjectEncryptionResponseAlg} objects.
+ */
+public class RequestObjectEncryptionResponseAlgMarshaller extends AbstractMetadataValueMarshaller<RequestObjectEncryptionResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgUnmarshaller.java
new file mode 100644
index 00000000..73818263
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseAlgUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseAlg;
+
+/**
+ * A thread-safe Unmarshaller for {@link RequestObjectEncryptionResponseAlg} objects.
+ */
+public class RequestObjectEncryptionResponseAlgUnmarshaller extends AbstractMetadataValueUnmarshaller<RequestObjectEncryptionResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncBuilder.java
new file mode 100644
index 00000000..505eb382
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseEnc;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link RequestObjectEncryptionResponseEncImpl}.
+ */
+public class RequestObjectEncryptionResponseEncBuilder extends AbstractSAMLObjectBuilder<RequestObjectEncryptionResponseEnc> {
+
+ /**
+ * Constructor.
+ */
+ public RequestObjectEncryptionResponseEncBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public RequestObjectEncryptionResponseEnc buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, RequestObjectEncryptionResponseEnc.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public RequestObjectEncryptionResponseEnc buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new RequestObjectEncryptionResponseEncImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncImpl.java
new file mode 100644
index 00000000..907a1c63
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseEnc;
+
+/**
+ * Concrete implementation of {@link RequestObjectEncryptionResponseEnc}.
+ */
+public class RequestObjectEncryptionResponseEncImpl extends AbstractMetadataValueSAMLObject implements RequestObjectEncryptionResponseEnc {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected RequestObjectEncryptionResponseEncImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncMarshaller.java
new file mode 100644
index 00000000..b33d087a
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseEnc;
+
+/**
+ * A thread safe Marshaller for {@link RequestObjectEncryptionResponseEnc} objects.
+ */
+public class RequestObjectEncryptionResponseEncMarshaller extends AbstractMetadataValueMarshaller<RequestObjectEncryptionResponseEnc> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncUnmarshaller.java
new file mode 100644
index 00000000..08dbbfc5
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectEncryptionResponseEncUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectEncryptionResponseEnc;
+
+/**
+ * A thread-safe Unmarshaller for {@link RequestObjectEncryptionResponseEnc} objects.
+ */
+public class RequestObjectEncryptionResponseEncUnmarshaller extends AbstractMetadataValueUnmarshaller<RequestObjectEncryptionResponseEnc> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgBuilder.java
new file mode 100644
index 00000000..cb17f8b5
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectSignedResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link RequestObjectSignedResponseAlgImpl}.
+ */
+public class RequestObjectSignedResponseAlgBuilder extends AbstractSAMLObjectBuilder<RequestObjectSignedResponseAlg> {
+
+ /**
+ * Constructor.
+ */
+ public RequestObjectSignedResponseAlgBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public RequestObjectSignedResponseAlg buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, RequestObjectSignedResponseAlg.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public RequestObjectSignedResponseAlg buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new RequestObjectSignedResponseAlgImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgImpl.java
new file mode 100644
index 00000000..8e511bf3
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectSignedResponseAlg;
+
+/**
+ * Concrete implementation of {@link RequestObjectSignedResponseAlg}.
+ */
+public class RequestObjectSignedResponseAlgImpl extends AbstractMetadataValueSAMLObject implements RequestObjectSignedResponseAlg {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected RequestObjectSignedResponseAlgImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgMarshaller.java
new file mode 100644
index 00000000..39f82b73
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectSignedResponseAlg;
+
+/**
+ * A thread safe Marshaller for {@link RequestObjectSignedResponseAlg} objects.
+ */
+public class RequestObjectSignedResponseAlgMarshaller extends AbstractMetadataValueMarshaller<RequestObjectSignedResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgUnmarshaller.java
new file mode 100644
index 00000000..c7b88142
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestObjectSignedResponseAlgUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestObjectSignedResponseAlg;
+
+/**
+ * A thread-safe Unmarshaller for {@link RequestObjectSignedResponseAlg} objects.
+ */
+public class RequestObjectSignedResponseAlgUnmarshaller extends AbstractMetadataValueUnmarshaller<RequestObjectSignedResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriBuilder.java
new file mode 100644
index 00000000..8c4cb2d1
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link RequestUriImpl}.
+ */
+public class RequestUriBuilder extends AbstractSAMLObjectBuilder<RequestUri> {
+
+ /**
+ * Constructor.
+ */
+ public RequestUriBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public RequestUri buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, RequestUri.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public RequestUri buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new RequestUriImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriImpl.java
new file mode 100644
index 00000000..2fb9efaa
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestUri;
+
+/**
+ * Concrete implementation of {@link RequestUri}.
+ */
+public class RequestUriImpl extends AbstractMetadataValueSAMLObject implements RequestUri {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected RequestUriImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriMarshaller.java
new file mode 100644
index 00000000..e3005ff1
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestUri;
+
+/**
+ * A thread safe Marshaller for {@link RequestUri} objects.
+ */
+public class RequestUriMarshaller extends AbstractMetadataValueMarshaller<RequestUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriUnmarshaller.java
new file mode 100644
index 00000000..13ef6724
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/RequestUriUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.RequestUri;
+
+/**
+ * A thread-safe Unmarshaller for {@link RequestUri} objects.
+ */
+public class RequestUriUnmarshaller extends AbstractMetadataValueUnmarshaller<RequestUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeBuilder.java
new file mode 100644
index 00000000..62872c69
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+import net.shibboleth.idp.saml.oidc.xmlobject.ResponseType;
+
+/**
+ * Builder of {@link ResponseTypeImpl}.
+ */
+public class ResponseTypeBuilder extends AbstractSAMLObjectBuilder<ResponseType> {
+
+ /**
+ * Constructor.
+ */
+ public ResponseTypeBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public ResponseType buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, ResponseType.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public ResponseType buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new ResponseTypeImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeImpl.java
new file mode 100644
index 00000000..0b16ac70
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ResponseType;
+
+/**
+ * Concrete implementation of {@link ResponseType}.
+ */
+public class ResponseTypeImpl extends AbstractMetadataValueSAMLObject implements ResponseType {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected ResponseTypeImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeMarshaller.java
new file mode 100644
index 00000000..d89c7ee6
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ResponseType;
+
+/**
+ * A thread safe Marshaller for {@link ResponseType} objects.
+ */
+public class ResponseTypeMarshaller extends AbstractMetadataValueMarshaller<ResponseType> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeUnmarshaller.java
new file mode 100644
index 00000000..afd265b9
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ResponseTypeUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.ResponseType;
+
+/**
+ * A thread-safe Unmarshaller for {@link ResponseType} objects.
+ */
+public class ResponseTypeUnmarshaller extends AbstractMetadataValueUnmarshaller<ResponseType> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeBuilder.java
new file mode 100644
index 00000000..49cb1f0c
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+import net.shibboleth.idp.saml.oidc.xmlobject.Scope;
+
+/**
+ * Builder of {@link ResponseTypeImpl}.
+ */
+public class ScopeBuilder extends AbstractSAMLObjectBuilder<Scope> {
+
+ /**
+ * Constructor.
+ */
+ public ScopeBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public Scope buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, Scope.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public Scope buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new ScopeImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeImpl.java
new file mode 100644
index 00000000..b4ebb1b6
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.Scope;
+
+/**
+ * Concrete implementation of {@link Scope}.
+ */
+public class ScopeImpl extends AbstractMetadataValueSAMLObject implements Scope {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected ScopeImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeMarshaller.java
new file mode 100644
index 00000000..581ae19e
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.Scope;
+
+/**
+ * A thread safe Marshaller for {@link Scope} objects.
+ */
+public class ScopeMarshaller extends AbstractMetadataValueMarshaller<Scope> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeUnmarshaller.java
new file mode 100644
index 00000000..dbf2b64f
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/ScopeUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.Scope;
+
+/**
+ * A thread-safe Unmarshaller for {@link Scope} objects.
+ */
+public class ScopeUnmarshaller extends AbstractMetadataValueUnmarshaller<Scope> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriBuilder.java
new file mode 100644
index 00000000..b0a29274
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SectorIdentifierUri;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link SectorIdentifierUriImpl}.
+ */
+public class SectorIdentifierUriBuilder extends AbstractSAMLObjectBuilder<SectorIdentifierUri> {
+
+ /**
+ * Constructor.
+ */
+ public SectorIdentifierUriBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public SectorIdentifierUri buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, SectorIdentifierUri.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public SectorIdentifierUri buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new SectorIdentifierUriImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriImpl.java
new file mode 100644
index 00000000..24bf5977
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SectorIdentifierUri;
+
+/**
+ * Concrete implementation of {@link SectorIdentifierUri}.
+ */
+public class SectorIdentifierUriImpl extends AbstractMetadataValueSAMLObject implements SectorIdentifierUri {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected SectorIdentifierUriImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriMarshaller.java
new file mode 100644
index 00000000..98ad9fff
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SectorIdentifierUri;
+
+/**
+ * A thread safe Marshaller for {@link SectorIdentifierUri} objects.
+ */
+public class SectorIdentifierUriMarshaller extends AbstractMetadataValueMarshaller<SectorIdentifierUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriUnmarshaller.java
new file mode 100644
index 00000000..64145b9d
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SectorIdentifierUriUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SectorIdentifierUri;
+
+/**
+ * A thread-safe Unmarshaller for {@link SectorIdentifierUri} objects.
+ */
+public class SectorIdentifierUriUnmarshaller extends AbstractMetadataValueUnmarshaller<SectorIdentifierUri> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdBuilder.java
new file mode 100644
index 00000000..ec73489f
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareId;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link SoftwareIdImpl}.
+ */
+public class SoftwareIdBuilder extends AbstractSAMLObjectBuilder<SoftwareId> {
+
+ /**
+ * Constructor.
+ */
+ public SoftwareIdBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public SoftwareId buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, SoftwareId.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public SoftwareId buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new SoftwareIdImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdImpl.java
new file mode 100644
index 00000000..d635f82b
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareId;
+
+/**
+ * Concrete implementation of {@link SoftwareId}.
+ */
+public class SoftwareIdImpl extends AbstractMetadataValueSAMLObject implements SoftwareId {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected SoftwareIdImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdMarshaller.java
new file mode 100644
index 00000000..74e2b383
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareId;
+
+/**
+ * A thread safe Marshaller for {@link SoftwareId} objects.
+ */
+public class SoftwareIdMarshaller extends AbstractMetadataValueMarshaller<SoftwareId> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdUnmarshaller.java
new file mode 100644
index 00000000..887cfd27
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareIdUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareId;
+
+/**
+ * A thread-safe Unmarshaller for {@link SoftwareId} objects.
+ */
+public class SoftwareIdUnmarshaller extends AbstractMetadataValueUnmarshaller<SoftwareId> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionBuilder.java
new file mode 100644
index 00000000..32e42362
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareVersion;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link SoftwareVersionImpl}.
+ */
+public class SoftwareVersionBuilder extends AbstractSAMLObjectBuilder<SoftwareVersion> {
+
+ /**
+ * Constructor.
+ */
+ public SoftwareVersionBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public SoftwareVersion buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, SoftwareVersion.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public SoftwareVersion buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new SoftwareVersionImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionImpl.java
new file mode 100644
index 00000000..e3616e35
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareVersion;
+
+/**
+ * Concrete implementation of {@link SoftwareVersion}.
+ */
+public class SoftwareVersionImpl extends AbstractMetadataValueSAMLObject implements SoftwareVersion {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected SoftwareVersionImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionMarshaller.java
new file mode 100644
index 00000000..d93958b0
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareVersion;
+
+/**
+ * A thread safe Marshaller for {@link SoftwareVersion} objects.
+ */
+public class SoftwareVersionMarshaller extends AbstractMetadataValueMarshaller<SoftwareVersion> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionUnmarshaller.java
new file mode 100644
index 00000000..35c51523
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SoftwareVersionUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SoftwareVersion;
+
+/**
+ * A thread-safe Unmarshaller for {@link SoftwareVersion} objects.
+ */
+public class SoftwareVersionUnmarshaller extends AbstractMetadataValueUnmarshaller<SoftwareVersion> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeBuilder.java
new file mode 100644
index 00000000..5b2a9f7a
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SubjectType;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link SubjectTypeImpl}.
+ */
+public class SubjectTypeBuilder extends AbstractSAMLObjectBuilder<SubjectType> {
+
+ /**
+ * Constructor.
+ */
+ public SubjectTypeBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public SubjectType buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, SubjectType.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public SubjectType buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new SubjectTypeImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeImpl.java
new file mode 100644
index 00000000..2d562fe6
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SubjectType;
+
+/**
+ * Concrete implementation of {@link SubjectType}.
+ */
+public class SubjectTypeImpl extends AbstractMetadataValueSAMLObject implements SubjectType {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected SubjectTypeImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeMarshaller.java
new file mode 100644
index 00000000..50bf6130
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SubjectType;
+
+/**
+ * A thread safe Marshaller for {@link SubjectType} objects.
+ */
+public class SubjectTypeMarshaller extends AbstractMetadataValueMarshaller<SubjectType> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeUnmarshaller.java
new file mode 100644
index 00000000..f146e19a
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/SubjectTypeUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.SubjectType;
+
+/**
+ * A thread-safe Unmarshaller for {@link SubjectType} objects.
+ */
+public class SubjectTypeUnmarshaller extends AbstractMetadataValueUnmarshaller<SubjectType> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodBuilder.java
new file mode 100644
index 00000000..ebc06b82
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthMethod;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link TokenEndpointAuthMethodImpl}.
+ */
+public class TokenEndpointAuthMethodBuilder extends AbstractSAMLObjectBuilder<TokenEndpointAuthMethod> {
+
+ /**
+ * Constructor.
+ */
+ public TokenEndpointAuthMethodBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public TokenEndpointAuthMethod buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, TokenEndpointAuthMethod.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public TokenEndpointAuthMethod buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new TokenEndpointAuthMethodImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodImpl.java
new file mode 100644
index 00000000..30bab0f1
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthMethod;
+
+/**
+ * Concrete implementation of {@link TokenEndpointAuthMethod}.
+ */
+public class TokenEndpointAuthMethodImpl extends AbstractMetadataValueSAMLObject implements TokenEndpointAuthMethod {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected TokenEndpointAuthMethodImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodMarshaller.java
new file mode 100644
index 00000000..2e4151c3
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthMethod;
+
+/**
+ * A thread safe Marshaller for {@link TokenEndpointAuthMethod} objects.
+ */
+public class TokenEndpointAuthMethodMarshaller extends AbstractMetadataValueMarshaller<TokenEndpointAuthMethod> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodUnmarshaller.java
new file mode 100644
index 00000000..1e378c66
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthMethodUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthMethod;
+
+/**
+ * A thread-safe Unmarshaller for {@link TokenEndpointAuthMethod} objects.
+ */
+public class TokenEndpointAuthMethodUnmarshaller extends AbstractMetadataValueUnmarshaller<TokenEndpointAuthMethod> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgBuilder.java
new file mode 100644
index 00000000..3928b2e0
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthSigningAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link TokenEndpointAuthSigningAlgImpl}.
+ */
+public class TokenEndpointAuthSigningAlgBuilder extends AbstractSAMLObjectBuilder<TokenEndpointAuthSigningAlg> {
+
+ /**
+ * Constructor.
+ */
+ public TokenEndpointAuthSigningAlgBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public TokenEndpointAuthSigningAlg buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, TokenEndpointAuthSigningAlg.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public TokenEndpointAuthSigningAlg buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new TokenEndpointAuthSigningAlgImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgImpl.java
new file mode 100644
index 00000000..89abe9b5
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthSigningAlg;
+
+/**
+ * Concrete implementation of {@link TokenEndpointAuthSigningAlg}.
+ */
+public class TokenEndpointAuthSigningAlgImpl extends AbstractMetadataValueSAMLObject implements TokenEndpointAuthSigningAlg {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected TokenEndpointAuthSigningAlgImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgMarshaller.java
new file mode 100644
index 00000000..7d6072a7
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthSigningAlg;
+
+/**
+ * A thread safe Marshaller for {@link TokenEndpointAuthSigningAlg} objects.
+ */
+public class TokenEndpointAuthSigningAlgMarshaller extends AbstractMetadataValueMarshaller<TokenEndpointAuthSigningAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgUnmarshaller.java
new file mode 100644
index 00000000..73f195e1
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/TokenEndpointAuthSigningAlgUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.TokenEndpointAuthSigningAlg;
+
+/**
+ * A thread-safe Unmarshaller for {@link TokenEndpointAuthSigningAlg} objects.
+ */
+public class TokenEndpointAuthSigningAlgUnmarshaller extends AbstractMetadataValueUnmarshaller<TokenEndpointAuthSigningAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgBuilder.java
new file mode 100644
index 00000000..8b0072fc
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link UserInfoEncryptionResponseAlgImpl}.
+ */
+public class UserInfoEncryptionResponseAlgBuilder extends AbstractSAMLObjectBuilder<UserInfoEncryptionResponseAlg> {
+
+ /**
+ * Constructor.
+ */
+ public UserInfoEncryptionResponseAlgBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public UserInfoEncryptionResponseAlg buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, UserInfoEncryptionResponseAlg.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public UserInfoEncryptionResponseAlg buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new UserInfoEncryptionResponseAlgImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgImpl.java
new file mode 100644
index 00000000..8ca7fcf4
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseAlg;
+
+/**
+ * Concrete implementation of {@link UserInfoEncryptionResponseAlg}.
+ */
+public class UserInfoEncryptionResponseAlgImpl extends AbstractMetadataValueSAMLObject implements UserInfoEncryptionResponseAlg {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected UserInfoEncryptionResponseAlgImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgMarshaller.java
new file mode 100644
index 00000000..02179a73
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseAlg;
+
+/**
+ * A thread safe Marshaller for {@link UserInfoEncryptionResponseAlg} objects.
+ */
+public class UserInfoEncryptionResponseAlgMarshaller extends AbstractMetadataValueMarshaller<UserInfoEncryptionResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgUnmarshaller.java
new file mode 100644
index 00000000..00a1472a
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseAlgUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseAlg;
+
+/**
+ * A thread-safe Unmarshaller for {@link UserInfoEncryptionResponseAlg} objects.
+ */
+public class UserInfoEncryptionResponseAlgUnmarshaller extends AbstractMetadataValueUnmarshaller<UserInfoEncryptionResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncBuilder.java
new file mode 100644
index 00000000..56103568
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseEnc;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link UserInfoEncryptionResponseEncImpl}.
+ */
+public class UserInfoEncryptionResponseEncBuilder extends AbstractSAMLObjectBuilder<UserInfoEncryptionResponseEnc> {
+
+ /**
+ * Constructor.
+ */
+ public UserInfoEncryptionResponseEncBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public UserInfoEncryptionResponseEnc buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, UserInfoEncryptionResponseEnc.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public UserInfoEncryptionResponseEnc buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new UserInfoEncryptionResponseEncImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncImpl.java
new file mode 100644
index 00000000..6aa56124
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseEnc;
+
+/**
+ * Concrete implementation of {@link UserInfoEncryptionResponseEnc}.
+ */
+public class UserInfoEncryptionResponseEncImpl extends AbstractMetadataValueSAMLObject implements UserInfoEncryptionResponseEnc {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected UserInfoEncryptionResponseEncImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncMarshaller.java
new file mode 100644
index 00000000..2dd468ca
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseEnc;
+
+/**
+ * A thread safe Marshaller for {@link UserInfoEncryptionResponseEnc} objects.
+ */
+public class UserInfoEncryptionResponseEncMarshaller extends AbstractMetadataValueMarshaller<UserInfoEncryptionResponseEnc> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncUnmarshaller.java
new file mode 100644
index 00000000..a7cff36c
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoEncryptionResponseEncUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoEncryptionResponseEnc;
+
+/**
+ * A thread-safe Unmarshaller for {@link UserInfoEncryptionResponseEnc} objects.
+ */
+public class UserInfoEncryptionResponseEncUnmarshaller extends AbstractMetadataValueUnmarshaller<UserInfoEncryptionResponseEnc> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgBuilder.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgBuilder.java
new file mode 100644
index 00000000..7f7d9d75
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgBuilder.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoSignedResponseAlg;
+import net.shibboleth.idp.saml.oidc.xmlobject.Constants;
+
+/**
+ * Builder of {@link UserInfoSignedResponseAlgImpl}.
+ */
+public class UserInfoSignedResponseAlgBuilder extends AbstractSAMLObjectBuilder<UserInfoSignedResponseAlg> {
+
+ /**
+ * Constructor.
+ */
+ public UserInfoSignedResponseAlgBuilder() {
+
+ }
+
+ /** {@inheritDoc} */
+ public UserInfoSignedResponseAlg buildObject() {
+ return buildObject(Constants.SAML20MDOIDCMD_NS, UserInfoSignedResponseAlg.DEFAULT_ELEMENT_LOCAL_NAME,
+ Constants.SAML20MDOIDCMD_PREFIX);
+ }
+
+ /** {@inheritDoc} */
+ public UserInfoSignedResponseAlg buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+ return new UserInfoSignedResponseAlgImpl(namespaceURI, localName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgImpl.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgImpl.java
new file mode 100644
index 00000000..5713557c
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoSignedResponseAlg;
+
+/**
+ * Concrete implementation of {@link UserInfoSignedResponseAlg}.
+ */
+public class UserInfoSignedResponseAlgImpl extends AbstractMetadataValueSAMLObject implements UserInfoSignedResponseAlg {
+
+ /**
+ * Constructor.
+ *
+ * @param namespaceURI the namespace the element is in
+ * @param elementLocalName the local name of the XML element this Object represents
+ * @param namespacePrefix the prefix for the given namespace
+ */
+ protected UserInfoSignedResponseAlgImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ super(namespaceURI, elementLocalName, namespacePrefix);
+ }
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgMarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgMarshaller.java
new file mode 100644
index 00000000..82d9b471
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgMarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoSignedResponseAlg;
+
+/**
+ * A thread safe Marshaller for {@link UserInfoSignedResponseAlg} objects.
+ */
+public class UserInfoSignedResponseAlgMarshaller extends AbstractMetadataValueMarshaller<UserInfoSignedResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgUnmarshaller.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgUnmarshaller.java
new file mode 100644
index 00000000..535f5dc7
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/UserInfoSignedResponseAlgUnmarshaller.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import net.shibboleth.idp.saml.oidc.xmlobject.UserInfoSignedResponseAlg;
+
+/**
+ * A thread-safe Unmarshaller for {@link UserInfoSignedResponseAlg} objects.
+ */
+public class UserInfoSignedResponseAlgUnmarshaller extends AbstractMetadataValueUnmarshaller<UserInfoSignedResponseAlg> {
+
+}
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/XMLObjectProviderInitializer.java b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/XMLObjectProviderInitializer.java
new file mode 100644
index 00000000..d0a99de9
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/java/net/shibboleth/idp/saml/oidc/xmlobject/impl/XMLObjectProviderInitializer.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2017 - 2020, GÉANT
+ *
+ * Licensed under the Apache License, Version 2.0 (the “License”); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.saml.oidc.xmlobject.impl;
+
+import org.opensaml.core.xml.config.AbstractXMLObjectProviderInitializer;
+
+/**
+ * XMLObject provider initializer for the metadata extension.
+ */
+public class XMLObjectProviderInitializer extends AbstractXMLObjectProviderInitializer {
+
+ /** Config resources. */
+ private static String[] configs = {
+ "/saml2-metadata-oidcmd-config.xml",
+ };
+
+ /** {@inheritDoc} */
+ @Override
+ protected String[] getConfigResources() {
+ return configs;
+ }
+
+}
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/services/org.opensaml.core.config.Initializer b/idp-oidc-extension-impl/src/main/resources/META-INF/services/org.opensaml.core.config.Initializer
new file mode 100644
index 00000000..ef3a2676
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/services/org.opensaml.core.config.Initializer
@@ -0,0 +1 @@
+net.shibboleth.idp.saml.oidc.xmlobject.impl.XMLObjectProviderInitializer
\ No newline at end of file
diff --git a/idp-oidc-extension-impl/src/main/resources/saml2-metadata-oidcmd-config.xml b/idp-oidc-extension-impl/src/main/resources/saml2-metadata-oidcmd-config.xml
new file mode 100644
index 00000000..f174d5ad
--- /dev/null
+++ b/idp-oidc-extension-impl/src/main/resources/saml2-metadata-oidcmd-config.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XMLTooling xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oidcmd="urn:mace:shibboleth:metadata:oidc:1.0" xmlns="http://www.opensaml.org/xmltooling-config" xsi:schemaLocation="http://www.opensaml.org/xmltooling-config ../../src/schema/xmltooling-config.xsd">
+
+ <!-- SAML 2.0 Protocol Third-party Object providers -->
+ <ObjectProviders>
+
+ <ObjectProvider qualifiedName="oidcmd:ApplicationType">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ApplicationTypeBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ApplicationTypeMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ApplicationTypeUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:ClientUri">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ClientUriBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ClientUriMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ClientUriUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:DefaultAcrValue">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.DefaultAcrValueBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.DefaultAcrValueMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.DefaultAcrValueUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:GrantType">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.GrantTypeBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.GrantTypeMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.GrantTypeUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:IdTokenEncryptionResponseAlg">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.IdTokenEncryptionResponseAlgBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.IdTokenEncryptionResponseAlgMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.IdTokenEncryptionResponseAlgUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:IdTokenEncryptionResponseEnc">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.IdTokenEncryptionResponseEncBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.IdTokenEncryptionResponseEncMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.IdTokenEncryptionResponseEncUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:IdTokenSignedResponseAlg">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.IdTokenSignedResponseAlgBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.IdTokenSignedResponseAlgMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.IdTokenSignedResponseAlgUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:InitiateLoginUri">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.InitiateLoginUriBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.InitiateLoginUriMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.InitiateLoginUriUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:JwksUri">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.JwksUriBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.JwksUriMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.JwksUriUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:OAuthRPRoleDescriptorType">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.OAuthRPRoleDescriptorTypeBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.OAuthRPRoleDescriptorTypeMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.OAuthRPRoleDescriptorTypeUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:PostLogoutRedirectUri">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.PostLogoutRedirectUriBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.PostLogoutRedirectUriMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.PostLogoutRedirectUriUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:RedirectUri">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RedirectUriBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RedirectUriMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RedirectUriUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:RequestObjectEncryptionResponseAlg">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestObjectEncryptionResponseAlgBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestObjectEncryptionResponseAlgMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestObjectEncryptionResponseAlgUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:RequestObjectEncryptionResponseEnc">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestObjectEncryptionResponseEncBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestObjectEncryptionResponseEncMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestObjectEncryptionResponseEncUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:RequestObjectSignedResponseAlg">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestObjectSignedResponseAlgBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestObjectSignedResponseAlgMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestObjectSignedResponseAlgUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:RequestUri">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestUriBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestUriMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.RequestUriUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:ResponseType">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ResponseTypeBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ResponseTypeMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ResponseTypeUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:Scope">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ScopeBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ScopeMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.ScopeUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:SectorIdentifierUri">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SectorIdentifierUriBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SectorIdentifierUriMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SectorIdentifierUriUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:SoftwareId">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SoftwareIdBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SoftwareIdMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SoftwareIdUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:SoftwareVersion">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SoftwareVersionBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SoftwareVersionMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SoftwareVersionUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:SubjectType">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SubjectTypeBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SubjectTypeMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.SubjectTypeUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:TokenEndpointAuthMethod">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.TokenEndpointAuthMethodBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.TokenEndpointAuthMethodMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.TokenEndpointAuthMethodUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:TokenEndpointAuthSigningAlg">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.TokenEndpointAuthSigningAlgBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.TokenEndpointAuthSigningAlgMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.TokenEndpointAuthSigningAlgUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:UserInfoEncryptionResponseAlg">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.UserInfoEncryptionResponseAlgBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.UserInfoEncryptionResponseAlgMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.UserInfoEncryptionResponseAlgUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:UserInfoEncryptionResponseEnc">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.UserInfoEncryptionResponseEncBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.UserInfoEncryptionResponseEncMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.UserInfoEncryptionResponseEncUnmarshaller"/>
+ </ObjectProvider>
+
+ <ObjectProvider qualifiedName="oidcmd:UserInfoSignedResponseAlg">
+ <BuilderClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.UserInfoSignedResponseAlgBuilder"/>
+ <MarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.UserInfoSignedResponseAlgMarshaller"/>
+ <UnmarshallingClass className="net.shibboleth.idp.saml.oidc.xmlobject.impl.UserInfoSignedResponseAlgUnmarshaller"/>
+ </ObjectProvider>
+
+ </ObjectProviders>
+</XMLTooling>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list