1.导入依赖

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

2.配置一个security类

//AOP:拦截器
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //首页是所有人可以访问2,功能页只有有权限的人才能访问
        //请求授权规则
        //授权
        http.authorizeRequests()
                .antMatchers("/").permitAll()
                .antMatchers("/level1/**").hasRole("vip1")
                .antMatchers("/level2/**").hasRole("vip2")
                .antMatchers("/level3/**").hasRole("vip3");
        //没有权限默认到登录界面,需要开启登录界面
        http.formLogin().loginPage("/tologin");
        /*防止网站攻击post*/
        http.csrf().disable();
        http.logout().logoutSuccessUrl("/");//注销成功后去首页
        http.rememberMe().rememberMeParameter("remember");


    }
//认证
    //密码编码:passworEncoder
    //在spring security5.0+新增了很多加密方法
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {

        auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
                .withUser("wang").password(new BCryptPasswordEncoder().encode("123456")).roles("vip2","vip3")
                .and()
                .withUser("root").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1","vip2","vip3")
                .and()
                .withUser("guest").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1");
    }
}

 

posted on 2022-01-07 20:53  upupup-999  阅读(36)  评论(0)    收藏  举报