Skip to content

Commit

Permalink
Refactor data class field names to match the desired serialized JSON
Browse files Browse the repository at this point in the history
keys
- the jackson lib in Spring Boot 2.2.1 serializes booleans like:
isCertificateAuthority => certificate_authority
- but this behavior will be changed in Spring Boot 2.2.4's jackson lib:
FasterXML/jackson-module-kotlin#80
- this commit makes the code work for both current & future versions of
jackson lib
  • Loading branch information
Peter Chen committed May 4, 2020
1 parent ca15216 commit f0a7a46
Show file tree
Hide file tree
Showing 12 changed files with 50 additions and 50 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class DefaultCertificatesHandler(
val credentialValue = credentialGenerator
.generate(generateRequest) as CertificateCredentialValue

credentialValue.isTransitional = request.isTransitional
credentialValue.transitional = request.isTransitional

val credentialVersion = certificateService
.save(
Expand Down Expand Up @@ -145,7 +145,7 @@ class DefaultCertificatesHandler(
checkPermissionsByUuid(certificateId, WRITE)

val certificateCredentialValue = requestBody.value
certificateCredentialValue?.isTransitional = requestBody.isTransitional
certificateCredentialValue?.transitional = requestBody.isTransitional
val credentialVersion = certificateService.set(
UUID.fromString(certificateId),
certificateCredentialValue
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,10 @@ class DefaultCredentialsHandler(

val certificateReader = CertificateReader(certificateValue?.certificate)
if (certificateReader.isCa) {
setRequest.certificateValue?.isCertificateAuthority = true
setRequest.certificateValue?.certificateAuthority = true
if (caName == null && certificateReader.isSelfSigned) {
setRequest.certificateValue?.caName = setRequest.name
setRequest.certificateValue?.isSelfSigned = true
setRequest.certificateValue?.selfSigned = true
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -320,9 +320,9 @@ class RemoteCredentialsHandler(
"ca_name" to certificateCredentialValue.caName,
"certificate" to certificateCredentialValue.certificate,
"private_key" to certificateCredentialValue.privateKey,
"transitional" to certificateCredentialValue.isTransitional,
"certificate_authority" to certificateCredentialValue.isCertificateAuthority,
"self_signed" to certificateCredentialValue.isSelfSigned,
"transitional" to certificateCredentialValue.transitional,
"certificate_authority" to certificateCredentialValue.certificateAuthority,
"self_signed" to certificateCredentialValue.selfSigned,
"generated" to certificateCredentialValue.generated

))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ class ManagementController(private val managementService: ManagementService) {
@ResponseStatus(HttpStatus.OK)
fun updateManagementRegistry(@RequestBody management: Management): Management {

managementService.toggleReadOnlyMode(management.isReadOnlyMode)
managementService.toggleReadOnlyMode(management.readOnlyMode)

LOGGER.info("Setting read only mode to " + management.isReadOnlyMode)
LOGGER.info("Setting read only mode to " + management.readOnlyMode)

return management
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ class CertificateCredentialValue : CredentialValue {
@JsonIgnore
var trustedCa: String? = null

var isTransitional: Boolean = false
var isCertificateAuthority: Boolean = false
var isSelfSigned: Boolean = false
var transitional: Boolean = false
var certificateAuthority: Boolean = false
var selfSigned: Boolean = false
@JsonInclude(Include.NON_NULL)
var generated: Boolean? = null

Expand Down Expand Up @@ -91,9 +91,9 @@ class CertificateCredentialValue : CredentialValue {
this.trustedCa = trustedCa
this.certificate = certificate
this.privateKey = privateKey
this.isTransitional = transitional
this.isCertificateAuthority = certificateAuthority
this.isSelfSigned = selfSigned
this.transitional = transitional
this.certificateAuthority = certificateAuthority
this.selfSigned = selfSigned
this.generated = generated
this.caName = caName
}
Expand All @@ -106,16 +106,16 @@ class CertificateCredentialValue : CredentialValue {
return false
}
val that = o as CertificateCredentialValue?
return isTransitional == that!!.isTransitional &&
isCertificateAuthority == that.isCertificateAuthority &&
isSelfSigned == that.isSelfSigned &&
return transitional == that!!.transitional &&
certificateAuthority == that.certificateAuthority &&
selfSigned == that.selfSigned &&
ca == that.ca &&
certificate == that.certificate &&
privateKey == that.privateKey &&
this.caName == that.caName
}

override fun hashCode(): Int {
return Objects.hash(ca, certificate, privateKey, this.caName, isTransitional, isCertificateAuthority, isSelfSigned)
return Objects.hash(ca, certificate, privateKey, this.caName, transitional, certificateAuthority, selfSigned)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,11 @@ class CertificateCredentialVersion(delegate: CertificateCredentialVersionData) :
this.privateKey = certificate.privateKey
this.caName = certificate.caName
this.certificate = certificate.certificate
this.setTransitional(certificate.isTransitional)
this.setTransitional(certificate.transitional)
this.expiryDate = certificate.expiryDate
this.isCertificateAuthority = certificate.isCertificateAuthority
this.isCertificateAuthority = certificate.certificateAuthority
this.trustedCa = certificate.trustedCa
this.isSelfSigned = certificate.isSelfSigned
this.isSelfSigned = certificate.selfSigned
this.generated = certificate.generated
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,15 @@ constructor(
val isGenerated = rowSet.getObject("CERTIFICATE_GENERATED") as? Boolean

val certificateVersionMetadata = CertificateVersionMetadata(
toUUID(rowSet.getObject("VERSION_UUID")),
toUUID(rowSet.getObject("VERSION_UUID")!!),
expiryDate,
rowSet.getBoolean("TRANSITIONAL"),
isCertificateAuthority,
isSelfSigned,
isGenerated
)

val credentialUUID: UUID = toUUID(rowSet.getObject("CREDENTIAL_UUID"))
val credentialUUID: UUID = toUUID(rowSet.getObject("CREDENTIAL_UUID")!!)

if (certificateMetadataMap.containsKey(credentialUUID)) {
certificateMetadataMap.getValue(credentialUUID).versions?.add(certificateVersionMetadata)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class DefaultCertificateService(
generateRequest: BaseCredentialGenerateRequest
): CredentialVersion {
generateRequest.type = "certificate"
if (credentialValue.isTransitional) {
if (credentialValue.transitional) {
validateNoTransitionalVersionsAlreadyExist(generateRequest.name)
}
val version = credentialService
Expand Down Expand Up @@ -174,7 +174,7 @@ class DefaultCertificateService(
operator fun set(certificateUuid: UUID, value: CertificateCredentialValue?): CertificateCredentialVersion {
val credential = findCertificateCredential(certificateUuid)

if (value?.isTransitional!!) {
if (value?.transitional!!) {
validateNoTransitionalVersionsAlreadyExist(credential.name)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ class CertificateView : CredentialView {
private var version: CertificateCredentialVersion? = null
var expiryDate: Instant? = null
private set
var isCertificateAuthority = false
var certificateAuthority = false
private set
var isSelfSigned = false
var selfSigned = false
private set
@JsonInclude(JsonInclude.Include.NON_NULL)
var generated: Boolean? = null
Expand All @@ -32,8 +32,8 @@ class CertificateView : CredentialView {
) {
this.version = version
expiryDate = version.expiryDate
isCertificateAuthority = version.isCertificateAuthority
isSelfSigned = version.isSelfSigned
certificateAuthority = version.isCertificateAuthority
selfSigned = version.isSelfSigned
generated = version.generated
concatenateCas = false
}
Expand All @@ -48,8 +48,8 @@ class CertificateView : CredentialView {
) {
this.version = version
expiryDate = version.expiryDate
isCertificateAuthority = version.isCertificateAuthority
isSelfSigned = version.isSelfSigned
certificateAuthority = version.isCertificateAuthority
selfSigned = version.isSelfSigned
generated = version.generated
this.concatenateCas = concatenateCas
}
Expand All @@ -74,13 +74,13 @@ class CertificateView : CredentialView {
return false
}
val that = o as CertificateView
return isCertificateAuthority == that.isCertificateAuthority && isSelfSigned == that.isSelfSigned &&
return certificateAuthority == that.certificateAuthority && selfSigned == that.selfSigned &&
generated == that.generated &&
version == that.version &&
expiryDate == that.expiryDate
}

override fun hashCode(): Int {
return Objects.hash(super.hashCode(), version, expiryDate, isCertificateAuthority, isSelfSigned, generated)
return Objects.hash(super.hashCode(), version, expiryDate, certificateAuthority, selfSigned, generated)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ public void beforeEach() {

@Test
public void save_whenTransitionalIsFalse_delegatesToCredentialService() {
when(value.isTransitional()).thenReturn(false);
when(value.getTransitional()).thenReturn(false);

final BaseCredentialGenerateRequest generateRequest = mock(BaseCredentialGenerateRequest.class);

Expand All @@ -184,7 +184,7 @@ public void save_whenTransitionalIsFalse_delegatesToCredentialService() {

@Test
public void save_whenTransitionalIsTrue_andThereAreNoOtherTransitionalVersions_delegatesToCredentialService() {
when(value.isTransitional()).thenReturn(true);
when(value.getTransitional()).thenReturn(true);

final BaseCredentialGenerateRequest generateRequest = mock(BaseCredentialGenerateRequest.class);
when(generateRequest.getName()).thenReturn("some-ca");
Expand All @@ -210,7 +210,7 @@ public void save_whenTransitionalIsTrue_andThereAreNoOtherTransitionalVersions_d

@Test
public void save_whenTransitionalIsTrue_andConcatenateCasIsTrue_generatesNewChildVersion() {
when(value.isTransitional()).thenReturn(true);
when(value.getTransitional()).thenReturn(true);

final BaseCredentialGenerateRequest generateRequest = mock(BaseCredentialGenerateRequest.class);
when(generateRequest.getName()).thenReturn("some-ca");
Expand Down Expand Up @@ -243,7 +243,7 @@ public void save_whenTransitionalIsTrue_andConcatenateCasIsTrue_generatesNewChil

@Test
public void set_whenTransitionalIsTrue_andConcatenateCasIsTrue_generatesNewChildVersion() {
when(value.isTransitional()).thenReturn(true);
when(value.getTransitional()).thenReturn(true);

final CertificateCredentialVersion previousVersion = mock(CertificateCredentialVersion.class);
when(previousVersion.isVersionTransitional()).thenReturn(false);
Expand Down Expand Up @@ -276,7 +276,7 @@ public void set_whenTransitionalIsTrue_andConcatenateCasIsTrue_generatesNewChild

@Test
public void set_whenTransitionalIsTrue_andConcatenateCasIsFalse_doesNotGeneratesNewChildVersion() {
when(value.isTransitional()).thenReturn(true);
when(value.getTransitional()).thenReturn(true);

final CertificateCredentialVersion previousVersion = mock(CertificateCredentialVersion.class);
when(previousVersion.isVersionTransitional()).thenReturn(false);
Expand Down Expand Up @@ -310,7 +310,7 @@ public void set_whenTransitionalIsTrue_andConcatenateCasIsFalse_doesNotGenerates

@Test
public void save_whenTransitionalIsTrue_andConcatenateCasIsFalse_doesNotGeneratesNewChildVersion() {
when(value.isTransitional()).thenReturn(true);
when(value.getTransitional()).thenReturn(true);

final BaseCredentialGenerateRequest generateRequest = mock(BaseCredentialGenerateRequest.class);
when(generateRequest.getName()).thenReturn("some-ca");
Expand Down Expand Up @@ -344,7 +344,7 @@ public void save_whenTransitionalIsTrue_andConcatenateCasIsFalse_doesNotGenerate
@Test
public void save_whenTransitionalIsTrue_AndThereIsAnotherTransitionalVersion_throwsAnException() {
final CertificateCredentialValue value = mock(CertificateCredentialValue.class);
when(value.isTransitional()).thenReturn(true);
when(value.getTransitional()).thenReturn(true);

final BaseCredentialGenerateRequest generateRequest = mock(BaseCredentialGenerateRequest.class);
when(generateRequest.getName()).thenReturn("/some-name");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,10 @@ class RemoteCertificateAuthorityServiceTest {
assertEquals(result.certificate, TestConstants.OTHER_TEST_CERTIFICATE)
assertEquals(result.privateKey, TestConstants.OTHER_TEST_PRIVATE_KEY)
assertEquals(result.caName, "/some-ca")
assertEquals(result.isCertificateAuthority, true)
assertEquals(result.isSelfSigned, true)
assertEquals(result.certificateAuthority, true)
assertEquals(result.selfSigned, true)
assertEquals(result.generated, true)
assertEquals(result.isTransitional, false)
assertEquals(result.transitional, false)
}

@Test
Expand All @@ -101,9 +101,9 @@ class RemoteCertificateAuthorityServiceTest {
"ca_name" to data.caName,
"certificate" to data.certificate,
"private_key" to data.privateKey,
"transitional" to data.isTransitional,
"certificate_authority" to data.isCertificateAuthority,
"self_signed" to data.isSelfSigned,
"transitional" to data.transitional,
"certificate_authority" to data.certificateAuthority,
"self_signed" to data.selfSigned,
"generated" to data.generated

))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package org.cloudfoundry.credhub

class Management {
var isReadOnlyMode: Boolean = false
var readOnlyMode: Boolean = false

constructor() : super() {
// no arg constructor required by Jackson
}

constructor(readOnlyMode: Boolean?) : super() {
this.isReadOnlyMode = readOnlyMode!!
this.readOnlyMode = readOnlyMode!!
}

override fun toString(): String {
return "isReadOnly: $isReadOnlyMode"
return "isReadOnly: $readOnlyMode"
}
}

0 comments on commit f0a7a46

Please sign in to comment.