Skip to content

Allow easy subclassing default IJsonMapper implementations: to let adjust settings easily. #214

@RufusJWB

Description

@RufusJWB

Is it possible to tell the default JSON serializer to ignore empty fields of a JWK and don't serialize them?

Currently my JWS header looks like this after serialization:

{
  "alg": "ES256",
  "JWK": {
    "kty": "EC",
    "use": null,
    "alg": null,
    "keyId": null,
    "keyOps": null,
    "k": null,
    "n": null,
    "e": null,
    "d": null,
    "p": null,
    "dp": null,
    "q": null,
    "dq": null,
    "qi": null,
    "crv": null,
    "x": "mS9EPo_7ZJGgva3NJMAMFBrYj_a65y7wNc6dXLVgAho",
    "y": "3JB6m2MWaMvcIJVqV2WSH59SLtPsa2MtGrCRTsgPPo8",
    "x5U": null,
    "x5T": null,
    "x5TSha256": null,
    "x5C": [
      "MIIBqTCCAU6gAwIBAgIUTSEzQzGXgJRGrQF5U6OVMO2ku2MwCgYIKoZIzj0EAwIwKzEpMCcGCSqGSIb3DQEJARYacnVmdXMuYnVzY2hhcnRAc2llbWVucy5jb20wHhcNMjMwMTEzMTQ1MDAwWhcNMjUxMDA5MTQ1MDAwWjArMSkwJwYJKoZIhvcNAQkBFhpydWZ1cy5idXNjaGFydEBzaWVtZW5zLmNvbTBWMBAGByqGSM49AgEGBSuBBAAKA0IABJkvRD6P+2SRoL2tzSTADBQa2I/2uucu8DXOnVy1YAIa3JB6m2MWaMvcIJVqV2WSH59SLtPsa2MtGrCRTsgPPo+jUzBRMB0GA1UdDgQWBBQtKe/ByzbXhDmuHleGcfSg6GiSdzAfBgNVHSMEGDAWgBQtKe/ByzbXhDmuHleGcfSg6GiSdzAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQD/9uGdD2zKI3kl8PFT/kGhi79uIakNyNY6mRfeTEAhNAIhALR79ZA5n4M4J4ky4iHfCQU9at+GU8V0V8dmZDrnpj1v"
    ],
    "otherParams": null
  }
}

And I'd like to have it look like this:

{
  "alg": "ES256",
  "JWK": {
    "kty": "EC",
    "x": "mS9EPo_7ZJGgva3NJMAMFBrYj_a65y7wNc6dXLVgAho",
    "y": "3JB6m2MWaMvcIJVqV2WSH59SLtPsa2MtGrCRTsgPPo8",
    "x5C": [
      "MIIBqTCCAU6gAwIBAgIUTSEzQzGXgJRGrQF5U6OVMO2ku2MwCgYIKoZIzj0EAwIwKzEpMCcGCSqGSIb3DQEJARYacnVmdXMuYnVzY2hhcnRAc2llbWVucy5jb20wHhcNMjMwMTEzMTQ1MDAwWhcNMjUxMDA5MTQ1MDAwWjArMSkwJwYJKoZIhvcNAQkBFhpydWZ1cy5idXNjaGFydEBzaWVtZW5zLmNvbTBWMBAGByqGSM49AgEGBSuBBAAKA0IABJkvRD6P+2SRoL2tzSTADBQa2I/2uucu8DXOnVy1YAIa3JB6m2MWaMvcIJVqV2WSH59SLtPsa2MtGrCRTsgPPo+jUzBRMB0GA1UdDgQWBBQtKe/ByzbXhDmuHleGcfSg6GiSdzAfBgNVHSMEGDAWgBQtKe/ByzbXhDmuHleGcfSg6GiSdzAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQD/9uGdD2zKI3kl8PFT/kGhi79uIakNyNY6mRfeTEAhNAIhALR79ZA5n4M4J4ky4iHfCQU9at+GU8V0V8dmZDrnpj1v"
    ]
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions