Spring security Spring security配置2种登录行为—ajax响应JSON&;表单登录重定向新页面

Spring security Spring security配置2种登录行为—ajax响应JSON&;表单登录重定向新页面,spring-security,Spring Security,我已完成表单登录,非常适合浏览器用户登录: @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable().cors() .and().authorizeRequests() .antMatchers("/api/**").aut

我已完成表单登录,非常适合浏览器用户登录:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.csrf().disable().cors()                                                   
        .and().authorizeRequests() 
        .antMatchers("/api/**").authenticated()                                       
        .anyRequest().permitAll()                                                      
        .and().formLogin().loginPage("/login").failureUrl("/login?error")              
        .usernameParameter("username").passwordParameter("password")                   
        .successHandler(loginSuccessConfig)
        .failureHandler(loginFailureConfig)         
        .and().logout().logoutUrl("/logout")                                           
        .logoutSuccessHandler(logoutSuccessConfig)
        .logoutSuccessUrl("/index");
}
但我确实喜欢通过AJAX和响应JSON进行另一种登录,而不是重定向到另一个页面。 我想知道是否可能有另一个登录路径“/api/login”,因为successHandler和failureHandler无法区分应该提供什么样的响应,因为没有某种指示符可以这样做

希望有人能在这方面提供指导。
谢谢。

想想简单地通过在登录表单或Ajax中提交附加参数进行黑客攻击

<input type="hidden" name="responseJson" value="true"/>
String responseJson = request.getParameter("responseJson"); 
if (responseJson != null && responseJson.equals("true")){
    response.setContentType("text/json");
    PrintWriter out = response.getWriter();
    out.print(jsonObjectAboutFailLogin.toString());
    out.flush();
}