博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring security 的架构与实现
阅读量:6684 次
发布时间:2019-06-25

本文共 905 字,大约阅读时间需要 3 分钟。

hot3.png

本部分连接:

aop与spring security,

一般在服务层使用spring aop来保护方法调用. 如果在领域层,则使用aspectJ来保护. 当然保护web请求,直接使用web拦截器

存储SecurityContext

使用SecurityContextPersistenceFilter,可以在不同的线程中共享SecurityContext,在request结束后清空SecurityContext.

AuthenticationManager

验证完用户后,会将用用认证信息传保存到SecurityContextHolder里.

AccessDecissionManager

spring security message localize

spring security报错信息的本地化.

核心服务

认证管理者,生产商管理者,认证生产商

ProviderManager调用AuthenticationProvider来验证用户,如DaoAuthenticationProvider,AnonymousAuthenticationProvider,LdapAuthenticationProvider等.

DaoAuthenticationProvider可以通过设置userDetailService,passwordEncoder来实现.

in-memory Authentication可以不通过数据库来存储用户信息.

通过设置xx来实现.

密码机制

不能直接存储密码字符,也不能直接使用MD5或SHA来加密密码.甚至是一个混淆值.Bcrypt被设计为非常慢以阻碍离线破解. 使用org.springframework.security.bcrypt.BCryptPasswordEncoder是一个好的选择.

如果是一个遗留系统,则需要选择原有的密码类型,因为hash是不可逆的.即使值受损害也不会立即暴露.一旦编码,就无法暴露.

使用混淆值可以使攻击速度放慢.

转载于:https://my.oschina.net/u/1590027/blog/912174

你可能感兴趣的文章
代码评审的不可能三角
查看>>
揭秘ThreadLocal
查看>>
七年蜕变 感恩献礼
查看>>
共享经济、短视频、新零售、AI:寻觅2019年新经济未来走向
查看>>
zabbix配置邮箱报警
查看>>
使用ulimit设置文件最大打开数
查看>>
[Step By Step]SAP HANA PAL指数回归预测分析Exponential Regression编程实例EXPREGRESSION(模型)...
查看>>
VMware Data Recovery备份恢复vmware虚拟机
查看>>
solr多core的处理
查看>>
解决DeferredResult 使用 @ResponseBody 注解返回中文乱码
查看>>
C# WinForm开发系列 - TextBox
查看>>
28岁少帅统领旷视南京研究院,LAMDA魏秀参专访
查看>>
java文件传输
查看>>
Xen虚拟机迁移技术
查看>>
安装Sql Server 2005出现“性能监视器计数器要求”错误解决方法。
查看>>
[.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现...
查看>>
Icomparer和Icomparable集合排序
查看>>
【poi xlsx报错】使用POI创建xlsx无法打开
查看>>
UNIX环境高级编程笔记之文件I/O
查看>>
DIV+CSS规范命名
查看>>