我们有一个应用程序,它使用spring security执行表单登录。但是现在我们也想从查询字符串中验证用户身份。我试过自定义过滤器,但它没有解决目的。有人可以帮我解决问题吗?
答案 0 :(得分:0)
出于安全原因,在Spring安全性中禁用了GET
身份验证。 GET请求(及其参数)进入日志文件对登录凭据来说是一件非常糟糕的事情。它们也可以缓存在上游代理中,其中日志记录完全不受您的控制。你已被警告,但如果你真的想:
您可以通过在loginFilter上设置属性,通过GET
启用身份验证。根据您的配置样式(xml或javaconfig),这将是:
<bean id="loginFilter" class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter"
p:postOnly="false" />
或
@Bean
public UsernamePasswordAuthenticationFilter getLoginFilter() {
UsernamePasswordAuthenticationFilter loginFilter = new UsernamePasswordAuthenticationFilter();
loginFilter.setPostOnly(false);
return loginFilter;
}