web-dev-qa-db-fra.com

HttpSecurity, WebSecurity et AuthenticationManagerBuilder

Quelqu'un pourrait-il expliquer quand remplacer configure(HttpSecurity), configure(WebSecurity) et configure(AuthenticationManagerBuilder)?

90
user3488241

configure (AuthenticationManagerBuilder) est utilisé pour établir un mécanisme d'authentification en permettant aux AuthenticationProviders d'être ajoutés facilement: par ex. Ce qui suit définit l'authentification en mémoire avec les connexions intégrées "utilisateur" et "admin".

public void configure(AuthenticationManagerBuilder auth) {
    auth
        .inMemoryAuthentication()
        .withUser("user")
        .password("password")
        .roles("USER")
    .and()
        .withUser("admin")
        .password("password")
        .roles("ADMIN","USER");
}

configure (HttpSecurity) permet la configuration de la sécurité basée sur le Web au niveau des ressources, sur la base d'une correspondance de sélection - par ex. L'exemple ci-dessous restreint les URL commençant par/admin/aux utilisateurs qui ont un rôle ADMIN et déclare que toutes les autres URL doivent être authentifiées avec succès.

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
        .antMatchers("/admin/**").hasRole("ADMIN")
        .anyRequest().authenticated()
}

configure (WebSecurity) est utilisé pour les paramètres de configuration qui ont un impact sur la sécurité globale (ignorer les ressources, définir le mode de débogage, rejeter les demandes en implémentant une définition de pare-feu personnalisée). Par exemple, la méthode suivante entraînerait l'ignorance de toute demande commençant par/resources/à des fins d'authentification.

public void configure(WebSecurity web) throws Exception {
    web
        .ignoring()
        .antMatchers("/resources/**");
}

Vous pouvez vous référer au lien suivant pour plus d'informations Spring Security Java Config Preview: Web Security

109
Nick Vasic