SpringSecurity---基于内存的FormLogin

SpringSecurity已经内置了一个登陆页面,所以目前我们就采取默认的登陆页面

一. 引入依赖

这步略过不表

二. 默认实现

添加接口

@RestController
public class TestController {
    @GetMapping("/test")
    public String test(){
        return "this is test";
    }
}

访问接口

会出现如下页面

默认的用户名为user,密码为控制台打印的一串字符

当然,也可以在application.yml中配置

三. 基于内存的简单认证

继承WebSecurityConfigurerAdapter

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
}

配置密码加密方式

SpringSecurity5.x后必须指定一种加密方式
不然会报错

这里我们使用BCryptPasswordEncoder

@Bean
public PasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
    }

配置用户名和密码和角色

//主要是重写configure方法
@Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .withUser("user1")
                .password(passwordEncoder().encode("123456"))
                .roles("root")
                .and()
                .withUser("user2")
                .password(passwordEncoder().encode("123456"))
                .roles("user");
    }

虽然这里角色并没有实际的用处,但不加会报错

其实这两种,我感觉可以说是基本没什么用
暂时并不会涉及到授权,这会在后面用专门的文章去讲
完整代码会放在GitHub上,欢迎star

posted @ 2021-03-06 22:26  茕祇  阅读(100)  评论(0编辑  收藏  举报