前提
こちらの記事にある、実装がされている。
https://qiita.com/nyasba/items/f9b1b6be5540743f8bac
課題
UserDetailsService.java
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
loadUserByUsernameではusernameしか取れないので
AbstractUserDetailsAuthenticationProvider
を利用して、passwordも引数として利用する
設定
以下のようにimplementsではなくextendsする
UserDetailsService.java
@Service
public class UserDetailsServiceImpl extends AbstractUserDetailsAuthenticationProvider {
また、configureは以下のように設定する。
WebSecurityConfig.java
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
///
///
@Autowired
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(userDetailsService);
}
以上2つを設定することで、かんたんにpasswordをrequestから抽出することができる。