首页 > 解决方案 > 在 Spring Security 中仅使用用户名登录

问题描述

我有一个使用spring security的spring web应用程序,我知道正常情况是要求用户提供他们的用户名和密码才能登录,但我希望用户只提供他们的用户名而没有密码才能登录。我想知道 Spring Security 是否有一个可以流畅地执行此操作的规范,或者我是否必须通过在 html 表单中指定一个密码字段并使用密码值填充该字段然后将该字段设为隐藏字段来进行操作。这样用户就不会看到密码字段,因此当他输入他的用户名并单击提交时,系统将提交这两个值并让他登录。也欢迎任何更好的快速修复。我的点子...

<input type="text" name="username" required="required"/>
<input type="hidden" name="password" value="passwordValue"/>

标签: springspring-security

解决方案


当我在寻找时,我没有找到一个漂亮的解决方案,所以,我做了类似你说的事情。就我而言,我这样做了:

@Bean
public PasswordEncoder passwordEncoder() {
    return NoOpPasswordEncoder.getInstance();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    auth.userDetailsService(service).passwordEncoder(passwordEncoder());

}

...当我调用 URL 进行身份验证时,我将密码传递为空。


推荐阅读