Skip to content

Commit

Permalink
SHIBUI-2380
Browse files Browse the repository at this point in the history
Incremental commit:
  • Loading branch information
chasegawa committed Sep 20, 2022
1 parent 7afc474 commit fcef776
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ public class JPAEntityDescriptorServiceImpl implements EntityDescriptorService {
private EntityDescriptor buildDescriptorFromRepresentation(final EntityDescriptor ed, final EntityDescriptorRepresentation representation) {
ed.setEntityID(representation.getEntityId());
ed.setIdOfOwner(representation.getIdOfOwner());
ed.setProtocol(representation.getProtocol()); // SAML vs OIDC

setupSPSSODescriptor(ed, representation);
ed.setServiceProviderName(representation.getServiceProviderName());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package edu.internet2.tier.shibboleth.admin.util;

import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.getEntityAttributes;
import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.getOptionalEntityAttributes;
import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.getSPSSODescriptorFromEntityDescriptor;

import java.util.Arrays;
import java.util.Collections;
import java.util.Optional;
import java.util.stream.Collectors;

import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptorProtocol;
import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.ServiceProviderSsoDescriptorRepresentation;
import lombok.NonNull;
import org.opensaml.xmlsec.signature.KeyInfo;
import org.opensaml.xmlsec.signature.X509Certificate;
import org.opensaml.xmlsec.signature.X509Data;
Expand Down Expand Up @@ -280,7 +282,7 @@ public static void setupSecurity(EntityDescriptor ed, EntityDescriptorRepresenta
}

public static void setupSPSSODescriptor(EntityDescriptor ed, EntityDescriptorRepresentation representation) {
if (representation.getServiceProviderSsoDescriptor() != null) {
if (representation.getServiceProviderSsoDescriptor() != null || representation.getProtocol() == EntityDescriptorProtocol.OIDC) {
SPSSODescriptor spssoDescriptor = getSPSSODescriptorFromEntityDescriptor(ed);

spssoDescriptor.setSupportedProtocols(Collections.EMPTY_LIST);
Expand All @@ -300,11 +302,21 @@ public static void setupSPSSODescriptor(EntityDescriptor ed, EntityDescriptorRep
spssoDescriptor.getNameIDFormats().add(nameIDFormat);
}
}

if (representation.getProtocol() == EntityDescriptorProtocol.OIDC) {
spssoDescriptor.setExtensions(buildOidcExtensionsFromRepresentation(representation.getServiceProviderSsoDescriptor(false)));
}
} else {
ed.setRoleDescriptors(null);
}
}


private static Extensions buildOidcExtensionsFromRepresentation(@NonNull ServiceProviderSsoDescriptorRepresentation representation) {
Extensions result = new Extensions();

return result;
}

public static void setupUIInfo(EntityDescriptor ed, EntityDescriptorRepresentation representation) {
if (representation.getMdui() != null) {
// TODO: check if we need more than a naive implementation
Expand Down

0 comments on commit fcef776

Please sign in to comment.