Spring Securityのデフォルトのユーザー名とパスワードの設定方法


デフォルトのユーザー名とパスワードは、アプリケーションの初期セットアップ時に使用されます。これらの情報は、開発者が自分自身や他のチームメンバーがアプリケーションにアクセスするために使用できるようにするために設定されます。以下に、シンプルで簡単な方法とコード例を示します。

  1. デフォルトのユーザー名とパスワードの設定方法 Spring Securityでは、デフォルトのユーザー名とパスワードを設定するために、UserDetailsServiceインターフェースを実装する必要があります。以下は、その例です。
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
@Service
public class CustomUserDetailsService implements UserDetailsService {
    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        // デフォルトのユーザー名とパスワードを設定する
        if ("admin".equals(username)) {
            return User.withDefaultPasswordEncoder()
                    .username("admin")
                    .password("password")
                    .roles("ADMIN")
                    .build();
        } else if ("user".equals(username)) {
            return User.withDefaultPasswordEncoder()
                    .username("user")
                    .password("password")
                    .roles("USER")
                    .build();
        } else {
            throw new UsernameNotFoundException("User not found with username: " + username);
        }
    }
}

この例では、CustomUserDetailsServiceクラスがUserDetailsServiceインターフェースを実装しています。loadUserByUsernameメソッドは、ユーザー名に基づいてUserDetailsオブジェクトを返します。UserクラスのwithDefaultPasswordEncoderメソッドを使用して、デフォルトのユーザー名とパスワードを設定します。

  1. 設定の有効化 上記の設定を有効にするには、Spring Securityの設定ファイルに以下のようなコードを追加します。
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    private UserDetailsService userDetailsService;
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService);
    }
}

上記の例では、SecurityConfigクラスがWebSecurityConfigurerAdapterクラスを拡張しています。userDetailsServiceを使用して認証を構成するために、configureメソッドをオーバーライドします。

これで、Spring Securityのデフォルトのユーザー名とパスワードを設定する方法がわかりました。自分自身のアプリケーションの要件に合わせて、適切なユーザー名とパスワードを設定してください。