프로젝트를 진행하면서 작성한 내용을 순서대로 정리합니다.
1. pom.xml 작성
2. web.xml 작성
url-pattern은 /*로 해줘야 합니다.
접근하는 모든 URL을 시큐리티를 적용합니다.
/WEB-INF/spring/security-context.xml은 아래에서 생성합니다.
3. security-context.xml 생성 및 작성
<intercept-url> : 해당하는 pattern에 해당하는 url은 access에 해당하는 인증자만 접근 가능합니다.
/**는 모든 URL에 접근이 가능한 pattern입니다. 가장 아래에 있어야 합니다.
첫줄에 있으면 다른 pattern은 호출 되지 않습니다.
<user-service>에 있는 user는 id와 password와 authorities로 이루어져 있고 {noop}은 암호화를 하지 않았을 경우 넣어주는 식별자입니다.
SpEL 문법 : use-expressions=true를 해야지 사용 가능
표현식 |
설명 |
hashRole('role1') |
권한(role1)을 가지고 있는 경우 접근 가능 |
hasAnyRole('role1', 'role2') |
권한들(role1, role2) 중 하나라도 가지고 있는 경우 접근 |
permitAll |
권한이 없어도 모든 곳에 접근 가능 |
denyAll |
권한이 있어도 모든 곳에 접근 불가능 |
isAnonymouse() |
인증하지 않은 게스트 사용자 여부 |
isRememberMe() |
Remember-me 로그인 기능을 사용하는 사용자 여부 |
isAuthenticated() |
인증한 사용자 여부 |
isFullyAuthenticated() |
게스트 사용자도 아니고 Remember-me 사용하는 사용자도 아닌지 여부 |
<logout-url> /j_spring_security_logout은 스프링에서 제공하는 logout
<login-processing-url> /j_spring_security_check은 스프링에서 제공하는 login
<csrf disabled="true"> ssl을 사용하지 않으면 true로 사용
<form-login>
표현식 |
설명 |
username-parameter |
input 태크에서 name 속성 값 파싱 default : username |
password-parameter |
input 태크에서 name 속성 값 파싱 default : password |
login-page |
커스텀한 login 페이지 URL default : 스프링 제공 화면 |
login-processing-url |
스프링에서 처리하는 URL default : POST /login |
default-target-url |
로그인 성공 시 호출 URL |
authentication-failure-url |
로그인 실패 시 호출 URL default : /login?error=1 |
authentication-suceess-handler-ref |
로그인 성공 시 커스텀 핸들러로 리다이렉트 |
authentication-failure-handler-ref |
로그인 실패 시 커스텀 핸드러로 리다이렉트 |
always-use-default-target |
무조건 해당 핸들러로 이동 default : false |
4. 권한 별 로그인
home.jsp
위와 같이 페이지를 만들어줍니다.
5. 로그인 실행
spring에서 알아서 페이지를 만들어 줍니다.
비밀번호가 맞지 않으면 에러를 보여줍니다.
로그인에 성공한 화면입니다.
권한에 맞지 않는 경우에는 403 에러가 발생합니다.
'개발(합니다) > Java&Spring' 카테고리의 다른 글
Spring Security 정리(3) : https (0) | 2019.01.17 |
---|---|
Spring Security 정리(2) : DB 연결 (0) | 2019.01.17 |
Java에서 배열 동적으로 늘리기 (0) | 2019.01.07 |
Java에서 프로그램 수행 시간 측정하기 (0) | 2018.12.23 |
Spring HATEOAS 특징과 설정 정리 (0) | 2018.12.19 |