@@ -21,119 +21,107 @@ const verify = process.env.VERIFY_CREDENTIALS || false;
2121// create the proxy
2222/** @type {import('http-proxy-middleware/dist/types').RequestHandler<express.Request, express.Response> } */
2323const proxy = createProxyMiddleware ( {
24- target, // target host with the same base path
25- changeOrigin : true , // needed for virtual hosted sites
26- on : {
27- proxyReq : ( proxyReq , req , res ) => {
28- debug ( req . originalUrl ) ;
29- if ( tenant ) {
30- proxyReq . setHeader ( 'NGSILD-Tenant' , tenant ) ;
31- }
32- if ( walletType ) {
33- proxyReq . setHeader ( 'Wallet-type' , walletType ) ;
34- }
35- if ( walletToken ) {
36- proxyReq . setHeader ( 'Wallet-Token' , walletToken ) ;
37- }
38- if ( walletAddress ) {
39- proxyReq . setHeader ( 'Wallet-address' , walletAddress ) ;
40- }
41- if ( acceptEncoding ) {
42- proxyReq . setHeader ( 'accept-encoding' , acceptEncoding ) ;
43- }
24+ target, // target host with the same base path
25+ changeOrigin : true , // needed for virtual hosted sites
26+ on : {
27+ proxyReq : ( proxyReq , req , res ) => {
28+ debug ( req . originalUrl ) ;
29+ if ( tenant ) {
30+ proxyReq . setHeader ( 'NGSILD-Tenant' , tenant ) ;
31+ }
32+ if ( walletType ) {
33+ proxyReq . setHeader ( 'Wallet-type' , walletType ) ;
34+ }
35+ if ( walletToken ) {
36+ proxyReq . setHeader ( 'Wallet-Token' , walletToken ) ;
37+ }
38+ if ( walletAddress ) {
39+ proxyReq . setHeader ( 'Wallet-address' , walletAddress ) ;
40+ }
41+ if ( acceptEncoding ) {
42+ proxyReq . setHeader ( 'accept-encoding' , acceptEncoding ) ;
43+ }
44+ }
4445 }
45- }
4646} ) ;
4747
4848function initForwarder ( config , text ) {
49- const app = express ( ) ;
50- app . use ( '/health' , require ( 'express-healthcheck' ) ( ) ) ;
49+ const app = express ( ) ;
50+ app . use ( '/health' , require ( 'express-healthcheck' ) ( ) ) ;
5151
52- if ( verify ) {
53- app . use ( bearerToken ( ) ) ;
54- verifier = new Verifier . Verifier ( config ) ;
55- app . use ( '/' , verifier . verify ) ;
56- }
52+ if ( verify ) {
53+ app . use ( bearerToken ( ) ) ;
54+ verifier = new Verifier . Verifier ( config ) ;
55+ app . use ( '/' , verifier . verify ) ;
56+ }
5757
58- app . use ( '/' , proxy ) ;
59- app . listen ( PORT , function ( ) {
60- debug ( text ) ;
61- } ) ;
58+ app . use ( '/' , proxy ) ;
59+ app . listen ( PORT , function ( ) {
60+ debug ( text ) ;
61+ } ) ;
6262}
6363
6464/**
6565 * Check that the IDM is responding and the PEP is recognized within the IDM
6666 * @return an auth token representing the PEP itself to be used in subsequent requests
6767 */
6868function connect ( ) {
69- let retry = 20 ;
70- return new Promise ( ( resolve , reject ) => {
71- const connect_with_retry = async ( ) => {
72- try {
73- await ConfigService . checkConnectivity ( ) ;
74- debug (
75- `Credentials Config Service is now available - requesting config for ${ tenant } `
76- ) ;
69+ let retry = 20 ;
70+ return new Promise ( ( resolve , reject ) => {
71+ const connect_with_retry = async ( ) => {
72+ try {
73+ await ConfigService . checkConnectivity ( ) ;
74+ debug ( `Credentials Config Service is now available - requesting config for ${ tenant } ` ) ;
7775
78- ConfigService . getConfig ( tenant )
79- . then ( response => {
80- return resolve ( response ) ;
81- } )
82- . catch ( error => {
83- return reject (
84- 'Credentials Config Service rejected config: ' + error . message
85- ) ;
86- } ) ;
87- } catch ( e ) {
88- debug ( e . message ) ;
89- retry -- ;
90- if ( retry === 0 ) {
91- return reject (
92- 'Credentials Config Service is not available. Giving up after 20 attempts'
93- ) ;
94- }
95- debug ( 'retry after 5 seconds.' ) ;
96- //eslint-disable-next-line snakecase/snakecase
97- setTimeout ( connect_with_retry , 5000 ) ;
98- }
99- } ;
100- connect_with_retry ( ) ;
101- } ) ;
76+ ConfigService . getConfig ( tenant )
77+ . then ( ( response ) => {
78+ return resolve ( response ) ;
79+ } )
80+ . catch ( ( error ) => {
81+ return reject ( 'Credentials Config Service rejected config: ' + error . message ) ;
82+ } ) ;
83+ } catch ( e ) {
84+ debug ( e . message ) ;
85+ retry -- ;
86+ if ( retry === 0 ) {
87+ return reject ( 'Credentials Config Service is not available. Giving up after 20 attempts' ) ;
88+ }
89+ debug ( 'retry after 5 seconds.' ) ;
90+ //eslint-disable-next-line snakecase/snakecase
91+ setTimeout ( connect_with_retry , 5000 ) ;
92+ }
93+ } ;
94+ connect_with_retry ( ) ;
95+ } ) ;
10296}
10397
10498function startServer ( config ) {
105- if ( clusterWorkerSize > 1 ) {
106- if ( cluster . isMaster ) {
107- for ( let i = 0 ; i < clusterWorkerSize ; i ++ ) {
108- cluster . fork ( ) ;
109- }
110- cluster . on ( 'exit' , function ( worker ) {
111- debug ( 'Worker' , worker . id , ' has exited.' ) ;
112- } ) ;
99+ if ( clusterWorkerSize > 1 ) {
100+ if ( cluster . isMaster ) {
101+ for ( let i = 0 ; i < clusterWorkerSize ; i ++ ) {
102+ cluster . fork ( ) ;
103+ }
104+ cluster . on ( 'exit' , function ( worker ) {
105+ debug ( 'Worker' , worker . id , ' has exited.' ) ;
106+ } ) ;
107+ } else {
108+ initForwarder ( config , `Server listening on port ${ PORT } and worker ${ process . pid } ` ) ;
109+ }
113110 } else {
114- initForwarder (
115- config ,
116- `Server listening on port ${ PORT } and worker ${ process . pid } `
117- ) ;
111+ initForwarder ( config , `Server listening on port ${ PORT } with the single worker ${ process . pid } ` ) ;
118112 }
119- } else {
120- initForwarder (
121- config ,
122- `Server listening on port ${ PORT } with the single worker ${ process . pid } `
123- ) ;
124- }
125113}
126114
127115if ( verify ) {
128- connect ( ) . then (
129- config => {
130- startServer ( config ) ;
131- } ,
132- err => {
133- debug ( err ) ;
134- process . exit ( 1 ) ;
135- }
136- ) ;
116+ connect ( ) . then (
117+ ( config ) => {
118+ startServer ( config ) ;
119+ } ,
120+ ( err ) => {
121+ debug ( err ) ;
122+ process . exit ( 1 ) ;
123+ }
124+ ) ;
137125} else {
138- startServer ( null ) ;
126+ startServer ( null ) ;
139127}
0 commit comments