LoginSignup
0
0

More than 3 years have passed since last update.

SpringでWebSecurityConfigureAdapterを利用したときに、usernameだけでなくpasswordも取得する方法

Posted at

前提

こちらの記事にある、実装がされている。
https://qiita.com/nyasba/items/f9b1b6be5540743f8bac

課題

UserDetailsService.java
@Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

loadUserByUsernameではusernameしか取れないので

AbstractUserDetailsAuthenticationProvider
を利用して、passwordも引数として利用する

参考:https://stackoverflow.com/questions/53445809/spring-security-get-password-in-userdetailsservicemethod

設定

以下のように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から抽出することができる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0