spring security login csrf 失效问题

如果要使用csrf,login 页面不能定义为

 <http security="none" pattern="/user/login.*" />

因为所有过滤器都不起作用了,包括 csrf 过滤器

要定义为:access="permitAll"

    <http>
    <intercept-url pattern="/user/**" access="permitAll" />
    <form-login login-page="/user/login.jsp"
        login-processing-url="/spring/login.do"
        username-parameter="username" password-parameter="password" />
        <intercept-url pattern="/**" access="hasRole(‘USER‘)" />
        <logout />
        <csrf/>
    </http>
时间: 2024-10-14 06:33:53

spring security login csrf 失效问题的相关文章

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 Security笔记:使用数据库进行用户认证(form login using database)

在前一节,学习了如何自定义登录页,但是用户名.密码仍然是配置在xml中的,这样显然太非主流,本节将学习如何把用户名/密码/角色存储在db中,通过db来实现用户认证 一.项目结构 与前面的示例相比,因为要连接db,所以多出了一个spring-database.xml用来定义数据库连接,此外,为了演示登录用户权限不足的场景,加了一个页面403.jsp,用来统一显示权限不足的提示信息 二.数据库表结构(oracle环境) 1 create table T_USERS 2 ( 3 d_username

Spring Security笔记:使用数据库进行用户认证(form login using database) - 菩提树下的杨过 - 博客园

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

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

What is the best way to handle Invalid CSRF token found in the request when session times out in Spring security

18.5.1 Timeouts One issue is that the expected CSRF token is stored in the HttpSession, so as soon as the HttpSession expires your configured AccessDeniedHandler will receive a InvalidCsrfTokenException. If you are using the default AccessDeniedHandl

Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken

在前面的学习中,配置文件中的<http>...</http>都是采用的auto-config="true"这种自动配置模式,根据Spring Security文档的说明: ------------------ auto-config Automatically registers a login form, BASIC authentication, logout services. If set to "true", all of thes

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

Spring Security Oauth2 : Possible CSRF detected

Spring Security Oauth2 : Possible CSRF detected 使用Spring Security 作为 Oauth2 授权服务器时,在授权服务器登录授权后,重定向到客户端服务器时,出现了401 Unauthorized 错误.明明已经授权了,为何还会未授权了. 跟踪代码发现,抛出了这个异常: "Possible CSRF detected - state parameter was required but no state could be found&quo

Spring Security @PreAuthorize 拦截无效

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