개인 프로젝트에서 사용자 권한과, 인증에 대한 부분이 많이 부족했던 것 같아,,
팀프로젝트에서는 스프링 시큐리티를 공부해 적용해보고 싶어졌습니다.
근데 설정이나 원리가 좀 복잡한 것 같아서,, 차근차근 공부하며 정리해보려고 합니다.
기초적인 스프링 시큐리티를 적용법을 알아보도록 하겠습니다.
[pom.xml]
위와 같이 두가지 라이브러리를 추가해줍니다.
그리고 security-context.xml 파일을 추가해준 뒤, web.xml에 등록해줍니다.
[security-context.xml]
[web.xml]
security-context.xml을 잠깐 보고 가자면,
사용자의 각 권한별로 접근 가능한 url 패턴을 설정해주었습니다.
컨트롤러가 <security:intercept-url>의 pattern에 해당하는 요청을 받았을 때,
access로 설정한 권한을 가지고 있어야 접근가능합니다.
(최소 권한이 아니라, 지정된 권한'만' 허용됩니다.)
그 아래는 각 권한의 name, password를 설정해주는 부분입니다.
({noop}은 추후 말씀드리겠습니다.)
컨트롤러에서는 위에서 설정한 요청에 대해 보여줄 페이지로 리턴해줍니다.
그냥 어떤 페이지인지 알 수 있게끔만 해주었습니다.
[Controller.java]
이제 프로젝트를 실행시키고,
권한을 설정해 둔 요청을 해봅시다. /forMember로 해보겠습니다.
/forMember에는 "ROLE_MEMBER"권한을 가진 사용자만 접근가능하도록 설정되어 있어
사용자에게 강제로 인증을 요구합니다.
security-context.xml에서 설정한 정보를 입력해 사용자 인증을 통과하면
아래와 같이 /forMember 요청을 탈 수 있게 됩니다.
.... 스프링 시큐리티의 감 정도 익힐 수 있는 포스팅이었습니다.
실제로 이정도 설정으로는 개인 프로젝트에도 적용할 수 없을 것 같네요.
실제 웹에서는 암호화, 인증, 인가 등 여러가지 커스터마이징 할 게 상당히 많은데,
스프링 시큐리티는 설정만 잘 해주면, 간편하게 적용할 수 있다고 합니다.
암호화도 자체적으로 잘 해준다고 하고,,,
관련 설정이나, 전체적인 구조에 대해서 공부가 더 필요할 듯 합니다.
이까지 하고,,
아래는 스프링 시큐리티를 적용하면서 겪었던 에러 해결법입니다.
'Dev- > Spring' 카테고리의 다른 글
servlet-context.xml, root-context.xml, web.xml 차이점 알기! (0) | 2018.08.16 |
---|---|
Spring Security 관련 에러 해결법 (0) | 2018.08.15 |
스프링 Filter 만들기 (0) | 2018.08.09 |
Filter, Interceptor, AOP (0) | 2018.08.08 |
'좋아요' 기능 추가하기 (0) | 2018.08.02 |