Spring Security认证_认证(成功和失败)后的处理方式

2022年10月14日11:14:31

认证成功的处理

Spring Security认证_认证(成功和失败)后的处理方式
登录成功后,如果除了跳转页面还需要执行一些自定义代码时,如:统计访问量,推送消息等操作时,可以自定义登录成功处理器。

自定义登录成功处理器

/**
 * @Author yqq
 * @Date 2022/05/17 17:06
 * @Version 1.0
 */publicclassLoginSuccessHandlerimplementsAuthenticationSuccessHandler{@OverridepublicvoidonAuthenticationSuccess(HttpServletRequest request,HttpServletResponse response,Authentication authentication)throwsIOException,ServletException{//拿到用户的信息UserDetails userDetails=(UserDetails)authentication.getPrincipal();System.out.println("用户名:"+ userDetails.getUsername());System.out.println("其他信息");//重定向到主页
        response.sendRedirect("/main");}}

配置登录成功处理器

/**
     * 对Spring Security 配置
     * @param http
     * @throws Exception
     */@Overrideprotectedvoidconfigure(HttpSecurity http)throwsException{//自定义表单登录
        http.formLogin().loginPage("/login.html")//自定义登录页面.usernameParameter("username")//表单中的用户名项.passwordParameter("password")//表单中的密码项.loginProcessingUrl("/login")//表单提交路劲,提交后执行认证逻辑//                .successForwardUrl("/main")//登录成功后的路劲.successHandler(newLoginSuccessHandler())//登录成功的处理器.failureForwardUrl("/fail");//登录失败后的路劲

测试

Spring Security认证_认证(成功和失败)后的处理方式

认证失败的处理

Spring Security认证_认证(成功和失败)后的处理方式
登录失败后,如果除了跳转页面还需要执行一些自定义代码时,如:统计失败次数,记录日志等,可以自定义登录失败处理器。

自定义登录失败处理器

/**
 * @Author yqq
 * @Date 2022/05/17 17:25
 * @Version 1.0
 */publicclassLoginFailureHandlerimplementsAuthenticationFailureHandler{@OverridepublicvoidonAuthenticationFailure(HttpServletRequest request,HttpServletResponse response,AuthenticationException exception)throwsIOException,ServletException{System.out.println("记录失败日志。。。。");
        response.sendRedirect("/fail");}}

配置登录失败处理器

/**
     * 对Spring Security 配置
     * @param http
     * @throws Exception
     */@Overrideprotectedvoidconfigure(HttpSecurity http)throwsException{//自定义表单登录
        http.formLogin().loginPage("/login.html")//自定义登录页面.usernameParameter("username")//表单中的用户名项.passwordParameter("password")//表单中的密码项.loginProcessingUrl("/login")//表单提交路劲,提交后执行认证逻辑//                .successForwardUrl("/main")//登录成功后的路劲.successHandler(newLoginSuccessHandler())//登录成功的处理器//                .failureForwardUrl("/fail");//登录失败后的路劲.failureHandler(newLoginFailureHandler());//登录失败的处理器//需要认证的资源
        http.authorizeRequests().antMatchers("/login.html").permitAll()//登录页默认授权不需要认证.antMatchers("/fail").permitAll()//失败页面不需要认证.anyRequest().authenticated();//其余所有请求都需要认证

测试

Spring Security认证_认证(成功和失败)后的处理方式
Spring Security认证_认证(成功和失败)后的处理方式

  • 作者:乀曼巴丶小飞侠
  • 原文链接:https://yiqingqing.blog.csdn.net/article/details/124825975
    更新时间:2022年10月14日11:14:31 ,共 2079 字。