Spring Security Ajax 被拦截

背景是项目中使用Spring Security 进行安全控制

再使用Ajax的时候会报 403(ajax get  方式是没问题的 post 的时候会报)

Spring Security 原本是 防止 CSRF 攻击 现在 ajax 被误伤了...

然后下面贴解决方法,页面的head标签里 下记追加

(这里要说的是用的是thymeleaf模板 所有才会有 th:如果是jsp的话使用EL表达式吧th:去掉就能用了)

<meta name="_csrf" th:content="${_csrf.token}"/>
<meta name="_csrf_header"  th:content="${_csrf.headerName}"/>

然后用js取值

var header = $("meta[name=‘_csrf_header‘]").attr("content");
var token =$("meta[name=‘_csrf‘]").attr("content");

ajax中调用使用,其他和通常一样 beforeSend 里写下如下就可以了

        $.ajax({
            url : "",
            type : "POST",
            data : "",
            contentType : ‘application/json;charset=utf-8‘,
            //async : false,
            beforeSend : function(xhr) {
                xhr.setRequestHeader(header, token);
            },
            success : function(resdata) {},
            error : function(xhr, ajaxOptions, throwError) { }
       });
时间: 2024-11-13 09:42:36

Spring Security Ajax 被拦截的相关文章

Spring Security的核心拦截器

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

Spring security 和 AOP 学习

1.Spring security 登录验证拦截器 资源管理拦截器 认证和授权:      认证:登录时候确实存在此用户. 登录要认证!      授权:登录后判断权限级别,然后赋予相应的操作权限. 2.代码实现思路: 用户登陆,会被AuthenticationProcessingFilter拦截,调用AuthenticationManager的实现,而且AuthenticationManager会调 用ProviderManager来获取用户验证信息(不同的Provider调用的服务不同,因为

Spring Security安全框架入门篇

一.Spring Security相关概念 1.1..Spring Security介绍: Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全訪问控制解决方式的安全框架(简单说是对訪问权限进行控制嘛).它提供了一组能够在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能.为应用系统提供声明式的安

Spring Security(15)——权限鉴定结构

目录 1.1      权限 1.2      调用前的处理 1.2.1     AccessDecisionManager 1.2.2     基于投票的AccessDecisionManager实现 1.3      调用后的处理 1.4      角色的继承 1.1    权限 所有的Authentication实现类都保存了一个GrantedAuthority列表,其表示用户所具有的权限.GrantedAuthority是通过AuthenticationManager设置到Authent

Spring security csrf实现前端纯html+ajax

spring security集成csrf进行post等请求时,为了防止csrf攻击,需要获取token才能访问 因此需要添加 <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> 动态获取token 这样的话,需要使用jsp或模板引擎 但又想使用纯html+ajax.很难受 最近想到了一个办法 通过ajax获取token,后端仍使用js

Spring Security @PreAuthorize 拦截无效

1. 在使用spring security的时候使用注解,@PreAuthorize("hasAnyRole('ROLE_Admin')") 放在对方法的访问权限进行控制失效,其中配置如: @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired UserDetailsService userDetailsService;

Spring Security 入门(1-9)Spring Security - 拦截 url

intercept-url配置 通过 pattern属性 指定拦截的 url 通过access属性指定url的访问权限 其中,access 的值是一个字符串,其可以直接是一个权限的定义,也可以是一个表达式. <security:http use-expressions="true">     <security:form-login />     <security:logout />     <security:intercept-url p

Spring security 3.x 普通login与ajax login笔记

原创文章,欢迎转载!转载时务必保留:作者:jmppok ;出处http://blog.csdn.net/jmppok/article/details/44832641 1.问题 在一个Web项目中一般会有两部分组成: 1)静态资源, 如html页面, js脚本,图片等等. 2)API接口. 在进行权限控制时,需要对这两部分进行统一管理. Spring框架本身提供了强大的Security机制,但是在使用过程中还是会出现以下问题: 当用户访问一个页面时,页面本身经常是既包含静态资源,又需要调用API

Ajax登陆,使用Spring Security缓存跳转到登陆前的链接

Spring Security缓存的应用之登陆后跳转到登录前源地址 什么意思? 用户访问网站,打开了一个链接:(origin url)起源链接 请求发送给服务器,服务器判断用户请求了受保护的资源. 由于用户没有登录,服务器重定向到登录页面:/login 填写表单,点击登录 浏览器将用户名密码以表单形式发送给服务器 服务器验证用户名密码.成功,进入到下一步.否则要求用户重新认证(第三步) 服务器对用户拥有的权限(角色)判定.有权限,重定向到origin url; 权限不足,返回状态码403( "禁