728x90
반응형

로그인 페이지 커스터마이징

security-context.xml
form-login작성 
login-processing-url : 로그인폼 제출 url. 핸들러메소드 필요 없음.
logout-url : 로그아웃 처리 url. 핸들러메소드 필요 없음. 왜냐면 시큐리티에서 제공한 모듈로 넘어가니까

 

 

xss공격등에 대비해 중요한 요청에는 csrf속성값을 주고받음
모든 POST요청에 csrf 토큰값 인증 사용 
<csrf disabled="false"/> 기본값
<csrf disabled="true"/> csrf 끄기(보안상 취약)

 


memberLoginForm에서 csrf사용하기

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 추가
form태그를 form:form으로 변경
-> form:form태그는 method="POST"일때 _csrf인증 토큰 발행 해줌(hidden 타입으로 속성값 발행)

 


login, logout을 post방식으로 처리해야만 함(강제화함)

 

login, logout은 spring security안에서 처리됨 -> requestMapping은 필요 없음
login-page는 loginForm을 요청하는거니까 사용되지만 login-processing-url은 우리껄 쓰는게 아니라 url만 가져다 씀
그래서 아이디 비번이 틀렸을때 사용자 피드백 X, 후처리가 별도로 필요하면 별도로 포워딩처리 가능(커스터마이징 처리해서)
로그인 성공/실패시 사용자 피드백을 주고 싶으면
security-context.xml >form-login태그 안에 

> authentication-failure-forward-url="/member/memberLoginFailure.do" 추가하기(실패했으면 여기로 가주세요. 성공시도 작성가능)
authentication-success-forward-url : 인증 성공후 처리과정 작성. 쿠키관련 처리. 세션정보를 security에서 관리하고 있음. 더이상 세션에서 로그인 정보 가져올 필요 없음
authentication-failure-forward-url : 인증 실패후 처리. 사용자피드백 작성 
> 컨트롤러에 사용자 피드백 작성

@PostMapping("/memberLoginFailure.do")
public String memberLoginFailure(RedirectAttributes redirectAttr) {
	redirectAttr.addFlashAttribute("msg", "아이디 또는 비밀번호가 일치하지 않습니다");
	return "redirect:/member/memberLoginForm.do";
}

 

반응형
복사했습니다!