我正在使用 Spring 安全 3.x。在我的登录页面中,有一个额外的字段,用户可以扫描身份证来填充。如果他们这样做,则不需要用户名(根据扫描的 ID 进行查找),但密码仍然是。
问题是我的自定义用户名是必需的AuthenticationProvider
。ID 在此之前的过滤器中捕获 ( UsernamePasswordAuthenticationFilter
)。我不知道如何连接它们,所以我AuthProvider
知道它不需要用户名(而且,由于它传递了一个 Authentication 对象,所以此时它如何获取 ID?)。