登录成功和登录失败的跳转方式
分为两种:服务器跳转,也就是转发,可以携带信息
客户端跳转,也就是重定向,会丢失数据
用户登录成功
用户登录成功后,不进行跳转,而是返回json数据
public class MyAuthenticationSuccessHandler implements AuthenticationSuccessHandler {
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
response.setContentType("application/json;charset=utf-8");
Map<String,Object> resp=new HashMap<String,Object>();
resp.put("status",200);
resp.put("msg","登录成功!");
ObjectMapper om=new ObjectMapper();
String s=om.writeValueAsString(resp);
response.getWriter().write(s);
}
}
配置类设置:
@Override
protected void configure(HttpSecurity http) throws Exception {
// super.configure(http);
http.authorizeRequests().anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login.html")
.loginProcessingUrl("/doLogin")
// .defaultSuccessUrl("/index")
.successHandler(new MyAuthenticationSuccessHandler())
.failureUrl("/login.html")
.usernameParameter("uname")
.passwordParameter("passwd")
.permitAll()
.and()
.csrf().disable();
}