003springSecurity之配置文件中配置用户名密码

临时密码每次程序启动就会生成一个,这样显然很不方便,用户名我们也想自己定义而不是用系统默认的,这时候就需要对用户名密码重新进行配置了,这里先记录一下最简单的修改方式。

这种简单的方式便是在配置文件中配置用户名密码如下:

spring.security.user.name=lcg
spring.security.user.password=123

至于为什么如此配置,通过SecurityProperties源码我们可以看出

 

@ConfigurationProperties(prefix = "spring.security")
public class SecurityProperties {

	 //通过配置文件配置user,则需要 pring.security.user
    private final User user = new User();

而要配置user里的用户名则要:

spring.security.user.name

配置密码则要:

spring.security.user.password

另外在在 properties 中定义的用户名密码最终是通过 set 方法注入到属性中去的,这里我们顺便来看下 SecurityProperties.User#setName 和 setPassword 方法:

public void setName(String name) {
			this.name = name;
		}

 
public void setPassword(String password) {
         //判断password是否为空
		if (!StringUtils.hasLength(password)) { 
           // 如果为空直接返回
				return;
		}
         //不为空,则passwordGenerated为false,这就导致不会在控制台打印密码
			this.passwordGenerated = false;
         //不为空,密码重新覆盖
			this.password = password;
		}

 

setName没有特别的处理,只是setPassword,对passwordGenerated和password都重新赋值

此时我们再启动项目就要用配置文件中的用户名密码了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security 默认不提供用户名密码,而是通过配置文件进行自定义设置。在Spring Security的配置文件,可以通过使用`UserDetailsService`接口的实现类来创建用户,并配置他们的用户名密码。下面是一个示例的配置文件内容: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userDetailsService()).passwordEncoder(passwordEncoder()); } @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/public").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .defaultSuccessUrl("/dashboard") .permitAll() .and() .logout() .logoutUrl("/logout") .permitAll(); } @Bean public UserDetailsService userDetailsService() { UserDetails user = User.withUsername("username") .password(passwordEncoder().encode("password")) .roles("USER") .build(); return new InMemoryUserDetailsManager(user); } @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } } ``` 在上述示例,使用`inMemoryAuthentication()`方法在内存创建了一个用户,该用户的用户名为"username",密码为"password",并且该用户角色为"USER"。这些设置是通过调用`UserDetailsService`的实现类`InMemoryUserDetailsManager`进行配置的。 需要注意的是,在实际的应用,强烈建议使用数据库或其他安全存储方式存储用户信息,并通过`UserDetailsService`从存储获取用户信息,而不是直接在配置文件硬编码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值