我有春季安全措施,通过login.jsp登录工作完全正常.
现在,我必须根据URL自动获取用户登录(类似于单点登录).我基本上在URL中有一个路径参数,它基本上是一个加密代码,我处理这个代码来进行自动登录.
我正在修改我的LoginController以检查我是否有一个有效的路径参数,我使用它来获取我的用户名&密码,使用此用户名&密码我正在做“转发:/ j_spring_security_check?j_username =”username“& j_password =”password
这会将我引导至login.jsp,并显示以下错误您的登录尝试未成功,请重试.引起:不支持身份验证方法:GET
我还试过“redirect:/ j_spring_security_check?j_username =”username“& j_password =”password但没有帮助.
拨打/ j_spring_security_check是一个POST但是转发:& redirect:正在进行GET,那么如何从我的LoginController发送到/ j_spring_security_check作为POST?
谢谢
最佳答案
/ j_spring_security_check URL映射到UsernamePasswordAuthenticationFilter以提供请求.
在UsernamePasswordAuthenticationFilter中,默认情况下,postOnly设置为true.
spring-security.xml中的以下更改将postOnly设置为false.
此外,在web.xml中,需要以下配置: