Cuando implemento mi aplicación Spring a través de Spring Boot y localhost:8080
tengo que autenticarme, ¿cuál es el nombre de usuario y la contraseña o cómo puedo configurarlo? Intenté agregar esto a mi tomcat-users
archivo pero no funcionó:
<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>
Este es el punto de partida de la aplicación:
@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);
}
}
Y esta es la dependencia de Tomcat:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
¿Cómo me autentico localhost:8080
?
java
spring
spring-mvc
tomcat
spring-boot
Gustavo
fuente
fuente
Respuestas:
Creo que tiene Spring Security en su ruta de clase y luego Spring Security se configura automáticamente con un usuario predeterminado y una contraseña generada
Busque en su archivo pom.xml para:
Si tiene eso en su pom, entonces debería tener un mensaje de consola de registro como este:
Using default security password: ce6c3d39-8f20-4a41-8e01-803166bb99b6
Y en el indicador del navegador, importará el usuario
user
y la contraseña impresa en la consola.O si desea configurar la seguridad de primavera, puede ver el ejemplo seguro de Spring Boot
Se explica en la documentación de Spring Boot Reference en la sección Seguridad , indica:
fuente
org.springframework.boot.autoconfigure.security
ajusta su configuración de registro, asegúrese de que la categoría esté configurada para registrar mensajes INFO; de lo contrario, no se imprimirá la contraseña predeterminada.Si
spring-security
se agregan jarras en classpath y también si es unaspring-boot
aplicación, todos los puntos finales http estarán protegidos por clase de configuración de seguridad predeterminadaSecurityAutoConfiguration
Esto hace que un navegador emergente solicite credenciales.
Los cambios de contraseña para cada aplicación se reinician y se pueden encontrar en la consola.
Para agregar su propia capa de seguridad de la aplicación frente a los valores predeterminados,
o si solo desea cambiar la contraseña, puede anular el valor predeterminado con,
application.xml
security.user.password = nueva_contraseña
o
application.properties
fuente
inMemoryAuthentication
prefijo su contraseña con {noop} cuando recibe el error:There is no PasswordEncoder mapped for the id “null”
Al anular
en application.properties , no necesita
"
alrededor"username"
, solo useusername
. Otro punto, en lugar de almacenar la contraseña sin procesar , cifrarla con bcrypt / scrypt y almacenarla comofuente
Si no puede encontrar la contraseña basada en otras respuestas que apuntan a una predeterminada, la redacción del mensaje de registro en las versiones recientes cambió a
fuente
También puede pedirle al usuario las credenciales y configurarlas dinámicamente una vez que se inicia el servidor (muy efectivo cuando necesita publicar la solución en un entorno de cliente):
(Mayo de 2018) Una actualización: esto funcionará en el arranque de primavera 2.x:
fuente
Además de la respuesta aceptada:
Si la contraseña no se ve en los registros, habilite los registros "org.springframework.boot.autoconfigure.security".
https://docs.spring.io/spring-boot/docs/1.4.0.RELEASE/reference/htmlsingle/#boot-features-security
fuente
Cuando comencé a aprender Spring Security, anulé el método userDetailsService () como en el fragmento de código siguiente:
Por lo tanto, podemos iniciar sesión en la aplicación utilizando los créditos mencionados anteriormente. (por ejemplo, admin / nimda)
Nota: Esto no deberíamos usarlo en producción.
fuente
Intente tomar el nombre de usuario y la contraseña del fragmento de código a continuación en su proyecto e inicie sesión y espero que esto funcione.
fuente