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();
}