@contrail/flexplm 1.7.7-alpha.5994a89 → 1.7.7-alpha.64e9563

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,10 +6,6 @@ export interface FCConfig {
6
6
  eventObjectClassParam?: string;
7
7
  eventFlexTypePathParam?: string;
8
8
  flexplmConnect?: any;
9
- 'flexplmConnect.sessionReuse.enabled'?: boolean | string;
10
- 'flexplmConnect.sessionReuse.ttlSeconds'?: number | string;
11
- 'flexplmConnect.sessionReuse.cookieName'?: string;
12
- 'flexplmConnect.sessionReuse.retryStatuses'?: number | number[] | string;
13
9
  taskId?: string;
14
10
  apiHost: string;
15
11
  userName(): string;
@@ -71,28 +71,14 @@ class FlexPLMConnect {
71
71
  /////////////////////////////////////////////////////////////////////////////
72
72
  ///////// ET-390 - Session reuse: start
73
73
  /////////////////////////////////////////////////////////////////////////////
74
- /*
75
- private get sessionOptions() {
76
- const sessReuseBool = this.config?.flexplmConnect?.sessionReuse;
77
- console.info('sessReuseBool value is --> ' + sessReuseBool);
78
- console.info('enabled value is --> ' + sessReuseBool?.enabled);
79
- return {
80
- enabled: sessReuseBool?.enabled === true || String(sessReuseBool?.enabled).toLowerCase() === 'true',
81
- ttlMs: (sessReuseBool?.ttlSeconds ?? 900) * 1000,
82
- cookieName: sessReuseBool?.cookieName ?? 'JSESSIONID',
83
- retryStatuses: (sessReuseBool?.retryStatuses ?? [401, 403]) as number[],
84
- };
85
- }
86
- */
87
74
  get sessionOptions() {
88
- const cfg = this.config ?? {};
89
- const sessReuseEntries = (name) => cfg[`flexplmConnect.sessionReuse.${name}`];
90
- const enabled = sessReuseEntries('enabled');
75
+ const sessReuse = this.config?.flexplmConnect?.sessionReuse;
76
+ const enabled = sessReuse?.enabled;
91
77
  return {
92
78
  enabled: enabled === true || String(enabled).toLowerCase() === 'true',
93
- ttlMs: parseTtlSeconds(sessReuseEntries('ttlSeconds')) * 1000,
94
- cookieName: parseCookieName(sessReuseEntries('cookieName')),
95
- retryStatuses: parseRetryStatuses(sessReuseEntries('retryStatuses')),
79
+ ttlMs: parseTtlSeconds(sessReuse?.ttlSeconds) * 1000,
80
+ cookieName: parseCookieName(sessReuse?.cookieName),
81
+ retryStatuses: parseRetryStatuses(sessReuse?.retryStatuses),
96
82
  };
97
83
  }
98
84
  /**
@@ -214,6 +200,7 @@ class FlexPLMConnect {
214
200
  }
215
201
  // Added for Session reuse - ET-390 - Starts
216
202
  const cookie = this.cookieHeader(sessionCookie);
203
+ console.info('cookie is --> : ' + cookie);
217
204
  if (cookie) {
218
205
  csrfOptions.headers['Cookie'] = cookie;
219
206
  }
@@ -268,6 +255,7 @@ class FlexPLMConnect {
268
255
  const csrfEndpoint = this.config.csrfEndpoint;
269
256
  const csrfURL = this.config.apiHost + urlContext + csrfEndpoint;
270
257
  console.info('csrfURL: ' + csrfURL);
258
+ console.info('sentCookie is -->: ' + sentCookie);
271
259
  // getRequestOptions will be called with additional sentCookie parameter
272
260
  const csrfOptions = this.getRequestOptions('GET', sentCookie);
273
261
  const response = await fetch(csrfURL, csrfOptions);
@@ -39,12 +39,8 @@ const resp = (status, setCookie = [], json = csrfBody) => ({
39
39
  });
40
40
  let userCounter = 0;
41
41
  const uniqueUser = () => 'sess-user-' + (++userCounter);
42
- // The connector config is flat: keys look like 'flexplmConnect.sessionReuse.enabled'
43
- const sessionConfig = (user, sessionReuse = { enabled: true }) => {
44
- const flat = {};
45
- Object.entries(sessionReuse).forEach(([k, v]) => { flat[`flexplmConnect.sessionReuse.${k}`] = v; });
46
- return createConfig({ userName: () => user, ...flat });
47
- };
42
+ // The connector config nests the entries: { flexplmConnect: { sessionReuse: { enabled: true, ... } } }
43
+ const sessionConfig = (user, sessionReuse = { enabled: true }) => createConfig({ userName: () => user, flexplmConnect: { sessionReuse } });
48
44
  const fetchMock = () => global.fetch;
49
45
  const callHeaders = (i) => fetchMock().mock.calls[i][1].headers;
50
46
  const callMethod = (i) => fetchMock().mock.calls[i][1].method;
@@ -610,6 +606,15 @@ describe('FlexPLMConnect session reuse - feature disabled (default)', () => {
610
606
  await new flexplm_connect_1.FlexPLMConnect(sessionConfig(u, { enabled: false })).sendToFlexPLM(payload);
611
607
  expect(callHeaders(1).Cookie).toBeUndefined();
612
608
  });
609
+ it('should ignore the legacy flat key form', async () => {
610
+ const u = uniqueUser();
611
+ fetchMock()
612
+ .mockResolvedValueOnce(resp(200, ['JSESSIONID=abc.tomcat1'])) // Set-Cookie present but must be ignored
613
+ .mockResolvedValueOnce(resp(200, [], {}));
614
+ const cfg = createConfig({ userName: () => u, 'flexplmConnect.sessionReuse.enabled': true });
615
+ await new flexplm_connect_1.FlexPLMConnect(cfg).sendToFlexPLM(payload);
616
+ expect(callHeaders(1).Cookie).toBeUndefined();
617
+ });
613
618
  });
614
619
  describe('FlexPLMConnect.getRequest session reuse', () => {
615
620
  it('should send the cached cookie on image/GET requests', async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrail/flexplm",
3
- "version": "1.7.7-alpha.5994a89",
3
+ "version": "1.7.7-alpha.64e9563",
4
4
  "description": "Library used for integration with flexplm.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",