@EnableWebSecurity //Enable开启xx服务
public class SecurityConfig extends WebSecurityConfigurerAdapter {
//授权
@Override
protected void configure(HttpSecurity http) throws Exception {
//首页所有人可以访问,但是功能也只能对应又权限的人才能访问
//请求授权的规则
http.authorizeRequests()
.antMatchers("/").permitAll() //表示首页所有人都可以访问
.antMatchers("/level1/**").hasRole("vip1") //表示level1下的页面只有定义为vip1的用户可以访问
.antMatchers("/level2/**").hasRole("vip2")
.antMatchers("/level3/**").hasRole("vip3");
//没有权限默认会到登录页面,需要开启登录的页面
http.formLogin(); //(自动跳转登录页面)
}
//认证
//密码编码 PasswordEncoder
//在spring security 5.+ 新增很多加密方法
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
//赋予用户相应的权限(缓存方式)
.withUser("Jason").password(new BCryptPasswordEncoder().encode("123456")).roles("vip2","vip3")
.and()
.withUser("root").password(new BCryptPasswordEncoder().encode("123456")).roles("vip2","vip3","vip1")
.and()
.withUser("guest").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1");
}
}
springSecurity的认证授权
最新推荐文章于 2022-04-16 09:06:02 发布