File tree 6 files changed +7903
-25
lines changed
6 files changed +7903
-25
lines changed Original file line number Diff line number Diff line change 16
16
"docs:watch" : " npm run docs:build -- -s -w" ,
17
17
"format" : " prettier --single-quote --write projects/**/*.ts" ,
18
18
"copy:readme" : " cpr README.md dist/lib/README.md --overwrite"
19
- },
19
+ },
20
20
"private" : true ,
21
21
"dependencies" : {
22
22
"@angular/animations" : " 6.0.0" ,
29
29
"@angular/platform-browser" : " 6.0.0" ,
30
30
"@angular/platform-browser-dynamic" : " 6.0.0" ,
31
31
"@angular/router" : " 6.0.0" ,
32
+ "@types/jsonwebtoken" : " ^7.2.7" ,
32
33
"@webcomponents/custom-elements" : " ^1.1.0" ,
33
34
"angular-oauth2-oidc" : " ^2.1.8" ,
34
35
"bootstrap" : " ^3.3.7" ,
35
36
"core-js" : " ^2.5.1" ,
36
- "jsrsasign" : " ^8.0.12" ,
37
+ "jsonwebtoken" : " ^8.3.0" ,
38
+ "jwk-to-pem" : " ^2.0.0" ,
37
39
"rxjs" : " 6.1.0" ,
38
40
"rxjs-compat" : " ^6.0.0-rc.0" ,
39
41
"zone.js" : " ^0.8.26"
Original file line number Diff line number Diff line change 6
6
"entryFile" : " src/public_api.ts"
7
7
},
8
8
"whitelistedNonPeerDependencies" : [
9
- " jsrsasign"
9
+ " jsonwebtoken" ,
10
+ " jwk-to-pem" ,
11
+ " @types/jsonwebtoken"
10
12
]
11
13
12
- }
14
+ }
Original file line number Diff line number Diff line change 5
5
"entryFile" : " src/public_api.ts"
6
6
},
7
7
"whitelistedNonPeerDependencies" : [
8
- " jsrsasign"
8
+ " jsonwebtoken" ,
9
+ " jwk-to-pem" ,
10
+ " @types/jsonwebtoken"
9
11
]
10
- }
12
+ }
Original file line number Diff line number Diff line change 7
7
"version" : " 4.0.2" ,
8
8
"repository" : " manfredsteyer/angular-oauth2-oidc" ,
9
9
"dependencies" : {
10
- "jsrsasign" : " ^8.0.12"
10
+ "jsonwebtoken" : " ^8.3.0" ,
11
+ "jwk-to-pem" : " ^2.0.0" ,
12
+ "@types/jsonwebtoken" : " ^7.2.7"
11
13
},
12
14
"peerDependencies" : {
13
15
"@angular/common" : " ^6.0.0" ,
Original file line number Diff line number Diff line change @@ -2,11 +2,9 @@ import {
2
2
AbstractValidationHandler ,
3
3
ValidationParams
4
4
} from './validation-handler' ;
5
+ import * as jwkToPem from 'jwk-to-pem' ;
6
+ import * as jwt from 'jsonwebtoken' ;
5
7
6
- // declare var require: any;
7
- // let rs = require('jsrsasign');
8
-
9
- import * as rs from 'jsrsasign' ;
10
8
11
9
/**
12
10
* Validates the signature of an id_token against one
@@ -109,22 +107,18 @@ export class JwksValidationHandler extends AbstractValidationHandler {
109
107
return Promise . reject ( error ) ;
110
108
}
111
109
112
- let keyObj = rs . KEYUTIL . getKey ( key ) ;
113
- let validationOptions = {
114
- alg : this . allowedAlgorithms ,
115
- gracePeriod : this . gracePeriodInSec
116
- } ;
117
- let isValid = rs . KJUR . jws . JWS . verifyJWT (
118
- params . idToken ,
119
- keyObj ,
120
- validationOptions
121
- ) ;
122
-
123
- if ( isValid ) {
124
- return Promise . resolve ( ) ;
125
- } else {
110
+ const pem = jwkToPem ( key )
111
+ try {
112
+ jwt . verify (
113
+ params . idToken ,
114
+ pem ,
115
+ { algorithms : this . allowedAlgorithms , clockTolerance : this . gracePeriodInSec }
116
+ )
117
+ }
118
+ catch ( err ) {
126
119
return Promise . reject ( 'Signature not valid' ) ;
127
120
}
121
+ return Promise . resolve ( ) ;
128
122
}
129
123
130
124
private alg2kty ( alg : string ) {
You can’t perform that action at this time.
0 commit comments