gpt4 book ai didi

spring - 在 spring j_acegi_security_check 中停止接受 GET 请求

转载 作者:行者123 更新时间:2023-12-02 03:56:34 27 4
gpt4 key购买 nike

我正在使用 j_acegi_security_check 登录到 Spring 网络应用程序,但因为它也接受 GET 参数,这意味着我我能够使用

登录应用程序
<https://localhost:8080/webapp/j_acegi_security_check?j_username=***&j_password=***&loginButton=Login>

我想避免这种情况。它应该只接受 POST 请求。如何做到这一点?

最佳答案

默认情况下,spring security 3.x 只接受 POST 登录请求。

但是您可以使用 org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter

postOnly 参数来控制此行为

(但正如我之前所说,postOnly 的默认值是 true)


但也许主要问题是您使用旧的 spring acegi security 而不是实际的 spring security 3.x。如果是这种情况,那么我上面的说法是不正确的。所以我强烈建议更新!

如果是 Spring ACEGI 1.0.x

尝试用类似这样的方法覆盖 AuthenticationProcessingFilter 中的 attemptAuthentication 方法:

if (request.getMethod().equals("POST"))
return super.attemptAuthentication(request);
else
throw new AuthenticationServiceException("service accept only http post");

查看评论:覆盖 onPreAuthentication() 接缝也是一个好方法

关于spring - 在 spring j_acegi_security_check 中停止接受 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12312174/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com