Spring Security

什么是Spring Security

Spring Security 是基于Spring AOP和Servlet过滤器的安全框架,它提供全面的安全解决方案,同时在Web请求级别和方法调用级别处理身份确认和授权

Spring Security 核心功能

1、认证(你是谁,用户/设备/系统)

2、验证(你能干什么,也叫权限控制/授权,允许执行的操作)

3、攻击防护(防止伪造身份)

Spring Security原理技术

Filter、Servlet、Spring DI、Spring AOP

常用的安全框架

目前常用的安全框架主要是Spring Security 和Apache Shiro

相同点
1、认证功能
2、授权功能
3、会话功能
4、加密功能
5、缓存支持
6、remeberMe功能

不同点
优点
1、Spring Security基于Spring开发,项目中如果使用Spring 作为基础,配合Spring Security做权限更加方便。而Shiro需要和Spring进行整合

2、Spring Securiy功能闭Shiro更加丰富,例安全防护方面

3、Spring Security 社区资源相比Shiro更加丰富

4、如何使用SpringBoot、SpringCloud的话,三者无缝对接

缺点

1、Shiro的配置和使用比较简单,Spring Security 上手更复杂写

2、Shiro依赖性低,不需要任何框架和容器,可以独立运行,而Spring Security依赖Spring 容器

编码思路

我们要在内存中初始化我们的认证信息的话,那么需要重写WebSecurityConfigurationAdapter类中的configure方法:

configue(AuthenticationManagerBuilder auth)然后通过auth对象的inMemoryAuthentication()方法指定认证信息:
auth.inMemoryAuthentication().withUser(“admin”).password(“123456”)

密码加密

protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        /**
         * 基于内存的方式,构建两个用户账号:admin/admin,user/user
         */
        auth.inMemoryAuthentication().
                passwordEncoder(new BCryptPasswordEncoder()).
                withUser("admin").
                password(new BCryptPasswordEncoder().encode("admin")).
                roles();
        
        auth.inMemoryAuthentication().
                passwordEncoder(new BCryptPasswordEncoder()).
                withUser("user").
                password(new BCryptPasswordEncoder().encode("user")).
                roles();
    }

如何给指定的用户指定角色
在这里插入图片描述
如何开启方法级别的安全控制

在这里插入图片描述

如何配置方法级别的权限控制

使用注解@PreAuthorize("hasAnyRole(‘admin’))即可指定访问级别的角色
持续更新

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值