springSecurity

1.简介

​ 一个能够为基于Spring的企业应用系统提供声明式的安全訪问控制解决方式的安全框架(简单说是对访问权限进行控制嘛),应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。


2.环境搭建

  • 依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
  • config
@EnableWebSecurity
public class SercurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure (HttpSecurity http) throws Exception{
        super.configure(http);//调用父类方法
    }
}

3.用户认证

@Override
protected void configure (AuthenticationManagerBuilder auth) throws Exception{
    auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
            .withUser("mingiao").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");
}
  • passwordEncoder:设置密码编码,对密码加密处理,增加安全性。
  • withUser:认证用户
  • password:密码
  • roles:用户权限

4.用户授权

@Override//重写父类方法
protected void configure (HttpSecurity http) throws Exception{
    http.authorizeRequests()
            .antMatchers("/").permitAll()
            .antMatchers("/level1/**").hasRole("vip1")
            .antMatchers("/level2/**").hasRole("vip2")
            .antMatchers("/level3/**").hasRole("vip3");
    
    http.formLogin();
    
    http.csrf().disable();//关闭csrf功能
    http.logout().logoutSuccessUrl("/");//登出
    
    http.rememberMe().rememberMeParameter("remeber");//记住我
}

  • antMatchers:设置权限的相应路径
  • permitAll:所有人可以访问
  • hasRole:设置指定的访问权限
  • formLogin:返回登录(没有权限时默认)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值