WIP, CLR Inspector. Inline Schema probe having an issue that I need to dig deeper into.

This commit is contained in:
Miles Lyon 2022-07-19 15:51:44 -04:00
parent 81b133ec84
commit 0c855ec71e
2 changed files with 14 additions and 1 deletions

View File

@ -70,6 +70,8 @@ public class Credential extends GeneratedObject {
return Optional.of(Catalog.OB_30_VERIFIABLEPRESENTATION_JSON); return Optional.of(Catalog.OB_30_VERIFIABLEPRESENTATION_JSON);
} else if(credentialType == Credential.Type.EndorsementCredential) { } else if(credentialType == Credential.Type.EndorsementCredential) {
return Optional.of(Catalog.OB_30_ENDORSEMENTCREDENTIAL_JSON); return Optional.of(Catalog.OB_30_ENDORSEMENTCREDENTIAL_JSON);
} else if(credentialType == Credential.Type.ClrCredential) {
return Optional.of(Catalog.CLR_20_CLRCREDENTIAL_JSON);
} }
return Optional.empty(); return Optional.empty();
} }
@ -77,6 +79,7 @@ public class Credential extends GeneratedObject {
public enum Type { public enum Type {
AchievementCredential, AchievementCredential,
OpenBadgeCredential, //treated as an alias of AchievementCredential OpenBadgeCredential, //treated as an alias of AchievementCredential
ClrCredential, //NOT a duplicate of OB this does not use an alias and we ONLY use 'ClrCredential' as the base type
EndorsementCredential, EndorsementCredential,
VerifiablePresentation, VerifiablePresentation,
VerifiableCredential, //this is an underspecifier in our context VerifiableCredential, //this is an underspecifier in our context
@ -89,6 +92,8 @@ public class Credential extends GeneratedObject {
String value = iter.next().asText(); String value = iter.next().asText();
if(value.equals("AchievementCredential") || value.equals("OpenBadgeCredential")) { if(value.equals("AchievementCredential") || value.equals("OpenBadgeCredential")) {
return AchievementCredential; return AchievementCredential;
} else if(value.equals("ClrCredential")) {
return ClrCredential;
} else if(value.equals("VerifiablePresentation")) { } else if(value.equals("VerifiablePresentation")) {
return VerifiablePresentation; return VerifiablePresentation;
} else if(value.equals("EndorsementCredential")) { } else if(value.equals("EndorsementCredential")) {

View File

@ -8,6 +8,7 @@ import org.oneedtech.inspect.core.probe.Probe;
import org.oneedtech.inspect.core.probe.RunContext; import org.oneedtech.inspect.core.probe.RunContext;
import org.oneedtech.inspect.core.report.ReportItems; import org.oneedtech.inspect.core.report.ReportItems;
import org.oneedtech.inspect.vc.Credential; import org.oneedtech.inspect.vc.Credential;
import org.oneedtech.inspect.vc.Credential.Type;
import org.oneedtech.inspect.vc.util.JsonNodeUtil; import org.oneedtech.inspect.vc.util.JsonNodeUtil;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
@ -43,6 +44,13 @@ public class TypePropertyProbe extends Probe<JsonNode> {
"The type property does not contain one of 'OpenBadgeCredential' or 'AchievementCredential'", "The type property does not contain one of 'OpenBadgeCredential' or 'AchievementCredential'",
ctx); ctx);
} }
}
if(expected == Credential.Type.ClrCredential){
if(!values.contains("ClrCredential")) {
return fatal(
"The type property does not contain the entry 'ClrCredential'",
ctx);
}
} else { } else {
//TODO implement //TODO implement
throw new IllegalStateException(); throw new IllegalStateException();