Added verification dependencies validation

This commit is contained in:
Xavi Aracil 2022-12-12 14:30:15 +01:00
parent 747a93e670
commit e8a6b33813
19 changed files with 2221 additions and 3 deletions

View File

@ -335,7 +335,7 @@ public class Assertion extends Credential {
.put(Type.VerificationObjectIssuer, List.of( .put(Type.VerificationObjectIssuer, List.of(
new Validation.Builder().name("type").type(ValueType.RDF_TYPE).many(true).defaultType(Type.VerificationObject).build(), new Validation.Builder().name("type").type(ValueType.RDF_TYPE).many(true).defaultType(Type.VerificationObject).build(),
new Validation.Builder().name("verificationProperty").type(ValueType.COMPACT_IRI).build(), new Validation.Builder().name("verificationProperty").type(ValueType.COMPACT_IRI).build(),
new Validation.Builder().name("startsWith").type(ValueType.URL).build(), new Validation.Builder().name("startsWith").type(ValueType.URL).many(true).build(),
new Validation.Builder().name("allowedOrigins").type(ValueType.URL_AUTHORITY).many(true).build() new Validation.Builder().name("allowedOrigins").type(ValueType.URL_AUTHORITY).many(true).build()
)) ))
.put(Type.External, Collections.emptyList()) .put(Type.External, Collections.emptyList())

View File

@ -153,8 +153,8 @@ public class OB20Inspector extends Inspector {
// verification and revocation // verification and revocation
if (assertion.getCredentialType() == Type.Assertion) { if (assertion.getCredentialType() == Type.Assertion) {
for(Probe<JsonLdGeneratedObject> probe : List.of(new VerificationDependenciesProbe(assertion.getId()), for(Probe<JsonLdGeneratedObject> probe : List.of(new VerificationDependenciesProbe(assertionNode.get("id").asText()),
new AssertionRevocationListProbe(assertion.getId()))) { new AssertionRevocationListProbe(assertionNode.get("id").asText()))) {
probeCount++; probeCount++;
accumulator.add(probe.run(jsonLdGeneratedObject, ctx)); accumulator.add(probe.run(jsonLdGeneratedObject, ctx));
if(broken(accumulator)) return abort(ctx, accumulator, probeCount); if(broken(accumulator)) return abort(ctx, accumulator, probeCount);

View File

@ -149,6 +149,43 @@ public class OB20Tests {
}); });
} }
@Test
void testVerification() {
assertDoesNotThrow(()->{
Report report = validator.run(Samples.OB20.JSON.ISSUER_WITH_ALLOWED_ORIGINS.asFileResource());
if(verbose) PrintHelper.print(report, true);
assertValid(report);
});
}
@Test
void testVerificationStartsWith() {
assertDoesNotThrow(()->{
Report report = validator.run(Samples.OB20.JSON.ISSUER_WITH_ALLOWED_ORIGINS_VALID_STARTSWITH.asFileResource());
if(verbose) PrintHelper.print(report, true);
assertValid(report);
});
assertDoesNotThrow(()->{
Report report = validator.run(Samples.OB20.JSON.ISSUER_WITH_ALLOWED_ORIGINS_INVALID_STARTSWITH.asFileResource());
if(verbose) PrintHelper.print(report, true);
assertInvalid(report);
});
}
@Test
void testVerificationMultipleStartsWith() {
assertDoesNotThrow(()->{
Report report = validator.run(Samples.OB20.JSON.ISSUER_WITH_ALLOWED_ORIGINS_VALID_MULTIPLE_STARTSWITH.asFileResource());
if(verbose) PrintHelper.print(report, true);
assertValid(report);
});
assertDoesNotThrow(()->{
Report report = validator.run(Samples.OB20.JSON.ISSUER_WITH_ALLOWED_ORIGINS_INVALID_MULTIPLE_STARTSWITH.asFileResource());
if(verbose) PrintHelper.print(report, true);
assertInvalid(report);
});
}
@Nested @Nested
static class WarningTests { static class WarningTests {
@BeforeAll @BeforeAll

View File

@ -69,6 +69,12 @@ public class Samples {
public final static Sample RDF_VALIDATION_INVALID_ELEM_CLASS = new Sample("ob20/rdf-validation/invalid-one-invalid-class.json", false); public final static Sample RDF_VALIDATION_INVALID_ELEM_CLASS = new Sample("ob20/rdf-validation/invalid-one-invalid-class.json", false);
public final static Sample RDF_VALIDATION_INVALID_ISSUER_TYPE = new Sample("ob20/rdf-validation/badge-class-invalid-issuer-type.json", false); public final static Sample RDF_VALIDATION_INVALID_ISSUER_TYPE = new Sample("ob20/rdf-validation/badge-class-invalid-issuer-type.json", false);
public final static Sample RDF_VALIDATION_VALID_EMPTY_CRITERIA_TYPE = new Sample("ob20/rdf-validation/valid-badge-class-empty-criteria-type.json", true); public final static Sample RDF_VALIDATION_VALID_EMPTY_CRITERIA_TYPE = new Sample("ob20/rdf-validation/valid-badge-class-empty-criteria-type.json", true);
// otiginal: test_validation: test_hosted_verification_object_in_assertion
public final static Sample ISSUER_WITH_ALLOWED_ORIGINS = new Sample("ob20/basic-assertion-with-allowed-origins.json", true);
public final static Sample ISSUER_WITH_ALLOWED_ORIGINS_VALID_STARTSWITH = new Sample("ob20/basic-assertion-with-allowed-origins-valid-starts-with.json", true);
public final static Sample ISSUER_WITH_ALLOWED_ORIGINS_INVALID_STARTSWITH = new Sample("ob20/basic-assertion-with-allowed-origins-invalid-starts-with.json", false);
public final static Sample ISSUER_WITH_ALLOWED_ORIGINS_VALID_MULTIPLE_STARTSWITH = new Sample("ob20/basic-assertion-with-allowed-origins-valid-multiple-starts-with.json", true);
public final static Sample ISSUER_WITH_ALLOWED_ORIGINS_INVALID_MULTIPLE_STARTSWITH = new Sample("ob20/basic-assertion-with-allowed-origins-invalid-multiple-starts-with.json", false);
} }
public static final class PNG { public static final class PNG {

View File

@ -0,0 +1,208 @@
{
"@context": {
"id": "@id",
"type": "@type",
"extensions": "https://w3id.org/openbadges/extensions#",
"obi": "https://w3id.org/openbadges#",
"validation": "obi:validation",
"cred": "https://w3id.org/credentials#",
"dc": "http://purl.org/dc/terms/",
"schema": "http://schema.org/",
"sec": "https://w3id.org/security#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"AlignmentObject": "schema:AlignmentObject",
"CryptographicKey": "sec:Key",
"Endorsement": "cred:Credential",
"Assertion": "obi:Assertion",
"BadgeClass": "obi:BadgeClass",
"Criteria": "obi:Criteria",
"Evidence": "obi:Evidence",
"Extension": "obi:Extension",
"FrameValidation": "obi:FrameValidation",
"IdentityObject": "obi:IdentityObject",
"Image": "obi:Image",
"HostedBadge": "obi:HostedBadge",
"hosted": "obi:HostedBadge",
"Issuer": "obi:Issuer",
"Profile": "obi:Profile",
"RevocationList": "obi:RevocationList",
"SignedBadge": "obi:SignedBadge",
"signed": "obi:SignedBadge",
"TypeValidation": "obi:TypeValidation",
"VerificationObject": "obi:VerificationObject",
"author": {
"@id": "schema:author",
"@type": "@id"
},
"caption": {
"@id": "schema:caption"
},
"claim": {
"@id": "cred:claim",
"@type": "@id"
},
"created": {
"@id": "dc:created",
"@type": "xsd:dateTime"
},
"creator": {
"@id": "dc:creator",
"@type": "@id"
},
"description": {
"@id": "schema:description"
},
"email": {
"@id": "schema:email"
},
"endorsement": {
"@id": "cred:credential",
"@type": "@id"
},
"expires": {
"@id": "sec:expiration",
"@type": "xsd:dateTime"
},
"genre": {
"@id": "schema:genre"
},
"image": {
"@id": "schema:image",
"@type": "@id"
},
"name": {
"@id": "schema:name"
},
"owner": {
"@id": "sec:owner",
"@type": "@id"
},
"publicKey": {
"@id": "sec:publicKey",
"@type": "@id"
},
"publicKeyPem": {
"@id": "sec:publicKeyPem"
},
"related": {
"@id": "dc:relation",
"@type": "@id"
},
"startsWith": {
"@id": "http://purl.org/dqm-vocabulary/v1/dqm#startsWith"
},
"tags": {
"@id": "schema:keywords"
},
"targetDescription": {
"@id": "schema:targetDescription"
},
"targetFramework": {
"@id": "schema:targetFramework"
},
"targetName": {
"@id": "schema:targetName"
},
"targetUrl": {
"@id": "schema:targetUrl"
},
"telephone": {
"@id": "schema:telephone"
},
"url": {
"@id": "schema:url",
"@type": "@id"
},
"version": {
"@id": "schema:version"
},
"alignment": {
"@id": "obi:alignment",
"@type": "@id"
},
"allowedOrigins": {
"@id": "obi:allowedOrigins"
},
"audience": {
"@id": "obi:audience"
},
"badge": {
"@id": "obi:badge",
"@type": "@id"
},
"criteria": {
"@id": "obi:criteria",
"@type": "@id"
},
"endorsementComment": {
"@id": "obi:endorsementComment"
},
"evidence": {
"@id": "obi:evidence",
"@type": "@id"
},
"hashed": {
"@id": "obi:hashed",
"@type": "xsd:boolean"
},
"identity": {
"@id": "obi:identityHash"
},
"issuedOn": {
"@id": "obi:issueDate",
"@type": "xsd:dateTime"
},
"issuer": {
"@id": "obi:issuer",
"@type": "@id"
},
"narrative": {
"@id": "obi:narrative"
},
"recipient": {
"@id": "obi:recipient",
"@type": "@id"
},
"revocationList": {
"@id": "obi:revocationList",
"@type": "@id"
},
"revocationReason": {
"@id": "obi:revocationReason"
},
"revoked": {
"@id": "obi:revoked",
"@type": "xsd:boolean"
},
"revokedAssertions": {
"@id": "obi:revoked"
},
"salt": {
"@id": "obi:salt"
},
"targetCode": {
"@id": "obi:targetCode"
},
"uid": {
"@id": "obi:uid"
},
"validatesType": "obi:validatesType",
"validationFrame": "obi:validationFrame",
"validationSchema": "obi:validationSchema",
"verification": {
"@id": "obi:verify",
"@type": "@id"
},
"verificationProperty": {
"@id": "obi:verificationProperty"
},
"verify": "verification"
},
"id": "http://example.org/badgeclass-with-verification-invalid-multiple-starts-with",
"type": "BadgeClass",
"name": "Example Badge",
"description": "An example",
"criteria": "http://example.com/badgecriteria.json",
"issuer": "http://example.org/issuer-with-allowed-origins-invalid-multiple-starts-with.json",
"image": "http://example.org/robotics-badge.png"
}

View File

@ -0,0 +1,208 @@
{
"@context": {
"id": "@id",
"type": "@type",
"extensions": "https://w3id.org/openbadges/extensions#",
"obi": "https://w3id.org/openbadges#",
"validation": "obi:validation",
"cred": "https://w3id.org/credentials#",
"dc": "http://purl.org/dc/terms/",
"schema": "http://schema.org/",
"sec": "https://w3id.org/security#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"AlignmentObject": "schema:AlignmentObject",
"CryptographicKey": "sec:Key",
"Endorsement": "cred:Credential",
"Assertion": "obi:Assertion",
"BadgeClass": "obi:BadgeClass",
"Criteria": "obi:Criteria",
"Evidence": "obi:Evidence",
"Extension": "obi:Extension",
"FrameValidation": "obi:FrameValidation",
"IdentityObject": "obi:IdentityObject",
"Image": "obi:Image",
"HostedBadge": "obi:HostedBadge",
"hosted": "obi:HostedBadge",
"Issuer": "obi:Issuer",
"Profile": "obi:Profile",
"RevocationList": "obi:RevocationList",
"SignedBadge": "obi:SignedBadge",
"signed": "obi:SignedBadge",
"TypeValidation": "obi:TypeValidation",
"VerificationObject": "obi:VerificationObject",
"author": {
"@id": "schema:author",
"@type": "@id"
},
"caption": {
"@id": "schema:caption"
},
"claim": {
"@id": "cred:claim",
"@type": "@id"
},
"created": {
"@id": "dc:created",
"@type": "xsd:dateTime"
},
"creator": {
"@id": "dc:creator",
"@type": "@id"
},
"description": {
"@id": "schema:description"
},
"email": {
"@id": "schema:email"
},
"endorsement": {
"@id": "cred:credential",
"@type": "@id"
},
"expires": {
"@id": "sec:expiration",
"@type": "xsd:dateTime"
},
"genre": {
"@id": "schema:genre"
},
"image": {
"@id": "schema:image",
"@type": "@id"
},
"name": {
"@id": "schema:name"
},
"owner": {
"@id": "sec:owner",
"@type": "@id"
},
"publicKey": {
"@id": "sec:publicKey",
"@type": "@id"
},
"publicKeyPem": {
"@id": "sec:publicKeyPem"
},
"related": {
"@id": "dc:relation",
"@type": "@id"
},
"startsWith": {
"@id": "http://purl.org/dqm-vocabulary/v1/dqm#startsWith"
},
"tags": {
"@id": "schema:keywords"
},
"targetDescription": {
"@id": "schema:targetDescription"
},
"targetFramework": {
"@id": "schema:targetFramework"
},
"targetName": {
"@id": "schema:targetName"
},
"targetUrl": {
"@id": "schema:targetUrl"
},
"telephone": {
"@id": "schema:telephone"
},
"url": {
"@id": "schema:url",
"@type": "@id"
},
"version": {
"@id": "schema:version"
},
"alignment": {
"@id": "obi:alignment",
"@type": "@id"
},
"allowedOrigins": {
"@id": "obi:allowedOrigins"
},
"audience": {
"@id": "obi:audience"
},
"badge": {
"@id": "obi:badge",
"@type": "@id"
},
"criteria": {
"@id": "obi:criteria",
"@type": "@id"
},
"endorsementComment": {
"@id": "obi:endorsementComment"
},
"evidence": {
"@id": "obi:evidence",
"@type": "@id"
},
"hashed": {
"@id": "obi:hashed",
"@type": "xsd:boolean"
},
"identity": {
"@id": "obi:identityHash"
},
"issuedOn": {
"@id": "obi:issueDate",
"@type": "xsd:dateTime"
},
"issuer": {
"@id": "obi:issuer",
"@type": "@id"
},
"narrative": {
"@id": "obi:narrative"
},
"recipient": {
"@id": "obi:recipient",
"@type": "@id"
},
"revocationList": {
"@id": "obi:revocationList",
"@type": "@id"
},
"revocationReason": {
"@id": "obi:revocationReason"
},
"revoked": {
"@id": "obi:revoked",
"@type": "xsd:boolean"
},
"revokedAssertions": {
"@id": "obi:revoked"
},
"salt": {
"@id": "obi:salt"
},
"targetCode": {
"@id": "obi:targetCode"
},
"uid": {
"@id": "obi:uid"
},
"validatesType": "obi:validatesType",
"validationFrame": "obi:validationFrame",
"validationSchema": "obi:validationSchema",
"verification": {
"@id": "obi:verify",
"@type": "@id"
},
"verificationProperty": {
"@id": "obi:verificationProperty"
},
"verify": "verification"
},
"id": "http://example.org/badgeclass-with-verification-invalid-starts-with",
"type": "BadgeClass",
"name": "Example Badge",
"description": "An example",
"criteria": "http://example.com/badgecriteria.json",
"issuer": "http://example.org/issuer-with-allowed-origins-invalid-starts-with.json",
"image": "http://example.org/robotics-badge.png"
}

View File

@ -0,0 +1,208 @@
{
"@context": {
"id": "@id",
"type": "@type",
"extensions": "https://w3id.org/openbadges/extensions#",
"obi": "https://w3id.org/openbadges#",
"validation": "obi:validation",
"cred": "https://w3id.org/credentials#",
"dc": "http://purl.org/dc/terms/",
"schema": "http://schema.org/",
"sec": "https://w3id.org/security#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"AlignmentObject": "schema:AlignmentObject",
"CryptographicKey": "sec:Key",
"Endorsement": "cred:Credential",
"Assertion": "obi:Assertion",
"BadgeClass": "obi:BadgeClass",
"Criteria": "obi:Criteria",
"Evidence": "obi:Evidence",
"Extension": "obi:Extension",
"FrameValidation": "obi:FrameValidation",
"IdentityObject": "obi:IdentityObject",
"Image": "obi:Image",
"HostedBadge": "obi:HostedBadge",
"hosted": "obi:HostedBadge",
"Issuer": "obi:Issuer",
"Profile": "obi:Profile",
"RevocationList": "obi:RevocationList",
"SignedBadge": "obi:SignedBadge",
"signed": "obi:SignedBadge",
"TypeValidation": "obi:TypeValidation",
"VerificationObject": "obi:VerificationObject",
"author": {
"@id": "schema:author",
"@type": "@id"
},
"caption": {
"@id": "schema:caption"
},
"claim": {
"@id": "cred:claim",
"@type": "@id"
},
"created": {
"@id": "dc:created",
"@type": "xsd:dateTime"
},
"creator": {
"@id": "dc:creator",
"@type": "@id"
},
"description": {
"@id": "schema:description"
},
"email": {
"@id": "schema:email"
},
"endorsement": {
"@id": "cred:credential",
"@type": "@id"
},
"expires": {
"@id": "sec:expiration",
"@type": "xsd:dateTime"
},
"genre": {
"@id": "schema:genre"
},
"image": {
"@id": "schema:image",
"@type": "@id"
},
"name": {
"@id": "schema:name"
},
"owner": {
"@id": "sec:owner",
"@type": "@id"
},
"publicKey": {
"@id": "sec:publicKey",
"@type": "@id"
},
"publicKeyPem": {
"@id": "sec:publicKeyPem"
},
"related": {
"@id": "dc:relation",
"@type": "@id"
},
"startsWith": {
"@id": "http://purl.org/dqm-vocabulary/v1/dqm#startsWith"
},
"tags": {
"@id": "schema:keywords"
},
"targetDescription": {
"@id": "schema:targetDescription"
},
"targetFramework": {
"@id": "schema:targetFramework"
},
"targetName": {
"@id": "schema:targetName"
},
"targetUrl": {
"@id": "schema:targetUrl"
},
"telephone": {
"@id": "schema:telephone"
},
"url": {
"@id": "schema:url",
"@type": "@id"
},
"version": {
"@id": "schema:version"
},
"alignment": {
"@id": "obi:alignment",
"@type": "@id"
},
"allowedOrigins": {
"@id": "obi:allowedOrigins"
},
"audience": {
"@id": "obi:audience"
},
"badge": {
"@id": "obi:badge",
"@type": "@id"
},
"criteria": {
"@id": "obi:criteria",
"@type": "@id"
},
"endorsementComment": {
"@id": "obi:endorsementComment"
},
"evidence": {
"@id": "obi:evidence",
"@type": "@id"
},
"hashed": {
"@id": "obi:hashed",
"@type": "xsd:boolean"
},
"identity": {
"@id": "obi:identityHash"
},
"issuedOn": {
"@id": "obi:issueDate",
"@type": "xsd:dateTime"
},
"issuer": {
"@id": "obi:issuer",
"@type": "@id"
},
"narrative": {
"@id": "obi:narrative"
},
"recipient": {
"@id": "obi:recipient",
"@type": "@id"
},
"revocationList": {
"@id": "obi:revocationList",
"@type": "@id"
},
"revocationReason": {
"@id": "obi:revocationReason"
},
"revoked": {
"@id": "obi:revoked",
"@type": "xsd:boolean"
},
"revokedAssertions": {
"@id": "obi:revoked"
},
"salt": {
"@id": "obi:salt"
},
"targetCode": {
"@id": "obi:targetCode"
},
"uid": {
"@id": "obi:uid"
},
"validatesType": "obi:validatesType",
"validationFrame": "obi:validationFrame",
"validationSchema": "obi:validationSchema",
"verification": {
"@id": "obi:verify",
"@type": "@id"
},
"verificationProperty": {
"@id": "obi:verificationProperty"
},
"verify": "verification"
},
"id": "http://example.org/badgeclass-with-verification-valid-multiple-starts-with",
"type": "BadgeClass",
"name": "Example Badge",
"description": "An example",
"criteria": "http://example.com/badgecriteria.json",
"issuer": "http://example.org/issuer-with-allowed-origins-valid-multiple-starts-with.json",
"image": "http://example.org/robotics-badge.png"
}

View File

@ -0,0 +1,208 @@
{
"@context": {
"id": "@id",
"type": "@type",
"extensions": "https://w3id.org/openbadges/extensions#",
"obi": "https://w3id.org/openbadges#",
"validation": "obi:validation",
"cred": "https://w3id.org/credentials#",
"dc": "http://purl.org/dc/terms/",
"schema": "http://schema.org/",
"sec": "https://w3id.org/security#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"AlignmentObject": "schema:AlignmentObject",
"CryptographicKey": "sec:Key",
"Endorsement": "cred:Credential",
"Assertion": "obi:Assertion",
"BadgeClass": "obi:BadgeClass",
"Criteria": "obi:Criteria",
"Evidence": "obi:Evidence",
"Extension": "obi:Extension",
"FrameValidation": "obi:FrameValidation",
"IdentityObject": "obi:IdentityObject",
"Image": "obi:Image",
"HostedBadge": "obi:HostedBadge",
"hosted": "obi:HostedBadge",
"Issuer": "obi:Issuer",
"Profile": "obi:Profile",
"RevocationList": "obi:RevocationList",
"SignedBadge": "obi:SignedBadge",
"signed": "obi:SignedBadge",
"TypeValidation": "obi:TypeValidation",
"VerificationObject": "obi:VerificationObject",
"author": {
"@id": "schema:author",
"@type": "@id"
},
"caption": {
"@id": "schema:caption"
},
"claim": {
"@id": "cred:claim",
"@type": "@id"
},
"created": {
"@id": "dc:created",
"@type": "xsd:dateTime"
},
"creator": {
"@id": "dc:creator",
"@type": "@id"
},
"description": {
"@id": "schema:description"
},
"email": {
"@id": "schema:email"
},
"endorsement": {
"@id": "cred:credential",
"@type": "@id"
},
"expires": {
"@id": "sec:expiration",
"@type": "xsd:dateTime"
},
"genre": {
"@id": "schema:genre"
},
"image": {
"@id": "schema:image",
"@type": "@id"
},
"name": {
"@id": "schema:name"
},
"owner": {
"@id": "sec:owner",
"@type": "@id"
},
"publicKey": {
"@id": "sec:publicKey",
"@type": "@id"
},
"publicKeyPem": {
"@id": "sec:publicKeyPem"
},
"related": {
"@id": "dc:relation",
"@type": "@id"
},
"startsWith": {
"@id": "http://purl.org/dqm-vocabulary/v1/dqm#startsWith"
},
"tags": {
"@id": "schema:keywords"
},
"targetDescription": {
"@id": "schema:targetDescription"
},
"targetFramework": {
"@id": "schema:targetFramework"
},
"targetName": {
"@id": "schema:targetName"
},
"targetUrl": {
"@id": "schema:targetUrl"
},
"telephone": {
"@id": "schema:telephone"
},
"url": {
"@id": "schema:url",
"@type": "@id"
},
"version": {
"@id": "schema:version"
},
"alignment": {
"@id": "obi:alignment",
"@type": "@id"
},
"allowedOrigins": {
"@id": "obi:allowedOrigins"
},
"audience": {
"@id": "obi:audience"
},
"badge": {
"@id": "obi:badge",
"@type": "@id"
},
"criteria": {
"@id": "obi:criteria",
"@type": "@id"
},
"endorsementComment": {
"@id": "obi:endorsementComment"
},
"evidence": {
"@id": "obi:evidence",
"@type": "@id"
},
"hashed": {
"@id": "obi:hashed",
"@type": "xsd:boolean"
},
"identity": {
"@id": "obi:identityHash"
},
"issuedOn": {
"@id": "obi:issueDate",
"@type": "xsd:dateTime"
},
"issuer": {
"@id": "obi:issuer",
"@type": "@id"
},
"narrative": {
"@id": "obi:narrative"
},
"recipient": {
"@id": "obi:recipient",
"@type": "@id"
},
"revocationList": {
"@id": "obi:revocationList",
"@type": "@id"
},
"revocationReason": {
"@id": "obi:revocationReason"
},
"revoked": {
"@id": "obi:revoked",
"@type": "xsd:boolean"
},
"revokedAssertions": {
"@id": "obi:revoked"
},
"salt": {
"@id": "obi:salt"
},
"targetCode": {
"@id": "obi:targetCode"
},
"uid": {
"@id": "obi:uid"
},
"validatesType": "obi:validatesType",
"validationFrame": "obi:validationFrame",
"validationSchema": "obi:validationSchema",
"verification": {
"@id": "obi:verify",
"@type": "@id"
},
"verificationProperty": {
"@id": "obi:verificationProperty"
},
"verify": "verification"
},
"id": "http://example.org/badgeclass-with-verification-valid-starts-with",
"type": "BadgeClass",
"name": "Example Badge",
"description": "An example",
"criteria": "http://example.com/badgecriteria.json",
"issuer": "http://example.org/issuer-with-allowed-origins-valid-starts-with.json",
"image": "http://example.org/robotics-badge.png"
}

View File

@ -0,0 +1,208 @@
{
"@context": {
"id": "@id",
"type": "@type",
"extensions": "https://w3id.org/openbadges/extensions#",
"obi": "https://w3id.org/openbadges#",
"validation": "obi:validation",
"cred": "https://w3id.org/credentials#",
"dc": "http://purl.org/dc/terms/",
"schema": "http://schema.org/",
"sec": "https://w3id.org/security#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"AlignmentObject": "schema:AlignmentObject",
"CryptographicKey": "sec:Key",
"Endorsement": "cred:Credential",
"Assertion": "obi:Assertion",
"BadgeClass": "obi:BadgeClass",
"Criteria": "obi:Criteria",
"Evidence": "obi:Evidence",
"Extension": "obi:Extension",
"FrameValidation": "obi:FrameValidation",
"IdentityObject": "obi:IdentityObject",
"Image": "obi:Image",
"HostedBadge": "obi:HostedBadge",
"hosted": "obi:HostedBadge",
"Issuer": "obi:Issuer",
"Profile": "obi:Profile",
"RevocationList": "obi:RevocationList",
"SignedBadge": "obi:SignedBadge",
"signed": "obi:SignedBadge",
"TypeValidation": "obi:TypeValidation",
"VerificationObject": "obi:VerificationObject",
"author": {
"@id": "schema:author",
"@type": "@id"
},
"caption": {
"@id": "schema:caption"
},
"claim": {
"@id": "cred:claim",
"@type": "@id"
},
"created": {
"@id": "dc:created",
"@type": "xsd:dateTime"
},
"creator": {
"@id": "dc:creator",
"@type": "@id"
},
"description": {
"@id": "schema:description"
},
"email": {
"@id": "schema:email"
},
"endorsement": {
"@id": "cred:credential",
"@type": "@id"
},
"expires": {
"@id": "sec:expiration",
"@type": "xsd:dateTime"
},
"genre": {
"@id": "schema:genre"
},
"image": {
"@id": "schema:image",
"@type": "@id"
},
"name": {
"@id": "schema:name"
},
"owner": {
"@id": "sec:owner",
"@type": "@id"
},
"publicKey": {
"@id": "sec:publicKey",
"@type": "@id"
},
"publicKeyPem": {
"@id": "sec:publicKeyPem"
},
"related": {
"@id": "dc:relation",
"@type": "@id"
},
"startsWith": {
"@id": "http://purl.org/dqm-vocabulary/v1/dqm#startsWith"
},
"tags": {
"@id": "schema:keywords"
},
"targetDescription": {
"@id": "schema:targetDescription"
},
"targetFramework": {
"@id": "schema:targetFramework"
},
"targetName": {
"@id": "schema:targetName"
},
"targetUrl": {
"@id": "schema:targetUrl"
},
"telephone": {
"@id": "schema:telephone"
},
"url": {
"@id": "schema:url",
"@type": "@id"
},
"version": {
"@id": "schema:version"
},
"alignment": {
"@id": "obi:alignment",
"@type": "@id"
},
"allowedOrigins": {
"@id": "obi:allowedOrigins"
},
"audience": {
"@id": "obi:audience"
},
"badge": {
"@id": "obi:badge",
"@type": "@id"
},
"criteria": {
"@id": "obi:criteria",
"@type": "@id"
},
"endorsementComment": {
"@id": "obi:endorsementComment"
},
"evidence": {
"@id": "obi:evidence",
"@type": "@id"
},
"hashed": {
"@id": "obi:hashed",
"@type": "xsd:boolean"
},
"identity": {
"@id": "obi:identityHash"
},
"issuedOn": {
"@id": "obi:issueDate",
"@type": "xsd:dateTime"
},
"issuer": {
"@id": "obi:issuer",
"@type": "@id"
},
"narrative": {
"@id": "obi:narrative"
},
"recipient": {
"@id": "obi:recipient",
"@type": "@id"
},
"revocationList": {
"@id": "obi:revocationList",
"@type": "@id"
},
"revocationReason": {
"@id": "obi:revocationReason"
},
"revoked": {
"@id": "obi:revoked",
"@type": "xsd:boolean"
},
"revokedAssertions": {
"@id": "obi:revoked"
},
"salt": {
"@id": "obi:salt"
},
"targetCode": {
"@id": "obi:targetCode"
},
"uid": {
"@id": "obi:uid"
},
"validatesType": "obi:validatesType",
"validationFrame": "obi:validationFrame",
"validationSchema": "obi:validationSchema",
"verification": {
"@id": "obi:verify",
"@type": "@id"
},
"verificationProperty": {
"@id": "obi:verificationProperty"
},
"verify": "verification"
},
"id": "http://example.org/badgeclass-with-verification",
"type": "BadgeClass",
"name": "Example Badge",
"description": "An example",
"criteria": "http://example.com/badgecriteria.json",
"issuer": "http://example.org/issuer-with-allowed-origins.json",
"image": "http://example.org/robotics-badge.png"
}

View File

@ -0,0 +1,209 @@
{
"@context": {
"id": "@id",
"type": "@type",
"extensions": "https://w3id.org/openbadges/extensions#",
"obi": "https://w3id.org/openbadges#",
"validation": "obi:validation",
"cred": "https://w3id.org/credentials#",
"dc": "http://purl.org/dc/terms/",
"schema": "http://schema.org/",
"sec": "https://w3id.org/security#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"AlignmentObject": "schema:AlignmentObject",
"CryptographicKey": "sec:Key",
"Endorsement": "cred:Credential",
"Assertion": "obi:Assertion",
"BadgeClass": "obi:BadgeClass",
"Criteria": "obi:Criteria",
"Evidence": "obi:Evidence",
"Extension": "obi:Extension",
"FrameValidation": "obi:FrameValidation",
"IdentityObject": "obi:IdentityObject",
"Image": "obi:Image",
"HostedBadge": "obi:HostedBadge",
"hosted": "obi:HostedBadge",
"Issuer": "obi:Issuer",
"Profile": "obi:Profile",
"RevocationList": "obi:RevocationList",
"SignedBadge": "obi:SignedBadge",
"signed": "obi:SignedBadge",
"TypeValidation": "obi:TypeValidation",
"VerificationObject": "obi:VerificationObject",
"author": {
"@id": "schema:author",
"@type": "@id"
},
"caption": {
"@id": "schema:caption"
},
"claim": {
"@id": "cred:claim",
"@type": "@id"
},
"created": {
"@id": "dc:created",
"@type": "xsd:dateTime"
},
"creator": {
"@id": "dc:creator",
"@type": "@id"
},
"description": {
"@id": "schema:description"
},
"email": {
"@id": "schema:email"
},
"endorsement": {
"@id": "cred:credential",
"@type": "@id"
},
"expires": {
"@id": "sec:expiration",
"@type": "xsd:dateTime"
},
"genre": {
"@id": "schema:genre"
},
"image": {
"@id": "schema:image",
"@type": "@id"
},
"name": {
"@id": "schema:name"
},
"owner": {
"@id": "sec:owner",
"@type": "@id"
},
"publicKey": {
"@id": "sec:publicKey",
"@type": "@id"
},
"publicKeyPem": {
"@id": "sec:publicKeyPem"
},
"related": {
"@id": "dc:relation",
"@type": "@id"
},
"startsWith": {
"@id": "http://purl.org/dqm-vocabulary/v1/dqm#startsWith"
},
"tags": {
"@id": "schema:keywords"
},
"targetDescription": {
"@id": "schema:targetDescription"
},
"targetFramework": {
"@id": "schema:targetFramework"
},
"targetName": {
"@id": "schema:targetName"
},
"targetUrl": {
"@id": "schema:targetUrl"
},
"telephone": {
"@id": "schema:telephone"
},
"url": {
"@id": "schema:url",
"@type": "@id"
},
"version": {
"@id": "schema:version"
},
"alignment": {
"@id": "obi:alignment",
"@type": "@id"
},
"allowedOrigins": {
"@id": "obi:allowedOrigins"
},
"audience": {
"@id": "obi:audience"
},
"badge": {
"@id": "obi:badge",
"@type": "@id"
},
"criteria": {
"@id": "obi:criteria",
"@type": "@id"
},
"endorsementComment": {
"@id": "obi:endorsementComment"
},
"evidence": {
"@id": "obi:evidence",
"@type": "@id"
},
"hashed": {
"@id": "obi:hashed",
"@type": "xsd:boolean"
},
"identity": {
"@id": "obi:identityHash"
},
"issuedOn": {
"@id": "obi:issueDate",
"@type": "xsd:dateTime"
},
"issuer": {
"@id": "obi:issuer",
"@type": "@id"
},
"narrative": {
"@id": "obi:narrative"
},
"recipient": {
"@id": "obi:recipient",
"@type": "@id"
},
"revocationList": {
"@id": "obi:revocationList",
"@type": "@id"
},
"revocationReason": {
"@id": "obi:revocationReason"
},
"revoked": {
"@id": "obi:revoked",
"@type": "xsd:boolean"
},
"revokedAssertions": {
"@id": "obi:revoked"
},
"salt": {
"@id": "obi:salt"
},
"targetCode": {
"@id": "obi:targetCode"
},
"uid": {
"@id": "obi:uid"
},
"validatesType": "obi:validatesType",
"validationFrame": "obi:validationFrame",
"validationSchema": "obi:validationSchema",
"verification": {
"@id": "obi:verify",
"@type": "@id"
},
"verificationProperty": {
"@id": "obi:verificationProperty"
},
"verify": "verification"
},
"id": "http://example.org/issuer-with-allowed-origins",
"type": "Issuer",
"name": "Example Issuer",
"email": "me@example.org",
"url": "http://example.org",
"verification": {
"startsWith": ["https://example.org/NOT", "http://example.com/ALSONOT"]
}
}

View File

@ -0,0 +1,209 @@
{
"@context": {
"id": "@id",
"type": "@type",
"extensions": "https://w3id.org/openbadges/extensions#",
"obi": "https://w3id.org/openbadges#",
"validation": "obi:validation",
"cred": "https://w3id.org/credentials#",
"dc": "http://purl.org/dc/terms/",
"schema": "http://schema.org/",
"sec": "https://w3id.org/security#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"AlignmentObject": "schema:AlignmentObject",
"CryptographicKey": "sec:Key",
"Endorsement": "cred:Credential",
"Assertion": "obi:Assertion",
"BadgeClass": "obi:BadgeClass",
"Criteria": "obi:Criteria",
"Evidence": "obi:Evidence",
"Extension": "obi:Extension",
"FrameValidation": "obi:FrameValidation",
"IdentityObject": "obi:IdentityObject",
"Image": "obi:Image",
"HostedBadge": "obi:HostedBadge",
"hosted": "obi:HostedBadge",
"Issuer": "obi:Issuer",
"Profile": "obi:Profile",
"RevocationList": "obi:RevocationList",
"SignedBadge": "obi:SignedBadge",
"signed": "obi:SignedBadge",
"TypeValidation": "obi:TypeValidation",
"VerificationObject": "obi:VerificationObject",
"author": {
"@id": "schema:author",
"@type": "@id"
},
"caption": {
"@id": "schema:caption"
},
"claim": {
"@id": "cred:claim",
"@type": "@id"
},
"created": {
"@id": "dc:created",
"@type": "xsd:dateTime"
},
"creator": {
"@id": "dc:creator",
"@type": "@id"
},
"description": {
"@id": "schema:description"
},
"email": {
"@id": "schema:email"
},
"endorsement": {
"@id": "cred:credential",
"@type": "@id"
},
"expires": {
"@id": "sec:expiration",
"@type": "xsd:dateTime"
},
"genre": {
"@id": "schema:genre"
},
"image": {
"@id": "schema:image",
"@type": "@id"
},
"name": {
"@id": "schema:name"
},
"owner": {
"@id": "sec:owner",
"@type": "@id"
},
"publicKey": {
"@id": "sec:publicKey",
"@type": "@id"
},
"publicKeyPem": {
"@id": "sec:publicKeyPem"
},
"related": {
"@id": "dc:relation",
"@type": "@id"
},
"startsWith": {
"@id": "http://purl.org/dqm-vocabulary/v1/dqm#startsWith"
},
"tags": {
"@id": "schema:keywords"
},
"targetDescription": {
"@id": "schema:targetDescription"
},
"targetFramework": {
"@id": "schema:targetFramework"
},
"targetName": {
"@id": "schema:targetName"
},
"targetUrl": {
"@id": "schema:targetUrl"
},
"telephone": {
"@id": "schema:telephone"
},
"url": {
"@id": "schema:url",
"@type": "@id"
},
"version": {
"@id": "schema:version"
},
"alignment": {
"@id": "obi:alignment",
"@type": "@id"
},
"allowedOrigins": {
"@id": "obi:allowedOrigins"
},
"audience": {
"@id": "obi:audience"
},
"badge": {
"@id": "obi:badge",
"@type": "@id"
},
"criteria": {
"@id": "obi:criteria",
"@type": "@id"
},
"endorsementComment": {
"@id": "obi:endorsementComment"
},
"evidence": {
"@id": "obi:evidence",
"@type": "@id"
},
"hashed": {
"@id": "obi:hashed",
"@type": "xsd:boolean"
},
"identity": {
"@id": "obi:identityHash"
},
"issuedOn": {
"@id": "obi:issueDate",
"@type": "xsd:dateTime"
},
"issuer": {
"@id": "obi:issuer",
"@type": "@id"
},
"narrative": {
"@id": "obi:narrative"
},
"recipient": {
"@id": "obi:recipient",
"@type": "@id"
},
"revocationList": {
"@id": "obi:revocationList",
"@type": "@id"
},
"revocationReason": {
"@id": "obi:revocationReason"
},
"revoked": {
"@id": "obi:revoked",
"@type": "xsd:boolean"
},
"revokedAssertions": {
"@id": "obi:revoked"
},
"salt": {
"@id": "obi:salt"
},
"targetCode": {
"@id": "obi:targetCode"
},
"uid": {
"@id": "obi:uid"
},
"validatesType": "obi:validatesType",
"validationFrame": "obi:validationFrame",
"validationSchema": "obi:validationSchema",
"verification": {
"@id": "obi:verify",
"@type": "@id"
},
"verificationProperty": {
"@id": "obi:verificationProperty"
},
"verify": "verification"
},
"id": "http://example.org/issuer-with-allowed-origins",
"type": "Issuer",
"name": "Example Issuer",
"email": "me@example.org",
"url": "http://example.org",
"verification": {
"startsWith": "https://example.org/NOT"
}
}

View File

@ -0,0 +1,209 @@
{
"@context": {
"id": "@id",
"type": "@type",
"extensions": "https://w3id.org/openbadges/extensions#",
"obi": "https://w3id.org/openbadges#",
"validation": "obi:validation",
"cred": "https://w3id.org/credentials#",
"dc": "http://purl.org/dc/terms/",
"schema": "http://schema.org/",
"sec": "https://w3id.org/security#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"AlignmentObject": "schema:AlignmentObject",
"CryptographicKey": "sec:Key",
"Endorsement": "cred:Credential",
"Assertion": "obi:Assertion",
"BadgeClass": "obi:BadgeClass",
"Criteria": "obi:Criteria",
"Evidence": "obi:Evidence",
"Extension": "obi:Extension",
"FrameValidation": "obi:FrameValidation",
"IdentityObject": "obi:IdentityObject",
"Image": "obi:Image",
"HostedBadge": "obi:HostedBadge",
"hosted": "obi:HostedBadge",
"Issuer": "obi:Issuer",
"Profile": "obi:Profile",
"RevocationList": "obi:RevocationList",
"SignedBadge": "obi:SignedBadge",
"signed": "obi:SignedBadge",
"TypeValidation": "obi:TypeValidation",
"VerificationObject": "obi:VerificationObject",
"author": {
"@id": "schema:author",
"@type": "@id"
},
"caption": {
"@id": "schema:caption"
},
"claim": {
"@id": "cred:claim",
"@type": "@id"
},
"created": {
"@id": "dc:created",
"@type": "xsd:dateTime"
},
"creator": {
"@id": "dc:creator",
"@type": "@id"
},
"description": {
"@id": "schema:description"
},
"email": {
"@id": "schema:email"
},
"endorsement": {
"@id": "cred:credential",
"@type": "@id"
},
"expires": {
"@id": "sec:expiration",
"@type": "xsd:dateTime"
},
"genre": {
"@id": "schema:genre"
},
"image": {
"@id": "schema:image",
"@type": "@id"
},
"name": {
"@id": "schema:name"
},
"owner": {
"@id": "sec:owner",
"@type": "@id"
},
"publicKey": {
"@id": "sec:publicKey",
"@type": "@id"
},
"publicKeyPem": {
"@id": "sec:publicKeyPem"
},
"related": {
"@id": "dc:relation",
"@type": "@id"
},
"startsWith": {
"@id": "http://purl.org/dqm-vocabulary/v1/dqm#startsWith"
},
"tags": {
"@id": "schema:keywords"
},
"targetDescription": {
"@id": "schema:targetDescription"
},
"targetFramework": {
"@id": "schema:targetFramework"
},
"targetName": {
"@id": "schema:targetName"
},
"targetUrl": {
"@id": "schema:targetUrl"
},
"telephone": {
"@id": "schema:telephone"
},
"url": {
"@id": "schema:url",
"@type": "@id"
},
"version": {
"@id": "schema:version"
},
"alignment": {
"@id": "obi:alignment",
"@type": "@id"
},
"allowedOrigins": {
"@id": "obi:allowedOrigins"
},
"audience": {
"@id": "obi:audience"
},
"badge": {
"@id": "obi:badge",
"@type": "@id"
},
"criteria": {
"@id": "obi:criteria",
"@type": "@id"
},
"endorsementComment": {
"@id": "obi:endorsementComment"
},
"evidence": {
"@id": "obi:evidence",
"@type": "@id"
},
"hashed": {
"@id": "obi:hashed",
"@type": "xsd:boolean"
},
"identity": {
"@id": "obi:identityHash"
},
"issuedOn": {
"@id": "obi:issueDate",
"@type": "xsd:dateTime"
},
"issuer": {
"@id": "obi:issuer",
"@type": "@id"
},
"narrative": {
"@id": "obi:narrative"
},
"recipient": {
"@id": "obi:recipient",
"@type": "@id"
},
"revocationList": {
"@id": "obi:revocationList",
"@type": "@id"
},
"revocationReason": {
"@id": "obi:revocationReason"
},
"revoked": {
"@id": "obi:revoked",
"@type": "xsd:boolean"
},
"revokedAssertions": {
"@id": "obi:revoked"
},
"salt": {
"@id": "obi:salt"
},
"targetCode": {
"@id": "obi:targetCode"
},
"uid": {
"@id": "obi:uid"
},
"validatesType": "obi:validatesType",
"validationFrame": "obi:validationFrame",
"validationSchema": "obi:validationSchema",
"verification": {
"@id": "obi:verify",
"@type": "@id"
},
"verificationProperty": {
"@id": "obi:verificationProperty"
},
"verify": "verification"
},
"id": "http://example.org/issuer-with-allowed-origins",
"type": "Issuer",
"name": "Example Issuer",
"email": "me@example.org",
"url": "http://example.org",
"verification": {
"startsWith": ["https://example.org/", "http://example.com/assert"]
}
}

View File

@ -0,0 +1,209 @@
{
"@context": {
"id": "@id",
"type": "@type",
"extensions": "https://w3id.org/openbadges/extensions#",
"obi": "https://w3id.org/openbadges#",
"validation": "obi:validation",
"cred": "https://w3id.org/credentials#",
"dc": "http://purl.org/dc/terms/",
"schema": "http://schema.org/",
"sec": "https://w3id.org/security#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"AlignmentObject": "schema:AlignmentObject",
"CryptographicKey": "sec:Key",
"Endorsement": "cred:Credential",
"Assertion": "obi:Assertion",
"BadgeClass": "obi:BadgeClass",
"Criteria": "obi:Criteria",
"Evidence": "obi:Evidence",
"Extension": "obi:Extension",
"FrameValidation": "obi:FrameValidation",
"IdentityObject": "obi:IdentityObject",
"Image": "obi:Image",
"HostedBadge": "obi:HostedBadge",
"hosted": "obi:HostedBadge",
"Issuer": "obi:Issuer",
"Profile": "obi:Profile",
"RevocationList": "obi:RevocationList",
"SignedBadge": "obi:SignedBadge",
"signed": "obi:SignedBadge",
"TypeValidation": "obi:TypeValidation",
"VerificationObject": "obi:VerificationObject",
"author": {
"@id": "schema:author",
"@type": "@id"
},
"caption": {
"@id": "schema:caption"
},
"claim": {
"@id": "cred:claim",
"@type": "@id"
},
"created": {
"@id": "dc:created",
"@type": "xsd:dateTime"
},
"creator": {
"@id": "dc:creator",
"@type": "@id"
},
"description": {
"@id": "schema:description"
},
"email": {
"@id": "schema:email"
},
"endorsement": {
"@id": "cred:credential",
"@type": "@id"
},
"expires": {
"@id": "sec:expiration",
"@type": "xsd:dateTime"
},
"genre": {
"@id": "schema:genre"
},
"image": {
"@id": "schema:image",
"@type": "@id"
},
"name": {
"@id": "schema:name"
},
"owner": {
"@id": "sec:owner",
"@type": "@id"
},
"publicKey": {
"@id": "sec:publicKey",
"@type": "@id"
},
"publicKeyPem": {
"@id": "sec:publicKeyPem"
},
"related": {
"@id": "dc:relation",
"@type": "@id"
},
"startsWith": {
"@id": "http://purl.org/dqm-vocabulary/v1/dqm#startsWith"
},
"tags": {
"@id": "schema:keywords"
},
"targetDescription": {
"@id": "schema:targetDescription"
},
"targetFramework": {
"@id": "schema:targetFramework"
},
"targetName": {
"@id": "schema:targetName"
},
"targetUrl": {
"@id": "schema:targetUrl"
},
"telephone": {
"@id": "schema:telephone"
},
"url": {
"@id": "schema:url",
"@type": "@id"
},
"version": {
"@id": "schema:version"
},
"alignment": {
"@id": "obi:alignment",
"@type": "@id"
},
"allowedOrigins": {
"@id": "obi:allowedOrigins"
},
"audience": {
"@id": "obi:audience"
},
"badge": {
"@id": "obi:badge",
"@type": "@id"
},
"criteria": {
"@id": "obi:criteria",
"@type": "@id"
},
"endorsementComment": {
"@id": "obi:endorsementComment"
},
"evidence": {
"@id": "obi:evidence",
"@type": "@id"
},
"hashed": {
"@id": "obi:hashed",
"@type": "xsd:boolean"
},
"identity": {
"@id": "obi:identityHash"
},
"issuedOn": {
"@id": "obi:issueDate",
"@type": "xsd:dateTime"
},
"issuer": {
"@id": "obi:issuer",
"@type": "@id"
},
"narrative": {
"@id": "obi:narrative"
},
"recipient": {
"@id": "obi:recipient",
"@type": "@id"
},
"revocationList": {
"@id": "obi:revocationList",
"@type": "@id"
},
"revocationReason": {
"@id": "obi:revocationReason"
},
"revoked": {
"@id": "obi:revoked",
"@type": "xsd:boolean"
},
"revokedAssertions": {
"@id": "obi:revoked"
},
"salt": {
"@id": "obi:salt"
},
"targetCode": {
"@id": "obi:targetCode"
},
"uid": {
"@id": "obi:uid"
},
"validatesType": "obi:validatesType",
"validationFrame": "obi:validationFrame",
"validationSchema": "obi:validationSchema",
"verification": {
"@id": "obi:verify",
"@type": "@id"
},
"verificationProperty": {
"@id": "obi:verificationProperty"
},
"verify": "verification"
},
"id": "http://example.org/issuer-with-allowed-origins",
"type": "Issuer",
"name": "Example Issuer",
"email": "me@example.org",
"url": "http://example.org",
"verification": {
"startsWith": "https://example.org/"
}
}

View File

@ -0,0 +1,209 @@
{
"@context": {
"id": "@id",
"type": "@type",
"extensions": "https://w3id.org/openbadges/extensions#",
"obi": "https://w3id.org/openbadges#",
"validation": "obi:validation",
"cred": "https://w3id.org/credentials#",
"dc": "http://purl.org/dc/terms/",
"schema": "http://schema.org/",
"sec": "https://w3id.org/security#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"AlignmentObject": "schema:AlignmentObject",
"CryptographicKey": "sec:Key",
"Endorsement": "cred:Credential",
"Assertion": "obi:Assertion",
"BadgeClass": "obi:BadgeClass",
"Criteria": "obi:Criteria",
"Evidence": "obi:Evidence",
"Extension": "obi:Extension",
"FrameValidation": "obi:FrameValidation",
"IdentityObject": "obi:IdentityObject",
"Image": "obi:Image",
"HostedBadge": "obi:HostedBadge",
"hosted": "obi:HostedBadge",
"Issuer": "obi:Issuer",
"Profile": "obi:Profile",
"RevocationList": "obi:RevocationList",
"SignedBadge": "obi:SignedBadge",
"signed": "obi:SignedBadge",
"TypeValidation": "obi:TypeValidation",
"VerificationObject": "obi:VerificationObject",
"author": {
"@id": "schema:author",
"@type": "@id"
},
"caption": {
"@id": "schema:caption"
},
"claim": {
"@id": "cred:claim",
"@type": "@id"
},
"created": {
"@id": "dc:created",
"@type": "xsd:dateTime"
},
"creator": {
"@id": "dc:creator",
"@type": "@id"
},
"description": {
"@id": "schema:description"
},
"email": {
"@id": "schema:email"
},
"endorsement": {
"@id": "cred:credential",
"@type": "@id"
},
"expires": {
"@id": "sec:expiration",
"@type": "xsd:dateTime"
},
"genre": {
"@id": "schema:genre"
},
"image": {
"@id": "schema:image",
"@type": "@id"
},
"name": {
"@id": "schema:name"
},
"owner": {
"@id": "sec:owner",
"@type": "@id"
},
"publicKey": {
"@id": "sec:publicKey",
"@type": "@id"
},
"publicKeyPem": {
"@id": "sec:publicKeyPem"
},
"related": {
"@id": "dc:relation",
"@type": "@id"
},
"startsWith": {
"@id": "http://purl.org/dqm-vocabulary/v1/dqm#startsWith"
},
"tags": {
"@id": "schema:keywords"
},
"targetDescription": {
"@id": "schema:targetDescription"
},
"targetFramework": {
"@id": "schema:targetFramework"
},
"targetName": {
"@id": "schema:targetName"
},
"targetUrl": {
"@id": "schema:targetUrl"
},
"telephone": {
"@id": "schema:telephone"
},
"url": {
"@id": "schema:url",
"@type": "@id"
},
"version": {
"@id": "schema:version"
},
"alignment": {
"@id": "obi:alignment",
"@type": "@id"
},
"allowedOrigins": {
"@id": "obi:allowedOrigins"
},
"audience": {
"@id": "obi:audience"
},
"badge": {
"@id": "obi:badge",
"@type": "@id"
},
"criteria": {
"@id": "obi:criteria",
"@type": "@id"
},
"endorsementComment": {
"@id": "obi:endorsementComment"
},
"evidence": {
"@id": "obi:evidence",
"@type": "@id"
},
"hashed": {
"@id": "obi:hashed",
"@type": "xsd:boolean"
},
"identity": {
"@id": "obi:identityHash"
},
"issuedOn": {
"@id": "obi:issueDate",
"@type": "xsd:dateTime"
},
"issuer": {
"@id": "obi:issuer",
"@type": "@id"
},
"narrative": {
"@id": "obi:narrative"
},
"recipient": {
"@id": "obi:recipient",
"@type": "@id"
},
"revocationList": {
"@id": "obi:revocationList",
"@type": "@id"
},
"revocationReason": {
"@id": "obi:revocationReason"
},
"revoked": {
"@id": "obi:revoked",
"@type": "xsd:boolean"
},
"revokedAssertions": {
"@id": "obi:revoked"
},
"salt": {
"@id": "obi:salt"
},
"targetCode": {
"@id": "obi:targetCode"
},
"uid": {
"@id": "obi:uid"
},
"validatesType": "obi:validatesType",
"validationFrame": "obi:validationFrame",
"validationSchema": "obi:validationSchema",
"verification": {
"@id": "obi:verify",
"@type": "@id"
},
"verificationProperty": {
"@id": "obi:verificationProperty"
},
"verify": "verification"
},
"id": "http://example.org/issuer-with-allowed-origins",
"type": "Issuer",
"name": "Example Issuer",
"email": "me@example.org",
"url": "http://example.org",
"verification": {
"allowedOrigins": ["example.com"]
}
}

View File

@ -0,0 +1,18 @@
{
"@context": "https://w3id.org/openbadges/v2",
"type": "Assertion",
"id": "https://example.org/beths-robotics-badge.json",
"recipient": {
"type": "email",
"hashed": true,
"salt": "deadsea",
"identity": "sha256$ecf5409f3f4b91ab60cc5ef4c02aef7032354375e70cf4d8e43f6a1d29891942"
},
"image": "https://example.org/beths-robot-badge.png",
"evidence": "https://example.org/beths-robot-work.html",
"issuedOn": "2016-12-31T23:59:59Z",
"badge": "https://example.org/badgeclass-with-verification-invalid-multiple-starts-with.json",
"verification": {
"type": "hosted"
}
}

View File

@ -0,0 +1,18 @@
{
"@context": "https://w3id.org/openbadges/v2",
"type": "Assertion",
"id": "https://example.org/beths-robotics-badge.json",
"recipient": {
"type": "email",
"hashed": true,
"salt": "deadsea",
"identity": "sha256$ecf5409f3f4b91ab60cc5ef4c02aef7032354375e70cf4d8e43f6a1d29891942"
},
"image": "https://example.org/beths-robot-badge.png",
"evidence": "https://example.org/beths-robot-work.html",
"issuedOn": "2016-12-31T23:59:59Z",
"badge": "https://example.org/badgeclass-with-verification-invalid-starts-with.json",
"verification": {
"type": "hosted"
}
}

View File

@ -0,0 +1,18 @@
{
"@context": "https://w3id.org/openbadges/v2",
"type": "Assertion",
"id": "https://example.org/beths-robotics-badge.json",
"recipient": {
"type": "email",
"hashed": true,
"salt": "deadsea",
"identity": "sha256$ecf5409f3f4b91ab60cc5ef4c02aef7032354375e70cf4d8e43f6a1d29891942"
},
"image": "https://example.org/beths-robot-badge.png",
"evidence": "https://example.org/beths-robot-work.html",
"issuedOn": "2016-12-31T23:59:59Z",
"badge": "https://example.org/badgeclass-with-verification-valid-multiple-starts-with.json",
"verification": {
"type": "hosted"
}
}

View File

@ -0,0 +1,18 @@
{
"@context": "https://w3id.org/openbadges/v2",
"type": "Assertion",
"id": "https://example.org/beths-robotics-badge.json",
"recipient": {
"type": "email",
"hashed": true,
"salt": "deadsea",
"identity": "sha256$ecf5409f3f4b91ab60cc5ef4c02aef7032354375e70cf4d8e43f6a1d29891942"
},
"image": "https://example.org/beths-robot-badge.png",
"evidence": "https://example.org/beths-robot-work.html",
"issuedOn": "2016-12-31T23:59:59Z",
"badge": "https://example.org/badgeclass-with-verification-valid-starts-with.json",
"verification": {
"type": "hosted"
}
}

View File

@ -0,0 +1,18 @@
{
"@context": "https://w3id.org/openbadges/v2",
"type": "Assertion",
"id": "https://example.org/beths-robotics-badge.json",
"recipient": {
"type": "email",
"hashed": true,
"salt": "deadsea",
"identity": "sha256$ecf5409f3f4b91ab60cc5ef4c02aef7032354375e70cf4d8e43f6a1d29891942"
},
"image": "https://example.org/beths-robot-badge.png",
"evidence": "https://example.org/beths-robot-work.html",
"issuedOn": "2016-12-31T23:59:59Z",
"badge": "https://example.org/badgeclass-with-verification.json",
"verification": {
"type": "hosted"
}
}