Quando implanto meu aplicativo Spring via Spring Boot e acesso localhost:8080
, preciso me autenticar, mas qual é o nome de usuário e a senha ou como posso defini-lo? Tentei adicionar isso ao meu tomcat-users
arquivo, mas não funcionou:
<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>
Este é o ponto de partida do aplicativo:
@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);
}
}
E esta é a dependência do Tomcat:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
Como eu me autentico localhost:8080
?
java
spring
spring-mvc
tomcat
spring-boot
Gustavo
fonte
fonte
Respostas:
Eu acho que você tem o Spring Security no caminho da classe e, em seguida, o Spring Security é configurado automaticamente com um usuário padrão e uma senha gerada
Por favor, procure no seu arquivo pom.xml por:
Se você tem isso em seu pom, deve ter uma mensagem do console de log como esta:
Using default security password: ce6c3d39-8f20-4a41-8e01-803166bb99b6
E no prompt do navegador, você importará o usuário
user
e a senha impressa no console.Ou, se você deseja configurar a segurança da primavera, consulte o exemplo seguro da Spring Boot
É explicado na documentação de Referência da Inicialização do Spring na seção Segurança , indica:
fonte
org.springframework.boot.autoconfigure.security
categoria está definida para registrar mensagens INFO, caso contrário, a senha padrão não será impressa.Se
spring-security
jars forem adicionados no caminho de classe e também se forspring-boot
aplicativo, todos os pontos de extremidade http serão protegidos pela classe de configuração de segurança padrãoSecurityAutoConfiguration
Isso faz com que um pop-up do navegador solicite credenciais.
A senha é alterada para cada aplicativo reiniciado e pode ser encontrada no console.
Para adicionar sua própria camada de segurança do aplicativo à frente dos padrões,
ou se você quiser alterar a senha, poderá substituir o padrão por,
application.xml
security.user.password = new_password
ou
application.properties
fonte
inMemoryAuthentication
prefixo de sua senha com {noop} ao receber o erro:There is no PasswordEncoder mapped for the id “null”
Ao substituir
em application.properties , você não precisa estar por
"
perto"username"
, basta usarusername
. Outro ponto, em vez de armazenar a senha bruta , criptografe-a com bcrypt / scrypt e armazene-a comofonte
Se você não conseguir encontrar a senha com base em outras respostas que apontam para uma padrão, o texto da mensagem de log nas versões recentes será alterado para
fonte
Você também pode solicitar as credenciais ao usuário e configurá-las dinamicamente quando o servidor iniciar (muito eficaz quando você precisar publicar a solução no ambiente do cliente):
(Maio de 2018) Uma atualização - isso funcionará no boot da primavera 2.x:
fonte
Além da resposta aceita -
Se a senha não for vista nos logs, ative os logs "org.springframework.boot.autoconfigure.security".
https://docs.spring.io/spring-boot/docs/1.4.0.RELEASE/reference/htmlsingle/#boot-features-security
fonte
Quando comecei a aprender o Spring Security, substituí o método userDetailsService () como no trecho de código abaixo:
Portanto, podemos fazer login no aplicativo usando os creds mencionados acima. (por exemplo, admin / nimda)
Nota: Isso não devemos usar na produção.
fonte
Tente usar o nome de usuário e a senha abaixo do snipet de código em seu projeto e faça o login e espero que isso funcione.
fonte