security 简单用法

1.导入security依赖

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

thymeleaf 依赖 前端使用

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
     thymeleaf 依赖 + security依赖   前端+后端合并使用
   <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity4</artifactId>
            <version>3.0.4.RELEASE</version>
        </dependency>
@EnableWebFluxSecurity
public class Security  extends WebSecurityConfigurerAdapter {
    // 链式编程
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // 首页所有人可以访问,功能页只有对应权限的人才能访问
        http.authorizeRequests()
                //请求授权的规则
                // 首页所有人可以访问
                .antMatchers("/").permitAll()
                // vip1 可以访问 level1/** 所有
                .antMatchers("/level1/**").hasRole("vip1")
                // vip2 可以访问 level2/** 所有
                .antMatchers("/level2/**").hasRole("vip2")
                // vip3 可以访问 level3/** 所有
                .antMatchers("/level3/**").hasRole("vip3");
         // 没有权限会默认到登录页面,需要开启登录的页面
        // 定制登陆页面loginPage("/toLogin");
        http.formLogin().loginPage("/toLogin");
        //关闭 csrf 功能 这是一个网站保护功能
        http.csrf().disable();
       // 注销.开启注销功能,点击注销跳到首页
        http.logout().logoutSuccessUrl("index");
        //开启记住功能,默认保存时间两周
        http.rememberMe();
    }
    //认证
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        //passwordEncoder(new BCryptPasswordEncoder()) 密码加密格式给密码加密
       auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
               //从数据库中拿到姓名,以及密码
               //auth.jdbcAuthentication 表示从数据库中拿到名字和密码
               // 给用户认证 name ,password.  roles 级别"vip2","vip3"
               .withUser("liuli").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");
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值