L'Authentification de base avec Spring Boot
Je développe une petite application avec spring-boot et angularjs. L'idée est que le backend de l'application d'exposer certains services, et le frontend consommer ces services. J'essaye de configurer l'authentification de base
C'est mon pom.xml
<!-- Web Server -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- End Web Server -->
<!-- Spring Security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- End Spring Security -->
les deux sont dans la même version 1.1.1.La LIBÉRATION. Mon WebSecurityConfig
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/css/**", "/js/**").permitAll()
.anyRequest().authenticated();
http
.formLogin()
.defaultSuccessUrl("/")
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Override
protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
authManagerBuilder.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
Ce n'est pas de travail. Semble que l'utilisateur et le mot de passe ne sont pas fixés dans la mémoire.
Quand le printemps de démarrage est exécuté, il crée un mot de passe par défaut, voici ce qui apparaît dans la console
AuthenticationManagerConfiguration :
Using default security password: xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Et la demande de travail avec ce mot de passe.
Merci
Avez-vous essayé cette forme? curl --nom d'utilisateur:mot de passe localhost:8080
je vous remercie pour votre commentaire. J'ai essayé et ça ne fonctionne pas. Ce que j'essaie aussi d'authentification d'accès de Base à l'application avec le navigateur.
À travers le navigateur, vous êtes présenté avec un dialogue de connexion? Ou est-ce qu'il va droit à l'erreur?
Dans le navigateur, j'obtiens le dialogue de connexion. Désolé a été mon mauvais, je pensais que dans la classe "WebSecurityConfig" j'ai été en réglage "utilisateur" et "mot de passe", littéralement, mais en fait c'était l'impression que le mot de passe dans la console, avec ce mot de passe de travail. Je vais essayer de comprendre comment mettre un mot de passe. Je vous remercie.
Cette configuration met en place dans la mémoire de l'authentification d'un utilisateur appelé "utilisateur" avec un mot de passe "mot de passe". Si vous souhaitez stocker les utilisateurs quelque part d'autre (hautement probable), alors vous aurez besoin pour configurer votre propre mise en œuvre de
je vous remercie pour votre commentaire. J'ai essayé et ça ne fonctionne pas. Ce que j'essaie aussi d'authentification d'accès de Base à l'application avec le navigateur.
À travers le navigateur, vous êtes présenté avec un dialogue de connexion? Ou est-ce qu'il va droit à l'erreur?
Dans le navigateur, j'obtiens le dialogue de connexion. Désolé a été mon mauvais, je pensais que dans la classe "WebSecurityConfig" j'ai été en réglage "utilisateur" et "mot de passe", littéralement, mais en fait c'était l'impression que le mot de passe dans la console, avec ce mot de passe de travail. Je vais essayer de comprendre comment mettre un mot de passe. Je vous remercie.
Cette configuration met en place dans la mémoire de l'authentification d'un utilisateur appelé "utilisateur" avec un mot de passe "mot de passe". Si vous souhaitez stocker les utilisateurs quelque part d'autre (hautement probable), alors vous aurez besoin pour configurer votre propre mise en œuvre de
UserDetailsService
qui valide les informations d'identification sur une base de données ou un annuaire LDAP.OriginalL'auteur agusgambina | 2014-07-31
Vous devez vous connecter pour publier un commentaire.
Vous pouvez remplacer le nom d'utilisateur par défaut (valeur par défaut = utilisateur) et le mot de passe est généré à la volée, par la mise en au-dessous de propriétés dans votre
application.properties
fichier:Afin d'inscrire plus d'un utilisateur, vous devez construire notre propre
AuthenticationManager
de configuration.OriginalL'auteur CodeNotFound
J'ai eu ce problème aussi, avec un OAuth2 application. Dans le Serveur d'Autorisation de Config, j'ai été en utilisant ce qui s'est avéré être le mondiale AuthenticationManager.
Mais la AuthenticationManager j'ai construit est seulement limité à la WebSecurityConfigurerAdapter. Au lieu de substitution de la méthode configure (), j'ai utilisé cette configureGlobal méthode, puis tout est tombé en place, avec pas d'avertissements ou d'exception nullreferenceexceptions
OriginalL'auteur qanwi1970
Dans votre configur(HttpSecurity http) méthode, votre dernière configuration, dit
.anyRequest().authenticated()
, donc il faudra que les utilisateurs soient authentifiés pour toutes les demandes.Essayez les solutions suivantes.
OriginalL'auteur Patrick Grimard
De cette façon, travaillé, j'ai d'abord changé les dépendances dans le pom.xml
Puis j'ai changé la classe WebSecurityConfig
java.lang.NullPointerException: null
et aussi il n'est pas vraiment clair si il y a encore un utilisateur en cours de création qui pourrait entraîner une violation de la sécuritémerci pour vos commentaires, je ne marque pas comme la bonne réponse alors.
OriginalL'auteur agusgambina