首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自定义AuthenticationFailureHandler @Bean与新的FailureHandler()

()之间的区别在于它们的实现方式和使用场景。

自定义AuthenticationFailureHandler @Bean是一种通过在配置类中定义一个Bean的方式来自定义认证失败处理器。通过自定义AuthenticationFailureHandler,我们可以在认证失败时执行自定义的逻辑,例如记录日志、发送通知等。这种方式适用于需要在多个地方重复使用相同的认证失败处理逻辑的情况。

新的FailureHandler()是一种直接创建一个实例的方式来自定义认证失败处理器。通过创建新的FailureHandler实例,我们可以根据具体的需求编写自定义的认证失败处理逻辑。这种方式适用于只在特定场景下使用的自定义认证失败处理逻辑。

无论是自定义AuthenticationFailureHandler @Bean还是新的FailureHandler(),它们都可以实现AuthenticationFailureHandler接口,并重写其onAuthenticationFailure()方法来处理认证失败的情况。

在使用自定义AuthenticationFailureHandler @Bean时,我们可以在配置类中使用@Bean注解来定义一个Bean,并在需要的地方通过@Autowired注解来注入该Bean。例如:

代码语言:txt
复制
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Bean
    public AuthenticationFailureHandler customAuthenticationFailureHandler() {
        return new CustomAuthenticationFailureHandler();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .formLogin()
                .failureHandler(customAuthenticationFailureHandler())
                .and()
            // other configurations
    }
}

在使用新的FailureHandler()时,我们可以直接创建一个实例,并在需要的地方使用该实例。例如:

代码语言:txt
复制
public class CustomAuthenticationFailureHandler implements AuthenticationFailureHandler {

    @Override
    public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
        // custom authentication failure logic
    }
}

public class SomeClass {

    private AuthenticationFailureHandler failureHandler;

    public SomeClass() {
        this.failureHandler = new CustomAuthenticationFailureHandler();
    }

    public void someMethod() {
        // use the failureHandler
    }
}

总结起来,自定义AuthenticationFailureHandler @Bean适用于需要在多个地方重复使用相同的认证失败处理逻辑的情况,而新的FailureHandler()适用于只在特定场景下使用的自定义认证失败处理逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Spring Security 实战干货:登录成功后返回 JWT Token

    本篇我们将一起探讨如何将 JWT Spring Security 结合起来,在认证成功后不再跳转到指定页面而是直接返回 JWT Token 。本文DEMO 可通过文末方式获取 2....返回认证失败信息 AuthenticationFailureHandler 处理认证失败后逻辑,前端根据此返回进行跳转处理逻辑,我们也实现它并注入 Spring IoC 容器: /**...*/ @Bean public AuthenticationFailureHandler authenticationFailureHandler() { return...配置 把上面写好两个 Handler Bean 写入 登录配置,相关片断如下,详情参见文末 DEMO: httpSecurity.formLogin().loginProcessingUrl(LOGIN_PROCESSING_URL...).successHandler(authenticationSuccessHandler).failureHandler(authenticationFailureHandler) 5.

    2.6K60

    Spring Security技术栈开发企业级认证授权(十)开发记住我功能

    在浏览器安全配置类BrowserSecurityConfig中添加一个Bean,这个Bean就是TokenRepository,配置完这个Bean就基本完成了“记住我”功能开发,然后在将这个Bean...PasswordEncoderBean,这就造成了依赖注入循环应用问题。...第三步:再次返回到RememberMeAuthenticationFilter中将登录信息存储到session中,然后去访问自定义RESTful API。这就完成了整个功能源码解析。...(二)使用Spring MVC开发RESTful API Spring Security技术栈开发企业级认证授权(三)表单校验以及自定义校验注解开发 Spring Security技术栈开发企业级认证授权...(八)Spring Security基本运行原理个性化登录实现 Spring Security技术栈开发企业级认证授权(九)开发图形验证码接口 Spring Security技术栈开发企业级认证授权

    61621

    Spring Security技术栈开发企业级认证授权(九)开发图形验证码接口

    在设计登录模块时候,图形验证码基本上都是标配,本篇博客重点介绍开发可重用图形验证码接口,该接口支持用户自定义配置,比如验证码长度、验证码图形宽度和高度等信息。...本文目标是开发一个图形验证码接口,该验证码支持用户自定义长度,以及生成图片后图片宽度和高度、验证码过期时间等。接下来按照整个设计思路介绍开发流程。...这几个类基本完成了图形验证码自定义功能。...Bean。...imageCodeGeneratorSpring Bean的话,那么就配置项目默认Bean,否则将不配置这个Bean,这也就是说,如果用户自定义了一个类实现了ValidateCodeGenerator

    56110

    SpringSecurity笔记之helloworld

    (1)个人感觉类似Shiro里自定义realm,这里自动实现授权和验证 (2)实现UserDetailsService接口里loadUserByUsername方法,返回一个UserDetails.../任何请求 .authenticated()//都要认证 .and().csrf().disable(); } } 就可以用自定义页面进行登陆了...就是下面的自定义成功、失败处理 自定义登陆成功处理和自定义登陆失败处理 自定义登陆成功处理(比如把user对象存到session中,发送登陆成功短息) (1)创建自定义登陆类 (2)继承SavedRequestAwareAuthenticationSuccessHandler...authenticationFailureHandler; @Override protected void configure(HttpSecurity http) throws...(authenticationSuccessHandler)//自定义登陆成功处理 .failureHandler(authenticationFailureHandler

    13610

    Spring Boot2 系列教程(三十五)SpringSecurity 使用 JSON 格式登录

    ,如下: @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Bean...out.flush(); out.close(); } }) .failureHandler...使用 JSON 登录 上面演示是一种原始登录方案,如果想将用户名密码通过 JSON 方式进行传递,则需要自定义相关过滤器,通过分析源码我们发现,默认用户名密码提取在 UsernamePasswordAuthenticationFilter...用户名/密码 提取就是通过 request 中 getParameter 来提取,如果想使用 JSON 传递用户名密码,只需要将这个过滤器替换掉即可,自定义过滤器如下: public class CustomAuthenticationFilter...} }); filter.setAuthenticationManager(authenticationManagerBean()); return filter; } 将自定义

    94100

    springboot系列学习(二十九): springsecurity自定义登录逻辑,也就是我们从数据库中拿用户名和密码 (二)

    项目流程 1 创建数据库 2 创建一个maven项目 3 导入依赖 4 写连接数据库配置文件 5 配置类里面要写密码解析器代码,这个是springsecurity框架 必须要有的 @Bean...自己登录页面,但是实际开发过程中是需要自己写登录页面的,所以我们将自己登录页面放到这个项目里,就不使用默认登录页面了。...失败之后自定义路径,重定向, .failureHandler(new AuthenticationFailureHandler() {...// 关闭csrf http.csrf().disable(); } @Bean public PasswordEncoder passwordEncoder...其他不行,因为这个是springsecurity默认,那么自己想要传参数名字是自己定义咋办,这个时候就需要在配置文件里面进行配置了,具体配置看以上代码,

    1.1K10

    Spring Security技术栈开发企业级认证授权(八)Spring Security基本运行原理个性化登录实现

    其中PasswordEncoder实现类对象必须经过配置,如下所示: /** * 配置了这个Bean以后,从前端传递过来密码将被加密 * * @return PasswordEncoder实现类对象...Bean以后,从前端传递过来密码就会被加密,所以从数据库查询到密码必须是经过加密,而这个过程都是在用户注册时候进行加密。...1)自定义登录页面 对于用户自定义登录行为,往往是登录后跳转或者是登录后返回提示用户签到等信息,开发者要编写一个类来继承WebSecurityConfigurerAdapter从而实现自定义登录行为...failureHandler(lemonAuthenticationFailureHandler)指定了登录失败后处理逻辑,一般是是跳转或者返回一个JSON数据。...至于用户自定义界面,可以在application.yml配置,具体配置如下: # 配置自定义登录页面 com: lemon: security: browser:

    72420
    领券