J'ai mis le mot de passe qui est "root" et il continue à apparaître. Comment puis-je supprimer cela ou m'en débarrasser? J'utilise botte et sécurité de printemps.
application.properties
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springbootpractice
spring.datasource.username=root
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
# Hibernate
hibernate.dialect: org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql: true
hibernate.hbm2ddl.auto: update
entitymanager.packagesToScan: /
J'utilise intellij 14 si cela compte.
---- Mise à jour 1 -----
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/index").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/index")
.permitAll()
.and()
.logout()
.permitAll();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/index").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/index")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
Voici les problèmes
(1) .loginPage ("/ index") disait que ma page de connexion était à index, mais je voulais simplement utiliser la page de connexion par défaut de spring.
(2) devait déplacer le paquet de sécurité à l'intérieur du paquet de démonstration (le paquet principal). Merci à @Sanjay d'avoir suggéré cela. J'ai essayé d'utiliser @ ComponantScan mais il n'a pas pu le faire fonctionner.
Cette classe doit être dans un paquet parent de tous les autres paquets: WebSecurityConfig
. Aussi dans application.properties
set:
security.basic.enabled=false
La réponse d'ACV est probablement le moyen le plus simple de désactiver complètement l'authentification en ajoutant security.basic.enabled=false
au fichier application.properties qui se trouve généralement sous le dossier src/main/resources
.
Lorsque vous exécutez votre application Spring, il y a généralement tout un tas de journalisation imprimée, que les gens ne lisent généralement pas. Le mot de passe est réellement généré et imprimé à l'écran au démarrage. et le nom d'utilisateur est simplement user
. Si vous testez à l'aide d'un navigateur et que vous n'avez probablement besoin que de l'entrer une fois et de le mettre en cache, vous devez donc être connecté en toute sécurité, sans vous authentifier à chaque fois. (Cependant, chaque fois que vous redémarrez votre application, un nouveau mot de passe sera généré)
Ajoutez les propriétés suivantes à votre application.properties si vous souhaitez personnaliser votre nom d'utilisateur et votre mot de passe:
security.user.name=myuser
security.user.password=mypassword
Et voici à quoi ça ressemble avec votre nom d'utilisateur et votre mot de passe
Référence:
Vous pouvez contourner ce mécanisme de sécurité de démarrage du printemps. Voir un exemple ci-dessous pour cela:
@SpringBootApplication
@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class})
public class SampleSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(SampleSpringBootApplication.class, args);
}
}
Lorsque Spring Security est dans le chemin de classe, Spring Boot par défaut sécurise toutes vos pages avec l'authentification de base. C'est pourquoi on vous demande un ID utilisateur et un mot de passe.
Vous devrez configurer la sécurité. Pour ce faire, les gens étendraient généralement une WebSecurityConfigurerAdapter
, comme ceci:
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
...
Référez-vous au présent Guide de sécurité du printemps pour plus de détails.