Skip to content

Commit

Permalink
Merge branch 'feature/shibui-2380' of bitbucket.org:unicon/shib-idp-u…
Browse files Browse the repository at this point in the history
…i into feature/shibui-2380
  • Loading branch information
Bill Smith committed Oct 25, 2022
2 parents 5ce0a6e + a525bea commit 5b0c96b
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,11 @@ public class EntityDescriptorProjection {
boolean serviceEnabled;
@Getter
String idOfOwner;

EntityDescriptorProtocol protocol;

public EntityDescriptorProjection(String entityID, String resourceId, String serviceProviderName, String createdBy,
LocalDateTime createdDate, boolean serviceEnabled, String idOfOwner, String protocol) {
LocalDateTime createdDate, boolean serviceEnabled, String idOfOwner, EntityDescriptorProtocol edp) {
this.entityID = entityID;
this.entityId = entityID;
this.resourceId = resourceId;
Expand All @@ -39,7 +40,7 @@ public EntityDescriptorProjection(String entityID, String resourceId, String ser
this.createdDate = createdDate;
this.serviceEnabled = serviceEnabled;
this.idOfOwner = idOfOwner;
setProtocol(protocol);
this.protocol = edp == null ? EntityDescriptorProtocol.SAML : edp;
}

public String getEntityID() {
Expand All @@ -53,9 +54,4 @@ public String getEntityId() {
public EntityDescriptorProtocol getProtocol() {
return protocol == null ? EntityDescriptorProtocol.SAML : protocol;
}

public void setProtocol(String index) {
int i = Integer.valueOf(index);
protocol = EntityDescriptorProtocol.values()[i];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

Expand All @@ -14,12 +15,12 @@
*/
public interface EntityDescriptorRepository extends JpaRepository<EntityDescriptor, Long> {
@Query(value = "select new edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorProjection(e.entityID, e.resourceId, e.serviceProviderName, e.createdBy, " +
"e.createdDate, e.serviceEnabled, e.idOfOwner, case e.protocol when null then 'SAML' else e.protocol end ) " +
"e.createdDate, e.serviceEnabled, e.idOfOwner, e.protocol) " +
"from EntityDescriptor e")
List<EntityDescriptorProjection> findAllBy();

@Query(value = "select new edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorProjection(e.entityID, e.resourceId, e.serviceProviderName, e.createdBy, " +
"e.createdDate, e.serviceEnabled, e.idOfOwner, case e.protocol when null then 'SAML' else e.protocol end ) " +
"e.createdDate, e.serviceEnabled, e.idOfOwner, e.protocol) " +
"from EntityDescriptor e " +
"where e.idOfOwner = :ownerId")
List<EntityDescriptorProjection> findAllByIdOfOwner(@Param("ownerId") String ownerId);
Expand Down
2 changes: 1 addition & 1 deletion backend/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ custom:
- name: IDTokenLifetimeBrowser
attributeFriendlyName: IDTokenLifetimeBrowser
displayName: label.IDTokenLifetime.browser
helpText: tooltip.IDTokenLifetime.broswer
helpText: tooltip.IDTokenLifetime.browser
displayType: string
defaultValue: PT1H
attributeName: http://shibboleth.net/ns/profiles/oidc/sso/browser/IDTokenLifetime
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ package edu.internet2.tier.shibboleth.admin.ui.repository

import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest
import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor
import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptorProtocol
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects
import edu.internet2.tier.shibboleth.admin.ui.security.model.Group
import edu.internet2.tier.shibboleth.admin.ui.service.CustomEntityAttributesDefinitionServiceImpl
import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorService
import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin
import org.apache.lucene.analysis.Analyzer
import org.apache.lucene.analysis.en.EnglishAnalyzer
import org.opensaml.saml.metadata.resolver.MetadataResolver
Expand Down Expand Up @@ -57,13 +59,22 @@ class EntityDescriptorRepositoryTest extends AbstractBaseDataJpaTest {
noExceptionThrown()
}

@WithMockAdmin
def "SHIBUI-1772"() {
when:
def input = openSamlObjects.unmarshalFromXml(this.class.getResource('/metadata/SHIBUI-1772.xml').bytes) as EntityDescriptor
input.protocol = null // This mimics an upgrade where older entries wont have a protocol in the db
entityDescriptorRepository.save(input)

then:
noExceptionThrown()

when:
List<EntityDescriptorProjection> projections = entityDescriptorRepository.findAllBy()

then:
projections.size() == 1
projections.get(0).getProtocol() == EntityDescriptorProtocol.SAML
}

def "SHIBUI-1849 - extend data model for ownership"() {
Expand Down

0 comments on commit 5b0c96b

Please sign in to comment.