File tree Expand file tree Collapse file tree 2 files changed +79
-0
lines changed Expand file tree Collapse file tree 2 files changed +79
-0
lines changed Original file line number Diff line number Diff line change
1
+ import { Authenticator } from './auth' ;
2
+ import { User } from './config_types' ;
3
+
4
+ export class OpenIDConnectAuth implements Authenticator {
5
+ public isAuthProvider ( user : User ) : boolean {
6
+ if ( ! user . authProvider ) {
7
+ return false ;
8
+ }
9
+ return user . authProvider . name === 'oidc' ;
10
+ }
11
+
12
+ public getToken ( user : User ) : string | null {
13
+ if ( ! user . authProvider . config || ! user . authProvider . config [ 'id-token' ] ) {
14
+ return null ;
15
+ }
16
+ // TODO: Handle expiration and refresh here...
17
+ // TODO: Extract the 'Bearer ' to config.ts?
18
+ return `Bearer ${ user . authProvider . config [ 'id-token' ] } ` ;
19
+ }
20
+ }
Original file line number Diff line number Diff line change
1
+ import { expect } from 'chai' ;
2
+
3
+ import { User } from './config_types' ;
4
+ import { OpenIDConnectAuth } from './oidc_auth' ;
5
+
6
+ describe ( 'OIDCAuth' , ( ) => {
7
+ const auth = new OpenIDConnectAuth ( ) ;
8
+ it ( 'should be true for oidc user' , ( ) => {
9
+ const user = {
10
+ authProvider : {
11
+ name : 'oidc' ,
12
+ } ,
13
+ } as User ;
14
+
15
+ expect ( auth . isAuthProvider ( user ) ) . to . equal ( true ) ;
16
+ } ) ;
17
+
18
+ it ( 'should be false for other user' , ( ) => {
19
+ const user = {
20
+ authProvider : {
21
+ name : 'azure' ,
22
+ } ,
23
+ } as User ;
24
+
25
+ expect ( auth . isAuthProvider ( user ) ) . to . equal ( false ) ;
26
+ } ) ;
27
+
28
+ it ( 'should be false for null user.authProvider' , ( ) => {
29
+ const user = { } as User ;
30
+
31
+ expect ( auth . isAuthProvider ( user ) ) . to . equal ( false ) ;
32
+ } ) ;
33
+
34
+ it ( 'get a token if present' , ( ) => {
35
+ const token = 'some token' ;
36
+ const user = {
37
+ authProvider : {
38
+ name : 'oidc' ,
39
+ config : {
40
+ 'id-token' : token ,
41
+ } ,
42
+ } ,
43
+ } as User ;
44
+
45
+ expect ( auth . getToken ( user ) ) . to . equal ( `Bearer ${ token } ` ) ;
46
+ } ) ;
47
+
48
+ it ( 'get null if token missing' , ( ) => {
49
+ const user = {
50
+ authProvider : {
51
+ name : 'oidc' ,
52
+ config : {
53
+ } ,
54
+ } ,
55
+ } as User ;
56
+
57
+ expect ( auth . getToken ( user ) ) . to . equal ( null ) ;
58
+ } ) ;
59
+ } ) ;
You can’t perform that action at this time.
0 commit comments