느림보 개발

4. 커스텀 로그인 페이지 본문

코드 정리/Spring Security

4. 커스텀 로그인 페이지

@르르 2023. 1. 18. 20:19

 

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>

 

 

 

 

 

 

 

 

Comments