[java-oidfed-common] branch main updated: Improve test-trust-chain-resolution default output
Codeberg
noreply at shibboleth.net
Wed Sep 23 12:22:38 UTC 2026
This is an automated email from the git hooks/post-receive script.
codeberg pushed a commit to branch main
in repository java-oidfed-common.
View the commit online:
https://codeberg.org/Shibboleth/java-oidfed-common/commit/622a4bd47c8a87ecd3bb6f088d8f929e824a606b
The following commit(s) were added to refs/heads/main by this push:
new 622a4bd Improve test-trust-chain-resolution default output
622a4bd is described below
commit 622a4bd47c8a87ecd3bb6f088d8f929e824a606b
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Wed Sep 23 15:16:54 2026 +0300
Improve test-trust-chain-resolution default output
- Exploit Jackson ObjectMapper to encode/espace JSON items
- Fix the includJWT/Metadata/TrustMark flag bugs (test explicitely against 'true')
---
.../test-trust-chain-resolution-flow.xml | 1 +
.../admin/oidfed/test-trust-chain-resolution.vm | 48 ++++++++++++----------
2 files changed, 27 insertions(+), 22 deletions(-)
diff --git a/oidfed-common-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidfed/test-trust-chain-resolution/test-trust-chain-resolution-flow.xml b/oidfed-common-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidfed/test-trust-chain-resolution/test-trust-chain-resolution-flow.xml
index 69ee418..f986df2 100644
--- a/oidfed-common-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidfed/test-trust-chain-resolution/test-trust-chain-resolution-flow.xml
+++ b/oidfed-common-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidfed/test-trust-chain-resolution/test-trust-chain-resolution-flow.xml
@@ -68,6 +68,7 @@
<evaluate expression="T(org.opensaml.core.xml.util.XMLObjectSupport)" result="requestScope.XMLObjectSupport" />
<evaluate expression="T(net.shibboleth.shared.xml.SerializeSupport)" result="requestScope.SerializeSupport" />
<evaluate expression="T(net.shibboleth.shared.codec.HTMLEncoder)" result="requestScope.encoder" />
+ <evaluate expression="flowRequestContext.getActiveFlow().getApplicationContext().getBean('shibboleth.oidfed.JSONObjectMapper')" result="requestScope.jsonObjectMapper" />
<evaluate expression="flowRequestContext.getExternalContext().getNativeRequest()" result="requestScope.request" />
<evaluate expression="flowRequestContext.getExternalContext().getNativeResponse()" result="requestScope.response" />
<evaluate expression="flowRequestContext.getActiveFlow().getApplicationContext().containsBean('shibboleth.CustomViewContext') ? flowRequestContext.getActiveFlow().getApplicationContext().getBean('shibboleth.CustomViewContext') : null" result="requestScope.custom" />
diff --git a/oidfed-common-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/views/admin/oidfed/test-trust-chain-resolution.vm b/oidfed-common-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/views/admin/oidfed/test-trust-chain-resolution.vm
index 30a7949..500a36d 100644
--- a/oidfed-common-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/views/admin/oidfed/test-trust-chain-resolution.vm
+++ b/oidfed-common-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/views/admin/oidfed/test-trust-chain-resolution.vm
@@ -7,6 +7,7 @@
## response - HttpServletResponse
## profileRequestContext
## trustChaintContext
+## jsonObjectMapper
## entityID
## includeJWT
## includeMetadata
@@ -17,6 +18,7 @@
## environment - Spring Environment object for property resolution
## custom - arbitrary object injected by deployer
##
+$response.setContentType("application/json")
[#if ($trustChaintContext and $trustChaintContext.getPolicyCompliantTrustChains() and !$trustChaintContext.getPolicyCompliantTrustChains().isEmpty())
#set ($index = 0)
#foreach ($policyCompliantChain in $trustChaintContext.getPolicyCompliantTrustChains()) #set ($index = $index + 1)
@@ -28,44 +30,46 @@
"type": "entity_configuration",
#else
"type": "subordinate_statement",
- "issuer": "$entityStatement.getIssuer()",
+ "issuer": $jsonObjectMapper.writeValueAsString($entityStatement.getIssuer()),
#end
- "subject" : "$entityStatement.getSubject()",
- "issuedAt" : "$entityStatement.getParsedPayload().getIssuedAt()",
- "expiresAt" : "$entityStatement.getParsedPayload().getExpiration()"#if($includeJWT),
- "rawJwt" : "$entityStatement.getJwt().serialize()"#end
+ "subject" : $jsonObjectMapper.writeValueAsString($entityStatement.getSubject()),
+ "issuedAt" : $jsonObjectMapper.writeValueAsString($entityStatement.getParsedPayload().getIssuedAt()),
+ "expiresAt" : $jsonObjectMapper.writeValueAsString($entityStatement.getParsedPayload().getExpiration())#if($includeJWT and $includeJWT.equalsIgnoreCase('true')),
+ "rawJwt" : $jsonObjectMapper.writeValueAsString($entityStatement.getJwt().serialize())#end
}#if( $foreach.hasNext ),#end
#end
],
"metadata_entities" : [
#foreach ($metadataKey in $policyCompliantChain.getMetadata().getAllClaims().keySet())
- "$metadataKey"#if( $foreach.hasNext ),#end
+ $jsonObjectMapper.writeValueAsString($metadataKey)#if( $foreach.hasNext ),#end
#end
- ],#if($includeMetadata)
+ ],#if($includeMetadata and $includeMetadata.equalsIgnoreCase('true'))
+
"metadata_details" : [
#foreach ($metadataKey in $policyCompliantChain.getMetadata().getAllClaims().keySet())
- "$metadataKey": $policyCompliantChain.getMetadata().getAllClaims().get($metadataKey)#if( $foreach.hasNext ),#end
+ { $jsonObjectMapper.writeValueAsString($metadataKey):
+ $jsonObjectMapper.writeValueAsString($policyCompliantChain.getMetadata().getAllClaims().get($metadataKey))
+ }#if( $foreach.hasNext ),#end
#end
],
#end
"trust_mark_ids" : [
-#foreach ($trustMarkId in $trustMarkIds.get($index - 1))
- "$trustMarkId"#if( $foreach.hasNext ),#end
-#end
- ]#if($includeTrustMark),
+#if($trustMarkIds and $trustMarkIds.size() >= $index)#foreach ($trustMarkId in $trustMarkIds.get($index - 1))
+ $jsonObjectMapper.writeValueAsString($trustMarkId)#if( $foreach.hasNext ),#end
+#end#end
+ ]#if($includeTrustMark and $includeTrustMark.equalsIgnoreCase('true')),
"trust_mark_details" : [
-#foreach ($trustMark in $trustMarks.get($index - 1))
+#if($trustMarks and $trustMarks.size() >= $index)#foreach ($trustMark in $trustMarks.get($index - 1))
{
- "trust_mark_type": "$trustMark.getParsedPayload().getTrustMarkType()",
- "issuer": "$trustMark.getIssuer()",
- "subject" : "$trustMark.getParsedPayload().getSubject()",
- "issuedAt" : "$trustMark.getParsedPayload().getIssuedAt()",
- "expiresAt" : "$trustMark.getParsedPayload().getExpiration()",
- "rawJwt" : "$trustMark.getJwt().serialize()"
+ "trust_mark_type": $jsonObjectMapper.writeValueAsString($trustMark.getParsedPayload().getTrustMarkType()),
+ "issuer": $jsonObjectMapper.writeValueAsString($trustMark.getIssuer()),
+ "subject" : $jsonObjectMapper.writeValueAsString($trustMark.getParsedPayload().getSubject()),
+ "issuedAt" : $jsonObjectMapper.writeValueAsString($trustMark.getParsedPayload().getIssuedAt()),
+ "expiresAt" : $jsonObjectMapper.writeValueAsString($trustMark.getParsedPayload().getExpiration()),
+ "rawJwt" : $jsonObjectMapper.writeValueAsString($trustMark.getJwt().serialize())
}#if( $foreach.hasNext ),#end
-#end
+#end#end
]#end
}#if( $foreach.hasNext ),#end
#end
-#end]
-$response.setContentType("application/json")
\ No newline at end of file
+#end]
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list