首页 > 编程语言 > 详细

springSecurity学习3

时间:2020-02-11 18:29:18      阅读:63      评论:0      收藏:0      [点我收藏+]

基于内存的多用户支持
1,先准备资源
创建controller
技术分享图片
分别在三个controller中建立一些测试路由
技术分享图片
技术分享图片
技术分享图片
2,资源授权的配置
技术分享图片
antMatchers()是一个采用ANT模式的URL匹配器,ANT模式使用?匹配任意单个字符,使用*匹配0或任意数量的字符串,使用匹配0或者更多的目录,antMatchers("/admin/api/")相当于匹配了/admin/api/下的所有API,此处我们指定当其必须为ADMIN角色才能访问,/user/api/与之同理,/app/api/下的API会调用permitAll()公开权限,
3,在application.properties中配置用户名和密码以及角色,重启访问/user/api/hello会在页面打印‘hello user’ 但在访问/admin/api/hello会显示下图
技术分享图片
页面显示403错误,表示该用户授权失败,也就是说本次访问已经通过认证环节,只是在授权阶段的时候被驳回,
所以我们需要实现一个启用、配置基于内存的用户存储,? 在我们的security配置类中复写configure(AuthenticationManagerBuilder auth)通过inmMemoryAuthentication()方法,
技术分享图片
其中withUser()源码
技术分享图片
可以看出来返回一个UserDetailsBuilder对象,UserDetailsBuilder部分源码
技术分享图片
通过实例调用了这个里面的方法,
在最新的 Spring Security 5发布版本中, 出于安全性的考虑调整了PasswordEncoder的实现与使用策略.推荐使用BCryptPasswordEncoder, Pbkdf2PasswordEncoder, SCryptPasswordEncoder等
增加 PasswordEncoderFactories 类提供一个静态方法 createDelegatingPasswordEncoder()方法, 使用委托方式创建PasswordEncoder的实现
技术分享图片
因此在这个项目我们对password也实现自定义的,创建一个类实现PasswordEncoder接口,
技术分享图片

springSecurity学习3

原文:https://www.cnblogs.com/xiaoxiaobai0628/p/12295782.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!