Spring Securityログインの実装


認証認証認証


認証は自分が誰だかを確認するプログラムです.
これはユーザーが誰であるかを証明するプロセスです(Who are you?)

承認(承認)


ライセンス(authorization)は、あなたが行きたい場所に行ったり、欲しい情報を取得したりすることを許可するプロセスです.これはユーザーの権利を検証するプロセスです(Whatyou cando)

Spring Security


ログインページを実現するにはSpring Security依存性をダウンロードする必要があります.

ログインプロセス


一般的に、ユーザーがログインするプロセスは以下の通りです.
アクセス
  • ログインページ
  • ログインに必要なIDとパスワード
  • を提供する.
  • CookieにユーザのセッションID
  • を作成する.
  • セッションidを有する要求に対してユーザ認証
  • を行う.

    Spring Securityの動作構成



    SecurityConfigからWebSecurityConfigurator Adapterを継承し、Userdtalis Serviceを使用してSpring Securityからユーザ情報を取得します.
    @Configuration
    @EnableWebSecurity                      //스프링 시큐리티의 웹 보안 기능의 초기화 및 설정들을 담당
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
        private final UserDetailsService userDetailsService; //spring Security에서 유저의 정보를 가져오는 인터페이스
        private final NaverOauthService naverOauthService;
    
        public WebSecurityConfig(
                @Autowired CustomUserDetailsService customUserDetailsService,
                @Autowired NaverOauthService naverOauthService){
            userDetailsService = customUserDetailsService;
    
    
            this.naverOauthService = naverOauthService;
        }
    
    
    セキュリティ設定はconfigure(HTTP)関数を使用して定義できます.
    私の場合、MVCモードでブートバーにviewを適用し、css、jsなどのコンテンツを追加する必要があります.
    @Configuration
    @EnableWebSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                    .authorizeRequests()
                    .anyRequest()
                    .permitAll()
            ;
        }
    }

    プロジェクトの説明

  • コントローラによりid(ユーザ名)とpw
  • を受信する.
  • Dto->Repositor->Entity、RepositoryのfindByUsername関数に入力された値は、CustomerDetailsServiceクラスで
  • を検証します.
  • WebSecurityConfigは結果としてURL
  • に送信する.

    参考資料


    https://velog.io/@seongwon97/security