文档章节

spring security 的架构与实现

流光韶逝
 流光韶逝
发布于 2017/06/01 09:47
字数 387
阅读 80
收藏 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是不可逆的.即使值受损害也不会立即暴露.一旦编码,就无法暴露.

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

© 著作权归作者所有

共有 人打赏支持
下一篇: spring+redis
流光韶逝
粉丝 19
博文 100
码字总数 126913
作品 0
济南
程序员
私信 提问
Spring Security 从入门到进阶系列教程

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

小致dad
08/03
0
0
运行时动态的开关 Spring Security

为什么要在运行时动态的开关 Spring Security? 考虑这样一个场景,当我们构建了一整套微服务架构的系统后,公司某个内部的老系统也感受到了微服务架构的好处,包括实时监控,限流,熔断,高可...

OSC首席混子
昨天
0
0
Spring Security 官方文档学习路径

Spring 目前有三个层次的项目,Spring Framework层,Spring Boot层和Spring Cloud层。这三个层次的项目里都有Spring Security的东西,在加上安全和权限控制这块是大多数人的一个弱项,导致官...

写bug的攻城狮
10/25
0
0
spring cloud微服务分布式云架构 - Spring Cloud简介

Spring Cloud是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等(这里只简单的列了...

明理萝
11/01
0
0
(一)构建spring cloud微服务分布式云架构 - Spring Cloud简介

Spring Cloud是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等(这里只简单的列了...

SpringCloud关注者
09/26
360
1

没有更多内容

加载失败,请刷新页面

加载更多

Qt那些事0.0.15

以下与Q_DECLARE_METATYPE相关内容全部是翻译自Qt文档。参看QVariant Class | Qt Core 5.9以及QMetaType Class | Qt Core 5.9 QVariant QVariant::fromValue(const T& value) 返回一份包含v......

Ev4n
刚刚
0
0
spring上传文件返回绝对路径,简单工具类

import com.google.common.io.Files;import lombok.extern.slf4j.Slf4j;import org.springframework.web.multipart.MultipartFile;import java.io.File;import java.io.IOExceptio......

Boss-x
12分钟前
1
0
1个开发如何撑起一个过亿用户的小程序

本文由云+社区发表 2018年12月,腾讯相册累计用户量突破1亿,月活1200万,阿拉丁指数排行 Top 30,已经成为小程序生态的重量级玩家。 三个多月来,腾讯相册围绕【在微信分享相册照片】这一核...

腾讯云加社区
18分钟前
3
0
golang ssh包使用方法介绍

在使用gexpect包发现很多问题之外,这里又尝试使用ssh user@127.0.0.1的思路进行用户切换。这里记录下具体的使用方法,遇到的ssh: must specify HostKeyCallback 问题的解法方法及最终使用过...

linuxprobe16
23分钟前
0
0
layer

Layui Layer在open弹出层中异步加载数据和form表单radio、checkbox、select不渲染,不可点击的解决办法 layer 实现弹窗提交信息 function confirmUpdateAward(i) { layer.open({ ...

mickelfeng
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部