fa-mcp-sdk 0.2.146 → 0.2.174

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.
Files changed (153) hide show
  1. package/README.md +1 -1
  2. package/bin/fa-mcp.js +66 -54
  3. package/cli-template/.env.example +2 -2
  4. package/cli-template/README.md +2 -2
  5. package/cli-template/fa-mcp-sdk-spec.md +122 -41
  6. package/cli-template/package.json +3 -3
  7. package/cli-template/r/TEST HTTP.xml +9 -0
  8. package/cli-template/{run/TEST SSE.run.xml → r/TEST SSE.xml } +2 -2
  9. package/cli-template/{run/TEST STDIO.run.xml → r/TEST STDIO.xml } +2 -2
  10. package/cli-template/r/generate-token.xml +14 -0
  11. package/cli-template/{run/kill-server.run.xml → r/kill-server.xml} +2 -2
  12. package/cli-template/{run/kill-token-gen-server.xml → r/remove-nul.xml} +4 -5
  13. package/{cli-template/config → config}/_local.yaml +28 -14
  14. package/{cli-template/config → config}/custom-environment-variables.yaml +3 -0
  15. package/{cli-template/config → config}/default.yaml +50 -10
  16. package/{cli-template/config → config}/development.yaml +4 -4
  17. package/config/local.yaml +81 -0
  18. package/{cli-template/config → config}/production.yaml +4 -4
  19. package/dist/core/_types_/active-directory-config.d.ts +3 -0
  20. package/dist/core/_types_/active-directory-config.d.ts.map +1 -1
  21. package/dist/core/_types_/config.d.ts +5 -1
  22. package/dist/core/_types_/config.d.ts.map +1 -1
  23. package/dist/core/_types_/types.d.ts +5 -1
  24. package/dist/core/_types_/types.d.ts.map +1 -1
  25. package/dist/core/ad/group-checker.d.ts +13 -0
  26. package/dist/core/ad/group-checker.d.ts.map +1 -0
  27. package/dist/core/ad/group-checker.js +86 -0
  28. package/dist/core/ad/group-checker.js.map +1 -0
  29. package/dist/core/auth/admin-auth.d.ts +16 -0
  30. package/dist/core/auth/admin-auth.d.ts.map +1 -0
  31. package/dist/core/auth/admin-auth.js +159 -0
  32. package/dist/core/auth/admin-auth.js.map +1 -0
  33. package/dist/core/auth/basic.d.ts +6 -0
  34. package/dist/core/auth/basic.d.ts.map +1 -0
  35. package/dist/core/auth/basic.js +26 -0
  36. package/dist/core/auth/basic.js.map +1 -0
  37. package/dist/core/auth/{jwt-validation.d.ts → jwt.d.ts} +4 -3
  38. package/dist/core/auth/jwt.d.ts.map +1 -0
  39. package/dist/core/auth/{jwt-validation.js → jwt.js} +9 -19
  40. package/dist/core/auth/jwt.js.map +1 -0
  41. package/dist/core/auth/middleware.d.ts.map +1 -1
  42. package/dist/core/auth/middleware.js +3 -3
  43. package/dist/core/auth/middleware.js.map +1 -1
  44. package/dist/core/auth/multi-auth.d.ts +14 -6
  45. package/dist/core/auth/multi-auth.d.ts.map +1 -1
  46. package/dist/core/auth/multi-auth.js +151 -141
  47. package/dist/core/auth/multi-auth.js.map +1 -1
  48. package/dist/core/auth/permanent.d.ts +6 -0
  49. package/dist/core/auth/permanent.d.ts.map +1 -0
  50. package/dist/core/auth/permanent.js +15 -0
  51. package/dist/core/auth/permanent.js.map +1 -0
  52. package/dist/core/auth/token-generator/ntlm/ntlm-domain-config.d.ts +1 -1
  53. package/dist/core/auth/token-generator/ntlm/ntlm-domain-config.d.ts.map +1 -1
  54. package/dist/core/auth/token-generator/ntlm/ntlm-domain-config.js +8 -10
  55. package/dist/core/auth/token-generator/ntlm/ntlm-domain-config.js.map +1 -1
  56. package/dist/core/auth/token-generator/ntlm/ntlm-integration.d.ts.map +1 -1
  57. package/dist/core/auth/token-generator/ntlm/ntlm-integration.js +9 -2
  58. package/dist/core/auth/token-generator/ntlm/ntlm-integration.js.map +1 -1
  59. package/dist/core/auth/token-generator/server.d.ts.map +1 -1
  60. package/dist/core/auth/token-generator/server.js +59 -25
  61. package/dist/core/auth/token-generator/server.js.map +1 -1
  62. package/dist/core/auth/types.d.ts +4 -3
  63. package/dist/core/auth/types.d.ts.map +1 -1
  64. package/dist/core/bootstrap/startup-info.d.ts.map +1 -1
  65. package/dist/core/bootstrap/startup-info.js +19 -0
  66. package/dist/core/bootstrap/startup-info.js.map +1 -1
  67. package/dist/core/consul/access-points-updater.js +1 -1
  68. package/dist/core/consul/access-points-updater.js.map +1 -1
  69. package/dist/core/consul/get-consul-api.d.ts +1 -1
  70. package/dist/core/consul/get-consul-api.d.ts.map +1 -1
  71. package/dist/core/consul/get-consul-api.js +1 -1
  72. package/dist/core/consul/get-consul-api.js.map +1 -1
  73. package/dist/core/consul/register.d.ts +1 -1
  74. package/dist/core/consul/register.d.ts.map +1 -1
  75. package/dist/core/index.d.ts +3 -1
  76. package/dist/core/index.d.ts.map +1 -1
  77. package/dist/core/index.js +3 -1
  78. package/dist/core/index.js.map +1 -1
  79. package/dist/core/init-mcp-server.d.ts.map +1 -1
  80. package/dist/core/init-mcp-server.js +1 -1
  81. package/dist/core/init-mcp-server.js.map +1 -1
  82. package/dist/core/utils/testing/McpSseClient.js.map +1 -1
  83. package/dist/core/web/admin-router.d.ts +10 -0
  84. package/dist/core/web/admin-router.d.ts.map +1 -0
  85. package/dist/core/web/admin-router.js +227 -0
  86. package/dist/core/web/admin-router.js.map +1 -0
  87. package/dist/core/web/favicon-svg.d.ts +1 -1
  88. package/dist/core/web/favicon-svg.d.ts.map +1 -1
  89. package/dist/core/web/favicon-svg.js +21 -3
  90. package/dist/core/web/favicon-svg.js.map +1 -1
  91. package/dist/core/web/home-api.d.ts +7 -0
  92. package/dist/core/web/home-api.d.ts.map +1 -0
  93. package/dist/core/web/home-api.js +93 -0
  94. package/dist/core/web/home-api.js.map +1 -0
  95. package/dist/core/web/server-http.d.ts +1 -0
  96. package/dist/core/web/server-http.d.ts.map +1 -1
  97. package/dist/core/web/server-http.js +60 -25
  98. package/dist/core/web/server-http.js.map +1 -1
  99. package/dist/core/web/static/home/index.html +206 -0
  100. package/dist/core/web/static/home/script.js +636 -0
  101. package/dist/core/web/{about-page/css.js → static/styles.css} +435 -105
  102. package/dist/core/web/static/token-gen/index.html +82 -0
  103. package/dist/core/web/static/token-gen/jwt-icon.svg +3 -0
  104. package/dist/core/web/static/token-gen/logout.svg +4 -0
  105. package/dist/core/web/static/token-gen/script.js +365 -0
  106. package/dist/core/web/static/token-gen/user.svg +4 -0
  107. package/dist/core/web/svg-icons.d.ts +7 -0
  108. package/dist/core/web/svg-icons.d.ts.map +1 -0
  109. package/dist/core/web/svg-icons.js +78 -0
  110. package/dist/core/web/svg-icons.js.map +1 -0
  111. package/package.json +7 -3
  112. package/scripts/copy-static.js +31 -0
  113. package/src/template/_examples/multi-auth-examples.ts +14 -47
  114. package/src/template/_types_/custom-config.ts +83 -0
  115. package/src/template/asset/logo.svg +4 -0
  116. package/src/template/start.ts +3 -3
  117. package/src/template/tools/handle-tool-call.ts +2 -1
  118. package/src/tests/mcp/test-http.js +10 -2
  119. package/src/tests/mcp/test-sse.js +10 -2
  120. package/src/tests/mcp/test-stdio.js +1 -2
  121. package/cli-template/run/TEST HTTP.run.xml +0 -5
  122. package/cli-template/run/TEST search.run.xml +0 -11
  123. package/cli-template/run/remove-nul.js.run.xml +0 -5
  124. package/dist/core/auth/jwt-validation.d.ts.map +0 -1
  125. package/dist/core/auth/jwt-validation.js.map +0 -1
  126. package/dist/core/auth/token-generator/html.d.ts +0 -9
  127. package/dist/core/auth/token-generator/html.d.ts.map +0 -1
  128. package/dist/core/auth/token-generator/html.js +0 -862
  129. package/dist/core/auth/token-generator/html.js.map +0 -1
  130. package/dist/core/web/about-page/css.d.ts +0 -2
  131. package/dist/core/web/about-page/css.d.ts.map +0 -1
  132. package/dist/core/web/about-page/css.js.map +0 -1
  133. package/dist/core/web/about-page/render.d.ts +0 -2
  134. package/dist/core/web/about-page/render.d.ts.map +0 -1
  135. package/dist/core/web/about-page/render.js +0 -773
  136. package/dist/core/web/about-page/render.js.map +0 -1
  137. /package/cli-template/{run/== START ==.run.xml → r/== START ==.xml} +0 -0
  138. /package/cli-template/{run/cb.run.xml → r/cb.xml} +0 -0
  139. /package/cli-template/{run/ci.run.xml → r/ci.xml} +0 -0
  140. /package/cli-template/{run/lint.run.xml → r/lint.xml} +0 -0
  141. /package/cli-template/{run/lint_fix.run.xml → r/lint_fix.xml} +0 -0
  142. /package/cli-template/{run/reinstall.run.xml → r/reinstall.xml} +0 -0
  143. /package/{cli-template/config → config}/test.yaml +0 -0
  144. /package/{src/template/asset/favicon.svg → dist/core/web/static/logo.svg} +0 -0
  145. /package/{cli-template/scripts → scripts}/kill-port.js +0 -0
  146. /package/{cli-template/scripts → scripts}/npm/patch_node_modules.js +0 -0
  147. /package/{cli-template/scripts → scripts}/npm/run.js +0 -0
  148. /package/{cli-template/scripts → scripts}/npm/yarn-ci.ps1 +0 -0
  149. /package/{cli-template/scripts → scripts}/npm/yarn-ci.sh +0 -0
  150. /package/{cli-template/scripts → scripts}/npm/yarn-reinstall.ps1 +0 -0
  151. /package/{cli-template/scripts → scripts}/npm/yarn-reinstall.sh +0 -0
  152. /package/{cli-template/scripts → scripts}/pre-commit +0 -0
  153. /package/{cli-template/scripts → scripts}/remove-nul.js +0 -0
@@ -1,11 +1,11 @@
1
- /**
2
- * Multi-authentication system core
3
- */
4
- import { checkToken } from './jwt-validation.js';
1
+ // noinspection UnnecessaryLocalVariableJS
2
+ import { checkJwtToken, generateToken, jwtTokenRE, MIN_ENCRYPT_KEY_LENGTH } from './jwt.js';
5
3
  import { logger as lgr } from '../logger.js';
6
- import { normalizeHeaders } from '../utils/utils.js';
4
+ import { normalizeHeaders, trim } from '../utils/utils.js';
7
5
  import chalk from 'chalk';
8
6
  import { appConfig } from '../bootstrap/init-config.js';
7
+ import { checkPermanentToken } from './permanent.js';
8
+ import { checkBasicAuth } from './basic.js';
9
9
  const logger = lgr.getSubLogger({ name: chalk.magenta('multi-auth') });
10
10
  const { enabled: authEnabled, permanentServerTokens: pt, basic: { username: bUsername, password: bPassword } = {}, jwtToken: { encryptKey } = {}, } = appConfig.webServer?.auth || {};
11
11
  /**
@@ -15,9 +15,26 @@ const authOrder = {
15
15
  'permanentServerTokens': 1, // O(1) Set.has()
16
16
  'basic': 2, // Base64 decoding
17
17
  'jwtToken': 3, // Symmetric decryption + JSON.parse
18
+ 'custom': 4,
18
19
  };
20
+ const schemaRe = /^([^ ]+) +(.+)$/;
19
21
  export const getTokenFromHttpHeader = (req) => {
20
- return (req.headers.authorization || '').replace(/^Bearer */, '');
22
+ const a = trim(req.headers.authorization);
23
+ if (!a) {
24
+ return {};
25
+ }
26
+ let scheme = '';
27
+ let credentials = a;
28
+ if (schemaRe.test(a)) {
29
+ ([scheme = '', credentials = ''] = a.split(/ +/));
30
+ }
31
+ if (scheme.toLowerCase() === 'basic') {
32
+ return { scheme: 'basic', credentials };
33
+ }
34
+ if (jwtTokenRE.test(credentials)) {
35
+ return { scheme: 'jwtToken', credentials };
36
+ }
37
+ return { scheme: 'permanentServerTokens', credentials };
21
38
  };
22
39
  /**
23
40
  * Gets custom auth validator from global context
@@ -27,179 +44,129 @@ function getCustomAuthValidator() {
27
44
  const fn = projectData?.customAuthValidator;
28
45
  return typeof fn === 'function' ? fn : undefined;
29
46
  }
47
+ const CUSTOM_AUTH_VALIDATOR = getCustomAuthValidator();
30
48
  /**
31
49
  * Detects configured authentication types in priority order (ascending CPU load)
32
50
  */
33
51
  export function detectAuthConfiguration() {
34
52
  const configured = [];
35
53
  const errors = {};
36
- const result = { configured, errors };
37
- if (!authEnabled) {
38
- return result;
39
- }
40
- // Check permanentServerTokens
41
- if (Array.isArray(pt) && pt.filter(Boolean)) {
42
- configured.push('permanentServerTokens');
43
- }
44
- // Check JWT Token
45
- if (encryptKey?.length) {
46
- configured.push('jwtToken');
47
- }
48
- // Check Basic Auth
49
- if (bUsername || bPassword) {
50
- const errs = [];
51
- // Default validation - require both username and password
52
- if (!bUsername) {
53
- errs.push('Username missing');
54
+ const result = { configured, errors, configuredSet: new Set(), configuredTypes: '' };
55
+ if (authEnabled) {
56
+ // Check permanentServerTokens
57
+ if (Array.isArray(pt) && pt.filter(Boolean)) {
58
+ configured.push('permanentServerTokens');
54
59
  }
55
- if (!bPassword) {
56
- errs.push('Password missing');
57
- }
58
- if (!errs.length) {
59
- configured.push('basic');
60
+ // Check JWT Token
61
+ if (encryptKey?.length) {
62
+ if (encryptKey.length < MIN_ENCRYPT_KEY_LENGTH) {
63
+ errors.jwtToken = [`JWT encryption key is too short (${encryptKey.length} chars) Must be at least ${MIN_ENCRYPT_KEY_LENGTH} chars long`];
64
+ }
65
+ else {
66
+ configured.push('jwtToken');
67
+ }
60
68
  }
61
- else {
62
- errors.basic = errs;
69
+ // Check Basic Auth
70
+ if (bUsername || bPassword) {
71
+ const errs = [];
72
+ // Default validation - require both username and password
73
+ if (!bUsername) {
74
+ errs.push('Username missing');
75
+ }
76
+ if (!bPassword) {
77
+ errs.push('Password missing');
78
+ }
79
+ if (!errs.length) {
80
+ configured.push('basic');
81
+ }
82
+ else {
83
+ errors.basic = errs;
84
+ }
63
85
  }
64
86
  }
87
+ if (CUSTOM_AUTH_VALIDATOR) {
88
+ configured.push('custom');
89
+ }
65
90
  result.configured = configured.sort((a, b) => authOrder[a] - authOrder[b]);
91
+ result.configuredSet = new Set(result.configured);
92
+ result.configuredTypes = result.configured.join(', ');
66
93
  return result;
67
94
  }
68
- /**
69
- * Basic Authentication validation
70
- */
71
- async function checkBasicAuth(token) {
72
- const authConfig = appConfig.webServer.auth;
73
- if (!authConfig.basic) {
74
- return { success: false, error: 'Basic auth not configured' };
75
- }
76
- try {
77
- // Expecting base64 encoded "username:password"
78
- const decoded = Buffer.from(token, 'base64').toString('utf8');
79
- const [username, password] = decoded.split(':');
80
- if (!username || !password) {
81
- return { success: false, error: 'Invalid basic auth format - missing username or password' };
82
- }
83
- if (username === bUsername && password === bPassword) {
84
- return {
85
- success: true,
86
- authType: 'basic',
87
- tokenType: 'basic',
88
- username,
89
- };
90
- }
91
- return { success: false, error: 'Invalid credentials' };
92
- }
93
- catch {
94
- return { success: false, error: 'Invalid basic auth format - not valid base64' };
95
- }
96
- }
95
+ const AUTH_CONFIGURATION = detectAuthConfiguration();
97
96
  /**
98
97
  * Checks auth using all configured authentication methods in ascending CPU load order
99
98
  */
100
99
  export async function checkMultiAuth(req) {
101
- const token = getTokenFromHttpHeader(req);
102
- if (!token) {
103
- return { success: false, error: 'Token not provided' };
104
- }
105
- const validAuthTypes = detectAuthConfiguration();
106
- const { configured } = validAuthTypes;
107
- if (configured.length) {
100
+ const { configured, configuredSet, configuredTypes } = AUTH_CONFIGURATION;
101
+ if (!configured.length) {
108
102
  return { success: false, error: 'No authentication methods configured' };
109
103
  }
110
- const configuredTypes = configured.join(', ');
104
+ const { scheme: authType, credentials } = getTokenFromHttpHeader(req);
105
+ if (!credentials) {
106
+ return { success: false, error: 'Auth credentials not provided' };
107
+ }
108
+ if (!authType) {
109
+ return { success: false, error: 'Cannot detect auth type from Authorization header' };
110
+ }
111
111
  logger.debug(`Checking auth types: ${configuredTypes}`);
112
- for (const authType of configured) {
113
- try {
114
- switch (authType) {
115
- case 'permanentServerTokens':
116
- case 'jwtToken':
117
- const result = checkToken({ token });
118
- if (result.errorReason) {
119
- return { success: false, error: result.errorReason };
120
- }
121
- return {
122
- success: true,
123
- authType,
124
- tokenType: result.inTokenType || 'unknown',
125
- payload: result.payload,
126
- };
127
- case 'basic':
128
- return await checkBasicAuth(token);
129
- default:
130
- return { success: false, error: `Unknown auth type: ${authType}` };
131
- }
132
- }
133
- catch (error) {
134
- logger.warn(`Auth type ${authType} failed with exception:`, error instanceof Error ? error.message : 'Unknown error');
135
- }
112
+ if (!configuredSet.has(authType)) {
113
+ return { success: false, error: `Detected in Authorisation header auth type ${authType} not configured` };
136
114
  }
137
- return {
138
- success: false,
139
- error: `Authentication failed for all configured methods: ${configuredTypes}`,
140
- };
141
- }
142
- /**
143
- * Enhanced authentication check that combines configured auth methods with custom validator
144
- */
145
- export async function checkCombinedAuth(req) {
146
- const { configured } = detectAuthConfiguration();
147
- const customValidator = getCustomAuthValidator();
148
- // Create request object with normalized headers for custom validator
149
- const requestWithNormalizedHeaders = customValidator ? {
150
- ...req,
151
- headers: normalizeHeaders(req.headers || {}),
152
- } : req;
153
- // If configured auth methods exist, check them first
154
- if (configured.length) {
155
- const multiAuthResult = await checkMultiAuth(req);
156
- if (multiAuthResult.success) {
157
- // If custom validator also exists, run it additionally
158
- if (customValidator) {
159
- try {
160
- const customResult = await customValidator(requestWithNormalizedHeaders);
161
- if (!customResult.success) {
162
- logger.debug(`Standard auth passed but custom validator rejected: ${customResult.error}`);
163
- return { success: false, error: customResult.error || 'Custom authentication failed' };
164
- }
165
- logger.debug('Both standard auth and custom validator passed');
166
- // Merge authentication results (prefer custom validator details if present)
167
- return { ...multiAuthResult, ...customResult };
115
+ let errorResult = undefined;
116
+ try {
117
+ switch (authType) {
118
+ case 'permanentServerTokens': {
119
+ const error = checkPermanentToken(credentials).errorReason;
120
+ if (!error) {
121
+ return { success: true, authType };
122
+ }
123
+ errorResult = { success: false, authType, error };
124
+ break;
125
+ }
126
+ case 'basic': {
127
+ const result = checkBasicAuth(credentials);
128
+ if (result.success) {
129
+ // For basic auth, create payload with user property
130
+ return { ...result, authType, payload: { user: result.username } };
168
131
  }
169
- catch (error) {
170
- logger.error('Custom auth validator failed:', error);
171
- return { success: false, error: 'Custom authentication validation failed' };
132
+ errorResult = { ...result, authType };
133
+ break;
134
+ }
135
+ case 'jwtToken': {
136
+ const { errorReason: error, payload, isTokenDecrypted } = checkJwtToken({ token: credentials });
137
+ if (!error) {
138
+ return { success: true, authType, payload };
172
139
  }
140
+ errorResult = { success: false, error, authType, isTokenDecrypted };
141
+ break;
173
142
  }
174
- return multiAuthResult;
143
+ case 'custom':
144
+ break;
145
+ default:
146
+ errorResult = { success: false, error: `Unknown auth type: ${authType}` };
175
147
  }
176
148
  }
177
- // If standard auth failed or no standard auth configured, try custom validator alone
178
- if (customValidator) {
149
+ catch (error) {
150
+ logger.warn(`Auth type ${authType} failed with exception:`, error instanceof Error ? error.message : 'Unknown error');
151
+ }
152
+ if (CUSTOM_AUTH_VALIDATOR) {
153
+ const requestWithNormalizedHeaders = { ...req, headers: normalizeHeaders(req.headers || {}) };
179
154
  try {
180
- const customResult = await customValidator(requestWithNormalizedHeaders);
181
- if (customResult.success) {
182
- logger.debug('Authentication successful using custom validator only');
183
- return customResult;
184
- }
185
- logger.debug(`Custom validator rejected authentication: ${customResult.error}`);
155
+ const customResult = await CUSTOM_AUTH_VALIDATOR(requestWithNormalizedHeaders);
156
+ return customResult;
186
157
  }
187
158
  catch (error) {
188
159
  logger.error('Custom auth validator failed:', error);
189
160
  return { success: false, error: 'Custom authentication validation failed' };
190
161
  }
191
162
  }
192
- // Both standard and custom auth failed
193
- const errorMsg = configured.length
194
- ? `Authentication failed for all methods: ${configured.join(', ')}${customValidator ? ' and custom validator' : ''}`
195
- : 'No authentication methods configured';
196
- return { success: false, error: errorMsg };
163
+ return errorResult || { success: false, error: `Authentication failed for all configured methods: ${configuredTypes}` };
197
164
  }
198
165
  /**
199
166
  * Logs authentication configuration (for debugging)
200
167
  */
201
168
  export function logAuthConfiguration() {
202
- const { configured, errors } = detectAuthConfiguration();
169
+ const { configured, errors } = AUTH_CONFIGURATION;
203
170
  logger.info('Auth system configuration:');
204
171
  logger.info(`- enabled: ${!!appConfig.webServer?.auth?.enabled}`);
205
172
  logger.info(`- configured types: ${configured.join(', ')}`);
@@ -210,4 +177,47 @@ export function logAuthConfiguration() {
210
177
  });
211
178
  }
212
179
  }
180
+ /**
181
+ * Determines authentication headers based on appConfig.webServer.auth configuration.
182
+ * Priority order:
183
+ * 1. permanentServerTokens - if at least one token is defined
184
+ * 2. basic auth - if username AND password are both set
185
+ * 3. JWT token - if jwtToken.encryptKey is set, generate token on the fly
186
+ * @returns {Object} Headers object with Authorization header if auth is enabled
187
+ */
188
+ export function getAuthHeadersForTests() {
189
+ const auth = appConfig.webServer?.auth;
190
+ // If auth is not enabled, no headers needed
191
+ if (!auth?.enabled) {
192
+ return {};
193
+ }
194
+ // 1. Check permanentServerTokens first (fastest CPU cost)
195
+ const tokens = auth.permanentServerTokens;
196
+ if (Array.isArray(tokens) && tokens.length > 0) {
197
+ // Find first non-empty token
198
+ const validToken = tokens.find(trim);
199
+ if (validToken) {
200
+ console.log(' Using permanentServerToken for authentication');
201
+ return { Authorization: `Bearer ${validToken}` };
202
+ }
203
+ }
204
+ // 2. Check basic auth (username AND password must both be set)
205
+ const basic = auth.basic;
206
+ if (basic?.username && basic?.password) {
207
+ const credentials = Buffer.from(`${basic.username}:${basic.password}`).toString('base64');
208
+ console.log(' Using Basic authentication');
209
+ return { Authorization: `Basic ${credentials}` };
210
+ }
211
+ // 3. Check JWT token - generate on the fly if encryptKey is set
212
+ const jwtConfig = auth.jwtToken;
213
+ if (jwtConfig?.encryptKey && jwtConfig.encryptKey.trim().length > 0) {
214
+ const token = generateToken('vpupkin', 100, { service: appConfig.name });
215
+ console.log(' Using generated JWT token for authentication');
216
+ return { Authorization: `Bearer ${token}` };
217
+ }
218
+ // No valid auth method configured but auth is enabled
219
+ console.warn('⚠️ Auth is enabled but no valid authentication method is configured!');
220
+ console.warn(' Configure one of: permanentServerTokens, basic auth, or jwtToken.encryptKey');
221
+ return {};
222
+ }
213
223
  //# sourceMappingURL=multi-auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-auth.js","sourceRoot":"","sources":["../../../src/core/auth/multi-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi-auth.js","sourceRoot":"","sources":["../../../src/core/auth/multi-auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { ICheckTokenResult } from './types.js';
2
+ /**
3
+ * Checks the validity of the permanent server token:
4
+ */
5
+ export declare const checkPermanentToken: (token: string) => ICheckTokenResult;
6
+ //# sourceMappingURL=permanent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permanent.d.ts","sourceRoot":"","sources":["../../../src/core/auth/permanent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAO/C;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,iBAMnD,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { trim } from '../utils/utils.js';
2
+ import { appConfig } from '../bootstrap/init-config.js';
3
+ const pt = appConfig.webServer?.auth?.permanentServerTokens || [];
4
+ const permanentServerTokensSet = new Set(Array.isArray(pt) ? pt : [pt]);
5
+ /**
6
+ * Checks the validity of the permanent server token:
7
+ */
8
+ export const checkPermanentToken = (token) => {
9
+ token = trim(token);
10
+ if (!token) {
11
+ return { errorReason: 'Token not passed' };
12
+ }
13
+ return permanentServerTokensSet.has(token) ? {} : { errorReason: 'Invalid permanent token' };
14
+ };
15
+ //# sourceMappingURL=permanent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permanent.js","sourceRoot":"","sources":["../../../src/core/auth/permanent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,qBAAqB,IAAI,EAAE,CAAC;AAClE,MAAM,wBAAwB,GAAgB,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAErF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAqB,EAAE;IACtE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;AAC/F,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { IDcConfig } from '../../../_types_/active-directory-config.js';
2
- export declare const isNTLMEnabled: () => boolean;
2
+ export declare const isNTLMEnabled: boolean;
3
3
  export declare const defaultTokenGenDomainConfig: IDcConfig;
4
4
  export declare const tokenGenDomains: {
5
5
  [domainName: string]: IDcConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"ntlm-domain-config.d.ts","sourceRoot":"","sources":["../../../../../src/core/auth/token-generator/ntlm/ntlm-domain-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAGxE,eAAO,MAAM,aAAa,QAAO,OAEhC,CAAC;AAaF,eAAO,MAAM,2BAA2B,EAAE,SAA2D,CAAC;AACtG,eAAO,MAAM,eAAe,EAAE;IAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAAO,CAAC;AAsCvE,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,KAAG,SAKrD,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;CAKhC,CAAC"}
1
+ {"version":3,"file":"ntlm-domain-config.d.ts","sourceRoot":"","sources":["../../../../../src/core/auth/token-generator/ntlm/ntlm-domain-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAGxE,eAAO,MAAM,aAAa,EAAE,OAAwG,CAAC;AAcrI,eAAO,MAAM,2BAA2B,EAAE,SAA2D,CAAC;AACtG,eAAO,MAAM,eAAe,EAAE;IAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAAO,CAAC;AAsCvE,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,KAAG,SAKrD,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;CAKhC,CAAC"}
@@ -2,11 +2,9 @@ import { NTLMAuthError } from 'ya-express-ntlm';
2
2
  import { isObject } from 'af-tools-ts';
3
3
  import { appConfig } from '../../../bootstrap/init-config.js';
4
4
  // Check if AD configuration is available
5
- export const isNTLMEnabled = () => {
6
- return !!(appConfig.ad && isObject(appConfig.ad.domains) && Object.keys(appConfig.ad.domains).length);
7
- };
5
+ export const isNTLMEnabled = !!(appConfig.ad && isObject(appConfig.ad.domains) && Object.keys(appConfig.ad.domains).length);
8
6
  // If AD config is null or undefined, NTLM authentication is disabled
9
- if (!isNTLMEnabled()) {
7
+ if (!isNTLMEnabled) {
10
8
  console.log('[TOKEN-GEN] NTLM authentication is DISABLED - no AD configuration found');
11
9
  }
12
10
  else {
@@ -18,7 +16,7 @@ else {
18
16
  export const defaultTokenGenDomainConfig = { controllers: [], username: '', password: '' };
19
17
  export const tokenGenDomains = {};
20
18
  // Process and validate all domains (same logic as main NTLM example)
21
- if (isNTLMEnabled()) {
19
+ if (isNTLMEnabled) {
22
20
  const { domains } = appConfig.ad;
23
21
  Object.entries(domains).forEach(([domainName, item]) => {
24
22
  const { controllers } = item;
@@ -54,13 +52,13 @@ export const getDomainConfig = (domainName) => {
54
52
  return tokenGenDomains[domainName] || defaultTokenGenDomainConfig;
55
53
  };
56
54
  export const tokenGenDomainConfig = {
57
- defaultDomain: isNTLMEnabled() ? defaultTokenGenDomainConfig.name : undefined,
58
- domains: isNTLMEnabled() ? tokenGenDomains : {},
59
- strategy: isNTLMEnabled() ? (appConfig.ad.strategy || 'NTLM') : undefined, // from config or default NTLM
60
- tlsOptions: isNTLMEnabled() ? appConfig.ad.tlsOptions : undefined, // from config if specified
55
+ defaultDomain: isNTLMEnabled ? defaultTokenGenDomainConfig.name : undefined,
56
+ domains: isNTLMEnabled ? tokenGenDomains : {},
57
+ strategy: isNTLMEnabled ? (appConfig.ad.strategy || 'NTLM') : undefined, // from config or default NTLM
58
+ tlsOptions: isNTLMEnabled ? appConfig.ad.tlsOptions : undefined, // from config if specified
61
59
  };
62
60
  // Debug info VVR
63
- if (isNTLMEnabled()) {
61
+ if (isNTLMEnabled) {
64
62
  console.log(`[TOKEN-GEN] Configured domains: ${Object.keys(tokenGenDomains).join(', ')}`);
65
63
  console.log(`[TOKEN-GEN] Default domain: ${tokenGenDomainConfig.defaultDomain}`);
66
64
  console.log(`[TOKEN-GEN] Strategy: ${tokenGenDomainConfig.strategy}`);
@@ -1 +1 @@
1
- {"version":3,"file":"ntlm-domain-config.js","sourceRoot":"","sources":["../../../../../src/core/auth/token-generator/ntlm/ntlm-domain-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ntlm-domain-config.js","sourceRoot":"","sources":["../../../../../src/core/auth/token-generator/ntlm/ntlm-domain-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG9D,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAY,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAGrI,qEAAqE;AACrE,IAAI,CAAC,aAAa,EAAE,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;AACzF,CAAC;KAAM,CAAC;IACN,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAEjC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACvD,MAAM,IAAI,aAAa,CAAC,8CAA8C,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAc,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACtG,MAAM,CAAC,MAAM,eAAe,GAAwC,EAAE,CAAC;AAEvE,qEAAqE;AACrE,IAAI,aAAa,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAEjC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;QACrD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,aAAa,CAAC,2CAA2C,UAAU,GAAG,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,aAAa,CAAC,aAAa,UAAU,oBAAoB,CAAC,CAAC;QACvE,CAAC;QAED,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,aAAa,CAAC,qFAAqF,UAAU,UAAU,EAAE,EAAE,CAAC,CAAC;YACzI,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAEnC,mCAAmC;QACnC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;YACjD,2BAA2B,CAAC,IAAI,GAAG,UAAU,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,IAAI,aAAa,CAAC,6DAA6D,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAmB,EAAa,EAAE;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,OAAO,eAAe,CAAC,UAAU,CAAC,IAAI,2BAA2B,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;IAC3E,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;IAC7C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,8BAA8B;IACvG,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,2BAA2B;CAC7F,CAAC;AAEF,iBAAiB;AACjB,IAAI,aAAa,EAAE,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,mCAAmC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,+BAA+B,oBAAoB,CAAC,aAAa,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,yBAAyB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxE,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;AAC9F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ntlm-integration.d.ts","sourceRoot":"","sources":["../../../../../src/core/auth/token-generator/ntlm/ntlm-integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAU1D,eAAO,MAAM,uBAAuB,eAIlB,OAAO,OAAO,QAAQ,QAAQ,YAAY,YA8D3D,CAAC"}
1
+ {"version":3,"file":"ntlm-integration.d.ts","sourceRoot":"","sources":["../../../../../src/core/auth/token-generator/ntlm/ntlm-integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAU1D,eAAO,MAAM,uBAAuB,eAIlB,OAAO,OAAO,QAAQ,QAAQ,YAAY,YAsE3D,CAAC"}
@@ -4,10 +4,10 @@ import { checkTokenGenSession, getSessionStats } from './ntlm-session-storage.js
4
4
  import { getLoginPageHTML } from './ntlm-templates.js';
5
5
  import { isNTLMEnabled } from './ntlm-domain-config.js';
6
6
  // Create NTLM middleware instance (only if NTLM is enabled)
7
- const ntlmMiddleware = isNTLMEnabled() ? authNTLM(tokenGenNtlmOptions) : null;
7
+ const ntlmMiddleware = isNTLMEnabled ? authNTLM(tokenGenNtlmOptions) : null;
8
8
  // Main NTLM authentication setup function
9
9
  export const setupNTLMAuthentication = () => {
10
- if (!isNTLMEnabled()) {
10
+ if (!isNTLMEnabled) {
11
11
  console.log('[TOKEN-GEN] NTLM authentication is DISABLED - skipping middleware setup');
12
12
  // Return middleware that just passes through
13
13
  return [(req, res, next) => {
@@ -60,6 +60,13 @@ export const setupNTLMAuthentication = () => {
60
60
  console.log(`[TOKEN-GEN] Request from authenticated user: ${req.ntlm.domain}\\${req.ntlm.username} -> ${req.method} ${req.path}`);
61
61
  return next();
62
62
  }
63
+ // Clear non-NTLM Authorization header (e.g., Basic auth cached by browser for same origin)
64
+ // This forces NTLM middleware to send 401 with WWW-Authenticate: NTLM
65
+ const authHeader = req.headers.authorization;
66
+ if (authHeader && !authHeader.startsWith('NTLM ')) {
67
+ console.log('[TOKEN-GEN] Clearing non-NTLM Authorization header to trigger NTLM auth');
68
+ delete req.headers.authorization;
69
+ }
63
70
  // Run NTLM authentication
64
71
  console.log(`[TOKEN-GEN] Starting NTLM authentication for: ${req.method} ${req.path}`);
65
72
  ntlmMiddleware(req, res, next);
@@ -1 +1 @@
1
- {"version":3,"file":"ntlm-integration.js","sourceRoot":"","sources":["../../../../../src/core/auth/token-generator/ntlm/ntlm-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ntlm-integration.js","sourceRoot":"","sources":["../../../../../src/core/auth/token-generator/ntlm/ntlm-integration.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/core/auth/token-generator/server.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,uGA+M7C,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/core/auth/token-generator/server.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,uGAmP7C,CAAC"}