Open cariolet opened 8 months ago
@cariolet I tried this on Node 16 / Hapi 21.3.3:
import { Server } from '@hapi/hapi';
import Boom from '@hapi/boom';
const server = new Server({
port: 3000,
host: 'localhost',
});
server.auth.scheme('custom', () => ({
authenticate: (request, h) => {
return h.unauthenticated(
Boom.unauthorized()
)
}
}));
server.auth.strategy('custom', 'custom');
server.route({
method: 'POST',
path: '/',
handler: (request, h) => {
return 'Hello World!';
},
options: {
auth: 'custom',
payload: {
output: 'stream',
parse: true,
allow: 'application/json',
maxBytes: 10 * 1024 * 1024
}
}
});
const init = async () => {
await server.start();
console.log(`Server running on ${server.info.uri}`);
};
init();
and I get the following response:
curl localhost:3000 -d '{ "hello": true }'
{"statusCode":401,"error":"Unauthorized","message":"Unauthorized"}
And using allow: 'multipart/form-data',
yields the same response
Could you give a more complete example?
Hi, It also returns 401 Unauthorized to me if I send a payload with little data. If I send a large payload (e.g. 3/4MB) I get "no response" and not 401 Unauthorized Thanks
Runtime
node.js
Runtime version
16.18.1
Module version
21.3.3
Last module version without issue
No response
Used with
No response
Any other relevant information
No response
What are you trying to achieve or the steps to reproduce?
1) Define a strategy 2) Define a post route for uploading large files (e.g. an image) 3) Assign the previously defined strategy to the route 4) Define a form-data client call to load a large file (e.g. 3/4 MB)
Below is the hapi server code to reproduce the error
What was the result you got?
If the defined strategy returns an unauthorized route error, a "no response" is returned to the client
What result did you expect?
I expect it to return error 401