반응형
# 환경 정보
스프링 버전 : 4.3.2
시큐리티 버전 : 4.2.3
본 포스팅에서는 커스텀 로그인 페이지 생성 방법을 기록
1. security-context.xml 수정
- 커스텀 로그인 페이지에 대한 정보를 추가
- 간단하게 세팅하였고, 예제에 쓰인 설정 값 외에도 여러 세팅값이 있음
1 2 3 4 5 6 7 8 9 10 11 12 | <security:http auto-config="true" use-expressions="true"> <security:intercept-url pattern="/login" access="permitAll"/> <security:intercept-url pattern="/*" access="hasRole('USER')"/> <security:form-login login-page="/login" username-parameter="userId" password-parameter="userPwd" default-target-url="/" authentication-failure-url="/login?err=true" /> </security:http> | cs |
- login-page : 로그인 페이지 URL
- username-parameter : username 이라고 써있어 헷갈릴 수 있으나 유저 아이디를 담은 input 태그 name 명.
- passwrod-parameter : 위와 동일
- default-target-url : 로그인이 성공한 후 이동할 URL
- authentication-failure-url : 로그인 실패시 이동할 URL
2. 로그인 페이지 생성
- 초 단순 로그인 페이지
- security-context.xml에 설정된 내용에 맞춰 페이지를 만들어준다.
- login.jsp라는 이름으로 만듬
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> <c:set var="ctx" value="${pageContext.request.contextPath}"/> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>커스텀 로그인 페이지</h1> <form action="${ctx }/login" method="post"> 아 이 디 : <input type="text" name="userId"/><br /> 비밀번호 : <input type="text" name="userPwd"/><br /> <input type="submit" value="로그인"/> <sec:csrfInput/> </form> <c:if test="${param.err }"> <font color="red">로그인 실패</font> </c:if> </body> </html> | cs |
- 3 라인
:: 스프링 시큐리티 태그 라이브러리. 인증된 사용자 정보 접근, csrf 방어 토큰 추가를 간단히 할 수 있게 됨.
- 12 라인
:: 로그인 처리를 하는 기본 URL이 post 방식의 /login 이다. 로그인 처리 URL 역시 설정 파일에서 바꿔줄 수 있음
- 13, 14 라인
:: 아이디, 비밀번호 입력 태그, name값은 설정 파일에 세팅한대로 해줘야 함
- 16 라인
:: csrf 공격 방지용 토큰 추가. 시큐리티4부터 기본값이 csrf 활성화가 되었음.
- 18 ~ 20 라인
:: 설정파일에서 로그인 실패시 로그인 페이지에 파라미터 추가한 URL로 이동하도록 세팅해놓았기에 실제로 잘 작동하는지 눈으로 보기 위함
여기까지 한 후 컨트롤러에 /login으로 접근할 수 있게 한 뒤 테스트를 해보면 아래와 같은 화면들을 확인 할 수 있다.
[ 로그인 페이지 접근시 ]
[ 로그인 실패시 ]
[ 로그인 성공시 ]
'Spring > Setting' 카테고리의 다른 글
스프링 db, 마이바티스 세팅 (java config) (0) | 2018.06.11 |
---|---|
스프링 자바 설정 기본 세팅 (java config) (1) | 2018.06.09 |
spring-mysql 연동 (xml) (0) | 2018.05.14 |