9
votes

Spring Boot Management POINTS DE FIN DE SÉCURITÉ DE BASE

Comment utiliser la sécurité de base des points de fin de gestion tels que / env, la santé, / métriques ? Je souhaite utiliser différentes informations d'identification de l'utilisateur pour les points de fin ci-dessus par rapport à la sécurité des points d'extrémité du contrôleur d'applications. Dans mon application.Properties, j'ai spécifié ci-dessous pour la sécurité du contrôleur d'application xxx

mais je veux un nom d'utilisateur / mot de passe différent pour les points d'extrémité de gestion. Impossible de trouver gestion.security.user.name propriété.


0 commentaires

3 Réponses :


2
votes

Security Spring a un "Global" authentificationManager configuré dans @bean des instances de type globalauthentinicationconfigureAdapter . Ce authentificationManager est celui configuré par le Security.user. * Propriétés, sauf si vous définissez sécurité.basic.enabled = false . Le global am est également joint aux points d'extrémité de gestion par défaut et c'est le parent de tout «code local» authentificationManagers défini dans WebsecurityConfigurationAnadapters (ils sont tous Providermanagers ).

Ainsi, si vous voulez différents comptes d'utilisateurs pour les points d'extrémité de gestion et les points de terminaison d'application, vous avez (au moins) deux choix:

  • Définissez un AM local pour vos paramètres d'application dans un WebSecurityConfigurationAdapter et assurez-vous que les points d'extrémité de gestion ne sont pas couverts par ce filtre. C'est facile, car c'est ce que vous obtenez sans penser beaucoup et il suffit d'ajouter un authentificationmanagerbuilder à votre WebsecurityConfigurationAdapter (tant qu'il est commandé attentivement par rapport à la filtre qui sécurise les points d'extrémité de gestion ).

  • Utilisez le global am (ou en effet un autre local) pour les points de terminaison d'application et reconfigurez la sécurité des points d'extrémité de gestion (par exemple, définir Security.basic.Enabled = False et ajoutez votre propre WebsecurityConfigurierAdapter couvrant les points d'extrémité de gestion). Cela pourrait être plus de travail et duplique certaines des défauts de démarrage, mais au moins, vous saurez ce que vous obtenez.


0 commentaires

2
votes

Dave déjà expliqué bien, mais ici un exemple complet avec WebsecurityConfigurierAdapter et base de données en tant que source authentifie.

SecurityConfig.java strong> p>

$ curl -u admin:password http://127.0.0.1:8081/management/health
{"status":"UP","diskSpace":{"status":"UP","free":163634987008,"threshold":10485760},"db":{"status":"UP","database":"H2","hello":1}}


0 commentaires

3
votes

Pour implémenter les points de fin de la sécurité de base, vous devez utiliser le code ci-dessous

@Configuration
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable().authorizeRequests().anyRequest().authenticated().and().httpBasic();
    }
}


0 commentaires