spring security中的过滤器

一、SS的默认过滤器

当配置的http是自动配置时,默认要经过SS的11个过滤器:

1,HttpSessionContextintegrationFilter:把session中的securitycontext放入securitycontextHolder中,用完后清空;

2,LogoutFilter:处理注销请求,默认请求地址为:/j_spring_security_logout;

3,AuthenticationProcessingFilter:认证过滤器,处理FROM登录,默认只处理:/j_spring_security_check;

4,??DefaultLoginPageGeneratingFilter??:spring自带的登录界面,无皮肤,一般用于测试,默认地址是:/j_spring_security_login,支持用户名密码和rememberMe;

5,BasicProcessingFilter:Basic认证。功能与3类似;

6,SecurityContextHolderAwareRequestFiler:包装客户请求,为后续程序提供一些额外数据;

7,RememberMeProcessingFilter:实现‘记住我’功能;

8,AnonymousProcessingFilter:匿名登录过滤器,为没有登录的用户分配匿名权限(匿名也需要权限,不然只能看见登录页面);

9,ExceptionTranslationFilter:处理FilterSecurityInterceptor跑出的异常;

10,SessionFixationProtectionFilter:防御会话伪造攻击过滤器;

11,FilterSecurityInterceptor:用户权限过滤器,过滤出三种情况:

a,用户未登录:AuthenticationCredentialsNotFoundException“尚未认证异常”;

b,登录无权限:AccessDeniedException“拒绝访问异常”;

c,登录切有权限,放行。

时间: 2024-10-09 17:06:09

spring security中的过滤器的相关文章

spring security 11种过滤器介绍

1.HttpSessionContextIntegrationFilter 位于过滤器顶端,第一个起作用的过滤器. 用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个SecurityContext了.如果存在,就把SecurityContext拿出来,放到SecurityContextHolder中,供Spring Security的其他部分使用.如果不存在,就创建一个SecurityContext出来,还是放到SecurityContextHolder中,供Sprin

spring security中配置密码为md5的带salt加密

spring security中配置密码为md5的带salt加密 service: private Md5PasswordEncoder encoder; //spring security md5 public Md5PasswordEncoder getEncoder() { return encoder; } @Resource public void setEncoder(Md5PasswordEncoder encoder) { this.encoder = encoder; } @O

Spring Security中html页面设置hasRole无效的问题

Spring Security中html页面设置hasRole无效的问题 一.前言 学了几天的spring Security,偶然发现的hasRole和hasAnyAuthority的区别.当然,可能有更深入的我没看到.现在把我实际的调试结果分享给大家 二.失效原因及解决 下面是部分示例html页面代码 <div sec:authorize="hasRole('R_ADMIN')">   <p class="bg-info">权限0001可见

spring boot跨域请求访问配置以及spring security中配置失效的原理解析

一.同源策略 同源策略[same origin policy]是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源. 同源策略是浏览器安全的基石. 什么是源 源[origin]就是协议.域名和端口号.例如:http://www.baidu.com:80这个URL. 什么是同源 若地址里面的协议.域名和端口号均相同则属于同源. 是否是同源的判断 例如判断下面的URL是否与 http://www.a.com/test/index.html 同源 http://www.a

spring boot 整合spring security中spring security版本升级的遇到的坑

在spring security3.x的版本中 hasAnyRole这个方法不会对我们需要认证的身份前面加个前缀ROLE_,在3.x版本hasRole的源码如下 public final boolean hasAnyRole(String... roles) { Set<String> roleSet = getAuthoritySet(); for (String role : roles) { if (roleSet.contains(role)) { return true; } } r

spring security中@PreAuthorize注解的使用

添加依赖<!-- oauth --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-oauth2</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId&g

spring security 中启用角色继承、ACL与CAS

<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security"              xmlns:beans="http://www.springframework.org/schema/beans"              xmlns:context=&

Spring Security OAuth2 开发指南。

官方原文:http://projects.spring.io/spring-security-oauth/docs/oauth2.html 翻译及修改补充:Alex Liao. Spring OAuth2.0 提供者实现原理: Spring OAuth2.0提供者实际上分为: 授权服务 Authorization Service. 资源服务 Resource Service. 虽然这两个提供者有时候可能存在同一个应用程序中,但在Spring Security OAuth中你可以把 他它们各自放在

Spring Security 整合Cas

1.1     配置登录认证 加入了spring-security-cas-xxx.jar到Spring Security应用的classpath后,我们便可以开始配置我们的Spring Security应用使用Cas进行单点登录了. 1.1.1配置AuthenticationEntryPoint 首先需要做的是将应用的登录认证入口改为使用CasAuthenticationEntryPoint.所以首先我们需要配置一个CasAuthenticationEntryPoint对应的bean,然后指定