像这样使用:cURL
curl -d j_username=admin -d j_password=admin -L http://localhost:8080/app/j_spring_security_check
企业社会责任论坛
如果您得到类似的东西,则意味着启用了CSRF令牌保护。要使用cURL对其进行测试,您需要一个cookie和CSRF令牌本身。Expected CSRF token not found. Has your session expired?
以下命令会将所有 cookie 写入名为 的文件,并打印出 CSRF 令牌。Spring Security默认令牌参数名称是,如果您已更改它,那么您也需要更改。cookie
_csrf
grep csrf
curl --cookie-jar cookie -L http://localhost:8080/app/j_spring_security_check | grep csrf
然后,您可以执行下一个命令,该命令将从文件传递所有cookie。不要忘记替换为由上一个命令打印出来的实际值(如果已更改,则为参数名称)。|your_token_value|
_csrf
curl --cookie cookie -d "j_username=admin&j_password=admin&_csrf=|your_token_value|" -L http://localhost:8080/app/j_spring_security_check
从 Spring Security 3.x 到 4.x
请注意,在Spring Security 4.x中,从更改为 POST的默认值,更改为的默认值更改为 to 的默认值更改为 从 更改为 的默认值更改为 。如果应用程序显式提供这些属性,则迁移不需要执行任何操作。login-processing-url
/j_spring_security_check
/login
username-parameter
j_username
username
password-parameter
j_password
password