느림보 개발
4. 커스텀 로그인 페이지 본문
security-context
- 접근 페이지와 유사하게 직접 특정한 URI를 지정할 수 있다.
- login-page속성의 URI는 반드시 GET방식으로 접근하는 URI를 지정한다.
<!-- <security:form-login /> -->
<security:form-login login-page="/member/login"
MemberController
- Controller에 해당 로그인을 처리하는 메서드를 추가한다.
// 로그인 GET -all
@GetMapping("/login")
public void getLogin(String error, String logout, Model model) {
log.info("getLogin() 실행 ");
log.info("error : "+error);
log.info("logout : "+logout);
if(error != null) {
// 에러
model.addAttribute("error","Login Error Check your account.");
}
if(logout != null) {
// 로그아웃
model.addAttribute("logout","Logout!!");
}
}
login
- 로그인 뷰페이지
- jstl 라이브러리를 통해서 로그인 정보 불일치 , 로그아웃시 메세지 뿌려준다.
- 😎 특이한 점 1. action의 속성값이 /member/login이 아닌 /login으로 지정된 점 → 실제 로그인의 처리 작업은 /login을 통해서 이루어지는데 반드시 POST방식으로 데이터를 전송해야한다.
- 😎 특이한 점 2. <input> 태그의 name속성은 기본적으로 username과 password 속성을 이용한다.
- 😎 특이한 점 3. <input type="hideen"> 태그는 ${_csrf.parameterName } 으로 처리
→ EL의 값은 실제 브라우저에서는 ''_csrf' 라는 이름으로 처리 된다. 페이지 소스 보기를 통해서 값을 확인 할 수 있다.
<h1 style="background-color:orange;">login.jsp</h1>
<fieldset>
<legend> 로그인(커스텀페이지) </legend>
<form action="/login" method="post">
아이디 : <input type="text" name="username"> <br>
비밀번호 : <input type="password" name="password"> <br>
<input type="hidden" name="${_csrf.parameterName }"
value="${_csrf.token }">
<input type="submit" value="로그인">
</form>
</fieldset>
<h1><c:out value="${error }" /></h1>
<h1><c:out value="${logout }" /></h1>
'코드 정리 > Spring Security' 카테고리의 다른 글
6. 로그아웃 (0) | 2023.01.21 |
---|---|
5. 로그인 후 출력할 페이지 설정 (0) | 2023.01.20 |
3. 접근 제한 메시지의 처리 (0) | 2023.01.17 |
2. 접근 제한 설정 및 여러 권한을 가지는 사용자 설정 (0) | 2023.01.16 |
1. 스프링 시큐리티 기본 설정 (0) | 2023.01.14 |
Comments