Skip to content

Commit

Permalink
Merged in SHIBUI-2165 (pull request #539)
Browse files Browse the repository at this point in the history
SHIBUI-2165

Approved-by: Bill Smith
  • Loading branch information
Jonathan Johnson committed Oct 14, 2021
2 parents 402e6dd + 74fae53 commit c401c60
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,14 @@ public abstract class AbstractAuditable implements Auditable {

@CreationTimestamp
@CreatedDate
@Column(nullable = false, updatable = false)
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS")
@Column(nullable = false, updatable = false, columnDefinition = "DATETIME(9)")
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS")
private LocalDateTime createdDate;

@UpdateTimestamp
@LastModifiedDate
@Column(nullable = false)
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS")
@Column(nullable = false, columnDefinition = "DATETIME(9)")
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS")
private LocalDateTime modifiedDate;

@Column(name = "created_by")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class EntityDescriptorRepresentation implements Serializable {
private static final long serialVersionUID = 7753435553892353966L;
private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS");

private List<AssertionConsumerServiceRepresentation> assertionConsumerServices;

Expand Down Expand Up @@ -98,7 +100,7 @@ public String getCreatedBy() {
}

public String getCreatedDate() {
return createdDate != null ? createdDate.toString() : null;
return createdDate != null ? formatter.format(createdDate) : null;
}

public String getEntityId() {
Expand All @@ -125,7 +127,7 @@ public MduiRepresentation getMdui() {
}

public String getModifiedDate() {
return modifiedDate != null ? modifiedDate.toString() : null;
return modifiedDate != null ? formatter.format(modifiedDate) : null;
}

@JsonIgnore
Expand All @@ -134,7 +136,6 @@ public LocalDateTime getModifiedDateAsDate() {
return modifiedDate != null ? modifiedDate : createdDate != null ? createdDate : LocalDateTime.now();
}


public OrganizationRepresentation getOrganization() {
return organization;
}
Expand Down Expand Up @@ -245,4 +246,4 @@ public void setServiceProviderSsoDescriptor(ServiceProviderSsoDescriptorRepresen
public void setVersion(int version) {
this.version = version;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package edu.internet2.tier.shibboleth.admin.ui
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer
import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration
Expand All @@ -23,6 +24,10 @@ import org.springframework.context.annotation.ComponentScan
import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.Import
import org.springframework.context.annotation.Primary
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL

Expand Down Expand Up @@ -68,10 +73,12 @@ class BaseDataJpaTestConfiguration {

@Bean
ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper()
JavaTimeModule module = new JavaTimeModule()
LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS"))
module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer)
ObjectMapper mapper = Jackson2ObjectMapperBuilder.json().modules(module).featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build()
mapper.enable(SerializationFeature.INDENT_OUTPUT)
mapper.setSerializationInclusion(NON_NULL)
mapper.registerModule(new JavaTimeModule())
mapper.registerModule(new StringTrimModule())
return mapper
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,21 @@
package edu.internet2.tier.shibboleth.admin.ui.security.controller

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer
import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest
import edu.internet2.tier.shibboleth.admin.ui.controller.support.RestControllersSupport
import edu.internet2.tier.shibboleth.admin.ui.security.model.Group
import edu.internet2.tier.shibboleth.admin.ui.security.model.User
import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin
import groovy.json.JsonOutput
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.TestConfiguration
import org.springframework.context.annotation.Bean
import org.springframework.http.MediaType
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder
import org.springframework.test.annotation.Rollback
import org.springframework.test.context.ContextConfiguration
import org.springframework.test.web.servlet.MockMvc
import org.springframework.test.web.servlet.setup.MockMvcBuilders
import org.springframework.transaction.annotation.Transactional
import org.springframework.web.client.HttpClientErrorException
import org.springframework.web.util.NestedServletException

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch
Expand All @@ -34,7 +24,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status

@ContextConfiguration(classes=[UCILocalConfig])
@Rollback
class UsersControllerIntegrationTests extends AbstractBaseDataJpaTest {
@Autowired
Expand Down Expand Up @@ -311,16 +300,4 @@ class UsersControllerIntegrationTests extends AbstractBaseDataJpaTest {
then:
result.andExpect(status().isNotFound())
}

@TestConfiguration
private static class UCILocalConfig {
@Bean
ObjectMapper objectMapper() {
JavaTimeModule module = new JavaTimeModule()
LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS"))
module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer)

return Jackson2ObjectMapperBuilder.json().modules(module).featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build()
}
}
}
}

0 comments on commit c401c60

Please sign in to comment.