Java j_uasername&;Spring 3.2.5.0版本中不再使用j_密码?

Java j_uasername&;Spring 3.2.5.0版本中不再使用j_密码?,java,spring,spring-security,Java,Spring,Spring Security,这些牵引请求参数是否不再在弹簧安全中使用?我正在学习SpringSecurity,整整一天我都在努力处理一个简单的登录表单。当我提交到默认的/j_spring_security_检查时,它似乎不再是默认的,我被重定向到login?error页面,所以我决定在检查表单参数和其他一切都正常后看看发生了什么。我将表单提交给我的定制控制器,并且我能够读取j_用户名和j_密码参数。然后我决定看看Spring中负责身份验证的过滤器中发生了什么 org.springframework.security.web

这些牵引请求参数是否不再在弹簧安全中使用?我正在学习SpringSecurity,整整一天我都在努力处理一个简单的登录表单。当我提交到默认的/j_spring_security_检查时,它似乎不再是默认的,我被重定向到
login?error
页面,所以我决定在检查表单参数和其他一切都正常后看看发生了什么。我将表单提交给我的定制控制器,并且我能够读取
j_用户名
j_密码
参数。然后我决定看看Spring中负责身份验证的过滤器中发生了什么

org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter

 public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException {
        if (postOnly && !request.getMethod().equals("POST")) {
            throw new AuthenticationServiceException("Authentication method not supported: " + request.getMethod());
        }

        String username = obtainUsername(request);
        String password = obtainPassword(request);

        if (username == null) {
            username = "";
        }

        if (password == null) {
            password = "";
        }

        username = username.trim();

        UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username, password);

        // Allow subclasses to set the "details" property
        setDetails(request, authRequest);

        return this.getAuthenticationManager().authenticate(authRequest);
    }
我设置了断点来检查参数,它们是空的!然后我检查了
actainusername
/Password方法

  protected String obtainUsername(HttpServletRequest request) {
        return request.getParameter(usernameParameter);
    }
用户名参数
密码参数
分别是
用户名
密码
,而不是
j_用户名
j_密码


这是我的

,因为您已经了解了该类,您还应该能够看到默认值是
j_username
j_password
。但是,也可以覆盖它们,这取决于您如何配置应用程序

如果您使用过Java配置,那么它就是


与其努力从头开始构建一些东西,不如从一个工作示例开始。Spring安全源代码树中有很多示例。例如,这里是其中一个的示例,您也可以很容易地看到使用了不同的参数名。

它仍然在那里,而且
usernamepasswordauthenticationfilter
来自
spring security web
jar,有关更多信息,请参阅,我将发布一个截图:)发布您的pom.xmlalso@ankur-singhal我更新了问题,您可以查看pom.xml,也许您是对的。但是我真的没有覆盖任何参数,我没有说你覆盖了,我说如果你使用Java配置,它会覆盖过滤器中定义的默认值。如果读取Javadoc链接,它会告诉您它使用的值。因为你没有说你是如何配置你的应用程序的,所以不可能确定它发生在哪里,但这是最有可能的原因。你是100%正确的!我确实使用Java配置方法。