File tree Expand file tree Collapse file tree
config/credentials/verifiers Expand file tree Collapse file tree Original file line number Diff line number Diff line change 88 "@type" : " TypedVerifier" ,
99 "metaType" : " urn:solidlab:uma:claims:formats:meta" ,
1010 "verifiers" : [
11+ {
12+ "TypedVerifier:_verifiers_key" : " http://www.w3.org/ns/odrl/2/purpose" ,
13+ "TypedVerifier:_verifiers_value" : {
14+ "@id" : " urn:uma:default:KeyValueVerifier" ,
15+ "@type" : " KeyValueVerifier"
16+ }
17+ },
1118 {
1219 "TypedVerifier:_verifiers_key" : " urn:solidlab:uma:claims:formats:webid" ,
1320 "TypedVerifier:_verifiers_value" : {
Original file line number Diff line number Diff line change 1+ import { getLoggerFor } from '@solid/community-server' ;
2+ import { ClaimSet } from '../ClaimSet' ;
3+ import { Credential } from '../Credential' ;
4+ import { Verifier } from './Verifier' ;
5+
6+ /**
7+ * A verifier that assigns the credential token value as claims value, with the format being used as claims key.
8+ */
9+ export class KeyValueVerifier implements Verifier {
10+ protected readonly logger = getLoggerFor ( this ) ;
11+
12+ constructor ( ) {
13+ this . logger . warn ( "You are using an KeyValueVerifier. DO NOT USE THIS IN PRODUCTION !!!" ) ;
14+ }
15+
16+ public async verify ( credential : Credential ) : Promise < ClaimSet > {
17+ return {
18+ [ credential . format ] : credential . token
19+ }
20+ }
21+ }
Original file line number Diff line number Diff line change @@ -23,9 +23,13 @@ export class TypedVerifier implements Verifier {
2323 // Recursively verify in case of a meta credential token
2424 if ( credential . format === this . metaType ) {
2525 const metaClaims = { } ;
26- for ( const [ format , token ] of Object . entries ( credential . token ) ) {
27- Object . assign ( metaClaims , await this . verify ( { format, token } ) ) ;
26+ const metaToken = JSON . parse ( credential . token ) ;
27+ for ( const [ format , token ] of Object . entries ( metaToken ) ) {
28+ Object . assign ( metaClaims , await this . verify ( { format, token : token as string } ) ) ;
2829 }
30+
31+ this . logger . info ( `Combined verified claims into ${ JSON . stringify ( metaClaims ) } ` ) ;
32+
2933 return metaClaims ;
3034 }
3135
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ export * from './credentials/verify/TypedVerifier';
1010export * from './credentials/verify/UnsecureVerifier' ;
1111export * from './credentials/verify/SolidOidcVerifier' ;
1212export * from './credentials/verify/JwtVerifier' ;
13+ export * from './credentials/verify/KeyValueVerifier' ;
1314
1415// Dialog
1516export * from './dialog/Input' ;
You can’t perform that action at this time.
0 commit comments