programming/spring_security

[Spring Security] STS로 Spring Security 시작하기

labj 2016. 8. 5. 12:24

[Spring Security] STS로 Spring Security 시작하기


sample2.zip


Spring Tool Suite (https://spring.io/tools)에서는 Spring의 기본 템플릿을 제공하고 있습니다.

Spring Security로 작업을 하다 보니까 템플릿 만드는데 어려움이 있었는데 

STS를 사용하면서 개발이 조금은 쉬워진 것 같습니다.

첨부파일은 게시물에서 만든 프로젝트입니다. 참고하시기 바랍니다.


1. sample2 웹프로젝트를 만듭니다.

File > New > Other > Spring에서 Spring Legacy Project를 선택합니다.


Project name을 sample2로 넣고, Templates은 Spring MVC Project를 선택합니다.


com.jobtoy.sample2란 package를 넣어줍니다. 

sample2를 이 템플릿을 실행시켰을 때의 path로 사용됩니다.


다음의 Spring Framework 기반의 웹프로젝트가 생성되었습니다.


2. pom.xml 수정

첨부파일로 바꿉니다.

 

3. web.xml에 대해서 설정합니다.

첨부파일로 바꿉니다.

 

4. Spring Security의 설정 파일 수정

Spring Security의 설정파일인 servlet-context.xml과 root-context.xml을 수정합니다.

servlet-context.xml 수정사항


root-context.xml 수정사항

먼저 beans의 xmlns과 xsi:schemaLocation을 추가합니다.


에서 아래처럼 추가합니다.


나머지 사항을 추가합니다.

 

4. Spring Security 설정 파일 추가하기

/src/webapp/spring에 applicationContext-security.xml을 만듭니다.

root-context.xml에 위쪽에

          <import resource="applicationContext-security.xml" />

를 추가합니다.

 

Spring Security의 http 접속에 대한 권한, 기본적인 로그인 처리, 로그인 이용자 정보에 대한 부분이 들어갑니다.

먼저 beans를 선언합니다. <beans:beans> ... </beans:beans> 사이에 설정을 넣습니다.

 

/commons/**는 commons 경로 아래로 권한없이 접속이 가능합니다.

 

로그인 관련해서 로그인 성공, 로그인 실패, 로그아웃 성공이 있습니다.

미리 handler를 구현해 두고 로그인 성공, 로그인 실패, 로그아웃 성공시에 수행하도록 하고 있습니다.


로그인이 성공하면 인증정보를 가지고 각 url에 대해서 권한을 부여합니다.

로그인 성공한 이용자의 정보는 다음을 가지고 처리합니다.

 

http 권한 설정은 다음과 같이 <http>...</http>에서 선언합니다.

접속 url에 대해서 권한 부여 여부와 로그인 페이지(/signin/main)에 대한 정의를 합니다.

 

5. java, jsp 파일 만들기

로그인 성공, 로그인 실패, 로그아웃 성공에 따른 java, jsp 파일을 만듭니다.

 

1) java

웹브라우저를 통해서 url로 접속하는 요청에 대해서는 controller에서 로직을 만듭니다.

handler와 같은 처리를 위한 부분은 service에서 로직을 만듭니다.

이용자의 정보는 domain에서 Customer를 만듭니다.


2) jsp

jsp파일은 웹브라우저의 http 요청에 의해서 controller의 @RequestMapping 의 value에 해당하는 함수가 실행되고

return 값으로 jsp 파일이 있는 /WEB-INF/views로 이동하게 됩니다.


return 문의 형식은 singin 디렉토리가 있고 main.jsp 파일이 있다면 return "signin/main" 이 되고


/WEB-INF/views/signin/main.jsp 파일이 로딩됩니다.

 

6. 실행하기

웹어플리케이션을 실행합니다.

웹어플리케이션을 선택하고 마우스 오른쪽 버튼 클릭 후 Run As>Run On Server를 클릭합니다.


실행후 웹브라우저로 접속합니다.


2) 로그인 화면


3) 로그인 후 메인 화면


4) 로그아웃 화면



[Spring Security] STS로 Spring Security 시작하기