如何在 Spring Security 中替换 UsernamePasswordAuthenticationFilter

San*_*mas 5 java spring spring-security

使用 XML 配置就像

<custom-filter position="FORM_LOGIN_FILTER" ref="SCAAuthenticationFilter" />.  
Run Code Online (Sandbox Code Playgroud)

没有 XML 会像:

httpSecurity.addFilter(new SCAAthenticationFilter())
Run Code Online (Sandbox Code Playgroud)

似乎 spring 没有替换UsernamePasswordAuthenticationFilter,但之前添加了我的过滤器。

Sha*_*eep 2

我猜你的配置中一定有<form-login>或有。<http auto-config="true">除非其中任何一个存在,否则 Spring Security 不会UsernamePasswordAuthenticationFilter自动添加。提交表单的 URL 和参数名称都是过滤器的可配置属性,您的自定义版本不会覆盖这些属性,因此存在差异。