Lorsque je déploie mon application Spring via Spring Boot et y accède, localhost:8080
je dois m'authentifier, mais quel est le nom d'utilisateur et le mot de passe ou comment puis-je le définir? J'ai essayé d'ajouter ceci à mon tomcat-users
fichier mais cela n'a pas fonctionné:
<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>
C'est le point de départ de l'application:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
Et voici la dépendance Tomcat:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
Comment m'authentifier sur localhost:8080
?
java
spring
spring-mvc
tomcat
spring-boot
Gustavo
la source
la source
Réponses:
Je pense que vous avez Spring Security sur votre chemin de classe, puis Spring Security est automatiquement configuré avec un utilisateur par défaut et un mot de passe généré
Veuillez consulter votre fichier pom.xml pour:
Si vous avez cela dans votre pom, vous devriez avoir un message de console de journal comme celui-ci:
Using default security password: ce6c3d39-8f20-4a41-8e01-803166bb99b6
Et dans l'invite du navigateur, vous importerez l'utilisateur
user
et le mot de passe imprimés dans la console.Ou si vous souhaitez configurer la sécurité Spring, vous pouvez jeter un œil à l' exemple sécurisé Spring Boot
Il est expliqué dans la documentation de référence de Spring Boot dans la section Sécurité , il indique:
la source
org.springframework.boot.autoconfigure.security
catégorie est définie pour journaliser les messages INFO, sinon le mot de passe par défaut ne sera pas imprimé.Si des
spring-security
fichiers JAR sont ajoutés dans classpath et également s'il s'agit d'unespring-boot
application, tous les points de terminaison http seront sécurisés par la classe de configuration de sécurité par défautSecurityAutoConfiguration
Cela provoque une fenêtre contextuelle du navigateur pour demander des informations d'identification.
Le mot de passe change pour chaque application redémarre et peut être trouvé dans la console.
Pour ajouter votre propre couche de sécurité applicative devant les valeurs par défaut,
ou si vous voulez simplement changer le mot de passe, vous pouvez remplacer la valeur par défaut avec,
application.xml
security.user.password = nouveau_mot de passe
ou
application.properties
la source
inMemoryAuthentication
préfixe vous préfixez votre mot de passe avec {noop} lorsque vous recevez l'erreur:There is no PasswordEncoder mapped for the id “null”
Lors du remplacement
dans application.properties , vous n'avez pas besoin de vous
"
déplacer"username"
, utilisez simplementusername
. Un autre point, au lieu de stocker le mot de passe brut , cryptez-le avec bcrypt / scrypt et stockez-le commela source
Si vous ne trouvez pas le mot de passe en fonction d'autres réponses qui pointent vers une réponse par défaut, le libellé du message du journal dans les versions récentes est devenu
la source
Vous pouvez également demander à l'utilisateur les informations d'identification et les définir dynamiquement une fois le serveur démarré (très efficace lorsque vous devez publier la solution sur un environnement client):
(Mai 2018) Une mise à jour - cela fonctionnera sur Spring Boot 2.x:
la source
Ajout à la réponse acceptée -
Si le mot de passe n'apparaît pas dans les journaux, activez les journaux «org.springframework.boot.autoconfigure.security».
https://docs.spring.io/spring-boot/docs/1.4.0.RELEASE/reference/htmlsingle/#boot-features-security
la source
Quand j'ai commencé à apprendre Spring Security, j'ai remplacé la méthode userDetailsService () comme dans l'extrait de code ci-dessous:
Nous pouvons donc nous connecter à l'application en utilisant les crédits mentionnés ci-dessus. (par exemple, admin / nimda)
Remarque: nous ne devons pas l'utiliser en production.
la source
Essayez de prendre le nom d'utilisateur et le mot de passe de l'extrait de code ci-dessous dans votre projet et connectez-vous et espérez que cela fonctionnera.
la source