카테고리 없음
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