springsecurity简易搭建

1.spring security是什么?

是一个能够代替大量过滤器、拦截器源代码的框架。有了它,我们可以轻易实现页面跳转的逻辑。它主要由认证和授权构成。

2.简易搭建

(1)导入依赖

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

(2)自定义config类

自己写一个SpringSecurity的配置类,并且一定要继承WebSecurityConfigurerAdapter 这个类,并且加上@EnableWebSecurity注解。

//这个注解一定要加
@EnableWebSecurity
public class SpringSecurity extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
    	//init界面允许所有权限,vip1只允许vip1权限,以此类推
        http.authorizeRequests()
                .antMatchers("/user/init").permitAll()
                .antMatchers("/user/vip1").hasRole("v1")
                .antMatchers("/user/vip2").hasRole("v2")
                .antMatchers("/user/vip3").hasRole("v3");

		//如果没有权限,会自动跳转到/login界面(框架自带,也可以用自己写的页面替代)
        http.formLogin();

		//注销的页面是/logout界面(也可以用自己写的替代),成功后跳转到init
        http.logout().logoutSuccessUrl("/user/init");
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    	//BCryptPasswordEncoder是一种加密方式
    	//root有v1,v2,v3权限,guest只有v1权限
        auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
                .withUser("root").password(new BCryptPasswordEncoder().encode("123456")).roles("v1","v2","v3").and()
                .withUser("guest").password(new BCryptPasswordEncoder().encode("123456")).roles("v1");
    }
}

(3)补充controller

@RestController
@RequestMapping("/user")
public class IndexController {

    @GetMapping("/init")
    public String init(){
        return "这是init";
    }

    @GetMapping("/vip1")
    public String vip1(){
        return "这是vip1" ;
    }

    @GetMapping("/vip2")
    public String vip2(){
        return "这是vip2" ;
    }

    @GetMapping("/vip3")
    public String vip3(){
        return "这是vip3" ;
    }
}

3.测试

1.输入localhost:8080/user/init,界面跳转正确。
2.输入localhost:8080/user/vip1,界面跳转到登陆界面。
3.用root登陆后,成功进入vip1界面,此时访问vip2,vip3都可以。
4.输入localhost:8080/logout,界面跳转到注销界面
5.重新用guest身份登陆,只能进入vip1界面。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值