文档章节

spring security 的架构与实现

流光韶逝
 流光韶逝
发布于 2017/06/01 09:47
字数 387
阅读 75
收藏 0

本部分连接:http://docs.spring.io/spring-security/site/docs/4.2.2.RELEASE/reference/htmlsingle/#overall-architecture

aop与spring security,

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

存储SecurityContext

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

AuthenticationManager

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

AccessDecissionManager

spring security message localize

spring security报错信息的本地化.

<bean id="messageSource" class="org.spring.framework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:org/springframework/security/messages">
</bean>

核心服务

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

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

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

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

通过设置xx来实现.

密码机制

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

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

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

© 著作权归作者所有

共有 人打赏支持
流光韶逝
粉丝 19
博文 97
码字总数 126673
作品 0
济南
程序员
Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密...

小致dad
08/03
0
0
java电子商务系统源码 Spring MVC+mybatis+spring cloud+spring boot+spring security

鸿鹄云商大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B、B2C、C2C、O2O、新零售、直播电商等子平台。 分布式、微服务、云架构电子商务平台 java b...

SpringCloud关注者
2017/10/23
0
0
java 电子商务云平台b2b b2c o2o springmvc+mybatis+spring cloud+spring boot

大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B、B2C、C2C、O2O、新零售、直播电商等子平台。 技术解决方案 开发语言: java、j2ee 数据库:mysql J...

SpringCloud关注者
2017/10/23
0
0
【spring boot 系列】spring security 实践 + 源码分析

前言 本文将从示例、原理、应用3个方面介绍 spring data jpa。 以下分析基于spring boot 2.0 + spring 5.0.4版本源码 概述 Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明...

java高级架构牛人
06/06
0
0
Spring Cloud构建微服务架构服务注册与发现

Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、...

明理萝
06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
2
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
7
3
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
4
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
2
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部