J'utilise Spring-Boot-Admin afin de surveiller une application SpringBoot dont les extrémités des actionneurs sont sécurisées en utilisant l'authentification de base. Les informations d'identification requises sont transférées à Spring-Boot-Admin (SBA) comme décrit dans le documentation. SBA lui-même est également sécurisé en utilisant spring-boot-admin-server-ui-login
et le SecurityConfiguration fourni (basé sur la documentation & exemples d'applications, voir Github Repo pour le code). Tant l'application à surveiller et SBA sont déployés via docker.Spring Boot Admin: 401 sur le point de terminaison Jolokia provoque l'échec de l'authentification
La connexion à SBA fonctionne correctement et je peux voir l'état de l'application ainsi que les résultats de santé. Pour certains contenus, je vois un masque de connexion imbriqué. Lorsque je clique sur "Logging" ou "JMX" je suis redirigé vers le masque de connexion:
Dans l'onglet réseau des navigateurs, je peux voir qu'un 401 est renvoyé pour le point de terminaison /jolokia
. Toutes les demandes après cela semblent être transmises à la page de connexion.
J'ai les questions suivantes:
- Pourquoi suis-je ouvert une session si une demande à l'application échoue? Est-ce un bug?
- Quelle est la source de la 401? SBA ou mon application? Je sais que les demandes de procurations SBA à l'application. Selon les journaux d'accès de mon application, aucune demande à
/jolokia
n'est faite lorsque je me connecte à SBA. Est-ce que cela signifie que le 401 est renvoyé directement par SBA? Ses journaux ne contiennent rien de pertinent. - L'accès au point de terminaison
/jolokia
fonctionne directement. Cela fonctionne même lorsque j'utilise la même URL (proxy) que SBA utilise (par exemple,http://XXX:8090/api/applications/XXX/jolokia/
). Qu'est-ce qui est différent lorsque cela est exécuté à partir de SBA?
J'ai essayé de trouver plus de détails d'erreur dans SBA mais jusqu'ici échoué à trouver les options de journalisation appropriées. Ils ne contiennent aucune information pertinente ou trop importante (par exemple Spring Security) qui ne semble pas pertinente. Journalisation réponse complète serait probablement aider ...
Edit: Je viens de réaliser que la demande à l'extrémité /jolokia
contient en fait un autre cookie (Cookie: JSESSIONID = 4E51B84AE15A6890500F967B23EB92AC) que les demandes aux points d'extrémité de travail (par exemple /metrics
) . Thats bizarre, mais explique probablement pourquoi le point de terminaison /jolokia
renvoie un 401. Maintenant la question est: Pourquoi envoie-t-il un cookie différent?