Le but était au départ d'utiliser un proxy personnalisée pour l'API : xdownload.
Plutôt que d'utiliser Express, j'ai opté pour Fastify qui semblait plus rapide a mettre en oeuvre.
node server.js
ou en mode watch
node --watch server.js
Le serveur est à l'écoute sur le port : 3000
Il faut configurer l'application SBA pour qu'elle utilise ce proxy plutot que le proxy standard
// Initialization of @sinequa/core
export const startConfig: StartConfig = {
app: "training",
url: "http://localhost:3000",
production: environment.production,
// autoSAMLProvider: environment.autoSAMLProvider,
auditEnabled: true
};Exemple de seveur simple
// Require the framework and instantiate it
const fastify = require('fastify')({ logger: true })
// Declare a route
fastify.get('/', async (request, reply) => {
return { hello: 'world' }
})
// Run the server!
const start = async () => {
try {
await fastify.listen({ port: 3000 })
} catch (err) {
fastify.log.error(err)
process.exit(1)
}
}
start()Pour lancer le serveur
node server
Peut être utile si on souhaite proxifier l'API /xdownload pour retourner un fichier spécifique.
Exemple de configuration du proxy Angular :
{
"/api": {
"target": "http://localhost",
"secure": false,
"changeOrigin": true
},
"/xdownload": {
"target": "http://localhost:3000",
"secure": false,
"changeOrigin": true
},
"/saml/redirect": {
"target": "http://localhost",
"secure": false,
"changeOrigin": true
}
}Configuration alternative avec des context
[
{
"context": [
"/api", "/saml/redirect", "/auth/redirect"
],
"target": "http://localhost",
"secure": true,
"changeOrigin": true
},
{
"context": ["/xdownload"],
"target": "http://localhost:3000",
"secure": false,
"changeOrigin": false
}
]Toutes les réquêtes /xdownload seront routées vers ce proxy.
NOTE
voir le texte en commentaire dans le fichier server.js pour savoir comment servir un fichier local à la place.