SpringSecurity

2021-05-21  本文已影响0人  垃圾简书_吃枣药丸

设置用户名密码的方式:

  1. 配置文件
# 设置默认的用户名密码
spring.security.user.name=futao
spring.security.user.password=nobug666.
  1. 配置类的方式
/**
 * @author ft
 * @date 2021/5/18
 */
@Configuration
public class UserNamePwdConfig extends WebSecurityConfigurerAdapter {

    /**
     * 设置登录的用户名密码
     *
     * @param auth
     * @throws Exception
     */
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        String password = passwordEncoder.encode("nobug666.");
        auth.inMemoryAuthentication()
                .withUser("futao")
                .password(password)
                .roles("admin");
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
  1. 查数据库的方式
@Service
public class UserService implements UserDetailsService {

    @Override
    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
        List<GrantedAuthority> roles = AuthorityUtils.commaSeparatedStringToAuthorityList("admin");
        return new User("futao", new BCryptPasswordEncoder().encode("nobug666."), roles);
    }
}

    /**
     * 设置登录的用户名密码
     *
     * @param auth
     * @throws Exception
     */
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
//        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
//        String password = passwordEncoder.encode("nobug666.");
//        auth.inMemoryAuthentication()
//                .withUser("futao")
//                .password(password)
//                .roles("admin");


        // 配置类的方式设置用户名密码
        auth.userDetailsService(userDetailsService)
                .passwordEncoder(passwordEncoder());
    }

# CSRF Cross-site request forgery,跨站请求伪造

用户在登录站点A之后,保存了站点A的cookie。之后站点B去恶意访问站点A的接口,浏览器会携带上站点A的cookie,就造成了跨站请求伪造。

上一篇下一篇

猜你喜欢

热点阅读