Spring Security(03)——核心类简介



Spring Security(03)——核心类简介

核心类简介
目录
1.1 Authentication
1.2 SecurityContextHolder
1.3 AuthenticationManager和AuthenticationProvider
1.3.1 认证成功后清除凭证
1.4 UserDetailsService
1.4.1 JdbcDaoImpl
1.4.2 InMemoryDaoImpl
1.5 GrantedAuthority

1.1 Authentication
Authentication是一个接口,用来表示用户认证信息的,在用户[......]

Read more

Spring Security(04)——认证简介



Spring Security(04)——认证简介

认证简介
目录
1.1 认证过程
1.2 Web应用的认证过程
1.2.1 ExceptionTranslationFilter
1.2.2 在request之间共享SecurityContext

1.1 认证过程
1、用户使用用户名和密码进行登录。
2、Spring Security将获取到的用户名和密码封装成一个实现了Authentication接口的UsernamePasswordAuthenticationToken。
3、将上述产生的token对象传递给AuthenticationManager进行登录认[......]

Read more

Spring Security(05)——异常信息本地化

Spring Security(05)——异常信息本地化

异常信息本地化

Spring Security支持将展现给终端用户看的异常信息本地化,这些信息包括认证失败、访问被拒绝等。而对于展现给开发者看的异常信息和日志信息(如配置错误)则是不能够进行本地化的,它们是以英文硬编码在Spring Security的代码中的。在Spring-Security-core-xxx.jar包的org.springframework.security包下拥有一个以英文异常信息为基础的messages.properties文件,以及其它一些常用语言的异常信息对应的文件,如messages_zh_CN.p[......]

Read more

Spring Security(06)——AuthenticationProvider

Spring Security(06)——AuthenticationProvider

AuthenticationProvider

目录

1.1     用户信息从数据库获取

1.1.1    使用jdbc-user-service获取

1.1.2    直接使用JdbcDaoImpl

1.2     PasswordEncoder

1.2.1    使用内置的PasswordEncoder

1.2.2    使用自定义的PasswordEncoder

 

认证是由AuthenticationManager来管理的,但是真[......]

Read more

Spring Security(07)——缓存UserDetails

Spring Security(07)——缓存UserDetails

Spring Security提供了一个实现了可以缓存UserDetails的UserDetailsService实现类,CachingUserDetailsService。该类的构造接收一个用于真正加载UserDetails的UserDetailsService实现类。当需要加载UserDetails时,其首先会从缓存中获取,如果缓存中没有对应的UserDetails存在,则使用持有的UserDetailsService实现类进行加载,然后将加载后的结果存放在缓存中。UserDetails与缓存的交互是通过UserC[......]

Read more

Spring Security(08)——intercept-url配置

Spring Security(08)——intercept-url配置

intercept-url配置
目录
1.1 指定拦截的url
1.2 指定访问权限
1.3 指定访问协议
1.4 指定请求方法

1.1 指定拦截的url
通过pattern指定当前intercept-url定义应当作用于哪些url。
<security:intercept-url pattern=”/**” access=”ROLE_USER”/>

1.2 指定访问权限
可以通过access属性来指定intercept-url对应URL访问所应当具有的权限。access的值[......]

Read more

Spring Security(09)——Filter

Spring Security(09)——Filter

Filter

目录

1.1     Filter顺序

1.2     添加Filter到FilterChain

1.3     DelegatingFilterProxy

1.4     FilterChainProxy

1.5     Spring Security定义好的核心Filter

1.5.1    FilterSecurityInterceptor

1.5.2    ExceptionTranslationFilter

1.5.3    SecurityContext[......]

Read more

Spring Security(10)——退出登录logout

Spring Security(10)——退出登录logout

要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain。当我们指定了http元素的auto-config属性为true时logout定义是会自动配置的,此时我们默认退出登录的URL为“/j_spring_security_logout”,可以通过logout元素的logout-url属性来改变退出登录的默认地址。
<security:logout logout-url=”/logout[......]

Read more

Spring Security(11)——匿名认证

Spring Security(11)——匿名认证

匿名认证

目录

1.1     配置

1.2     AuthenticationTrustResolver

 

对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticationToken存放在SecurityContextHolder中,这就是所谓的匿名认证。这样在以后进行权限认证或者做其它操作时我们就不需要再判断SecurityContextHolder中持有的Authentication对象是否为null了,而直接把它当做一个正常的Aut[......]

Read more

Spring Security(12)——Remember-Me功能

Spring Security(12)——Remember-Me功能

Remember-Me功能

 

目录

 

1.1     概述

1.2     基于简单加密token的方法

1.3     基于持久化token的方法

1.4     Remember-Me相关接口和实现类

1.4.1    TokenBasedRememberMeServices

1.4.2    PersistentTokenBasedRememberMeServices

 

1.1          概述

Rememb[......]

Read more