0

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: Embedded login mask

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:

  1. Pourquoi suis-je ouvert une session si une demande à l'application échoue? Est-ce un bug?
  2. 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.
  3. 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?

Répondre

0

J'ai essayé plusieurs choses, mais à la fin je n'ai pas pu résoudre ce problème. Je ai fini à la place avec une configuration différente: Pas de sécurité du tout pour les points d'extrémité (management.security.enabled=false), mais les exposant sur un port différent (management.port=8081). Ce point de terminaison de gestion est bloqué pour un accès externe au système complètement.

Avec cela, SBA se comporte bien et l'application est toujours sécurisée. En fin de compte, c'est une configuration beaucoup plus simple qui est bonne aussi.