카테고리 없음

4. 커스텀 로그인 설정

잘데친갈비 2024. 4. 3. 13:07

커스텀 로그인 설정

  • 스프링 시큐리티 Config 클래스 설정 후 특정 경로에 대항 접근 권한이 없는 경우 자동으로 로그인 페이지로 리다이렉팅 되지 않게 된다.
  • 권한이 없는 사용자일 경우 우리가 custome 한 logn page 를 보여주도록 하자

⇒ 추가된 코드 🔽

package com.example.studysecurity240402.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class LoginController {

    @GetMapping("/login")
    public String loginP() {
        return "login";
    }
}

localhost:8080/login 페이지로 경로 요청이 오게 되면 login.mustache 로 이동

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Login Page</title>
</head>
<body>

login page
<hr>

<form action="/loginProc" method="post" name="loginForm">
    <input id="username" type="text" name="username" placeholder="id"/>
    <input id="password" type="password" name="password" placeholder="password"/>
    <input type="submit" value="login"/>
</form>

</body>
</html>

⇒ login Form 페이지 생성, submit 버튼을 누르면 /loginProc 로 post 요청 보내기

// 권한(규칙)이 없는 사용자가 접근하게 되면 자동으로 로그인 페이지로 리다이렉션 하게 설정
http.formLogin((auth)-> auth
      .loginPage("/login") // <- 로그인 페이지로 이동 시키기
      .loginProcessingUrl("/loginProc") // <- 프론트에서 로그인 데이터를 넘기면 security 가 받아 처리를 하게된다.
      .permitAll()
);

// 로그인을 하게 되면 csrf 라는 토큰이 필요한데 지금 과정에서는 disable 상태로 두고 개발함
http.csrf((auth) -> auth.disable());

⇒ SecurityConfig 파일에 리다이렉트 추가 및 /loginProc 으로 Post 요청 보낸 것을 loginProcessingUrl 로 받아와 security 가 인식 시키도록 하기

⇒ 이렇게 하면 admin 페이지에서 다음과 같은 오류 페이지를 볼 수 있게 된다. (아직 admin 페이지를 안 만들었기 때문)


해당 정리 내용은 유튜버 개발자 유미님 영상을 보고 정리한 내용 입니다.

좋은 무료 강의가 많아서 다들 한번 방문해보시는걸 추천드려요.

 

 

개발자 유미

백엔드 개발자 유미 - 실습 위주 진행 (개념적인 부분은 공식 Docs 참조 및 개인 학습 바랍니다!) - 간혹 댓글 알림이 안오는 경우가 있습니다.

www.youtube.com