Spring 安防:如何更改默认用户和密码?

wljmcqd8  于 2023-01-05  发布在  Spring
关注(0)|答案(6)|浏览(198)

我的pom.xml中有Spring Security,Spring Security会自动配置一个默认用户和生成的密码:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

如何更改默认用户和密码?

f4t66c6m

f4t66c6m1#

这可以在application.properties文件中轻松完成:

spring.security.user.name=user # Default user name.
spring.security.user.password= # Password
spring.security.user.role= # A comma separated list of roles

这是documentation

eoxn13cs

eoxn13cs2#

这是直接从文件:
创建配置类:

@Configuration
@EnableWebSecurity
public class HelloWebSecurityConfiguration
   extends WebSecurityConfigurerAdapter {

  @Autowired
  public void configureGlobal(AuthenticationManagerBuilder auth) {
    auth
      .inMemoryAuthentication()
        .withUser("user").password("password").roles("USER");
  }
}

较新文档
这稍有不同,但效果是相同的:

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Bean
    public UserDetailsService userDetailsService() throws Exception {
        InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
        manager.createUser(User.withUsername("user").password("password").roles("USER").build());
        return manager;
    }
}
r6hnlfcb

r6hnlfcb3#

#add these lines in application.properties
    spring.security.user.name=username
    spring.security.user.password=password
jk9hmnmh

jk9hmnmh4#

application.properties中添加以下属性

spring.security.user.name= user_name
spring.security.user.password= user_password

其中“user_name“为用户,“user_password“为密码。

9wbgstp7

9wbgstp75#

这些将不适用于旧版本的 Spring Boot ,我使用的是1. 5. 11. RELEASE,这些属性不起作用,移动到2. 1. 8. RELEASE后,这些属性工作正常。
检查您的pom.xml

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

spring.security.user.name=username
spring.security.user.password=password
dauxcl2d

dauxcl2d6#

在应用程序中设置这两个属性。yml

spring.security.user.name=user_name
spring.security.user.password=user_password

现在它是如何工作的如果您在该类中搜索SecurityProperties.java,您将看到这两个属性的默认值为

String user = user;
String password = UUID.randomUUID().toString();

哪些是Spring安全性的默认凭据,因此我们基本上通过手动设置这些属性来覆盖默认值

相关问题