본문 바로가기

Spring15

08. spring security 인증된 사용자 Spring MVC에서 확인 하기 & security Tag 이제 인증된 사용자를 실제 Spring MVC에서 어떻게 사용하는지 알아보겠다. spring security를 사용하지 않은 프로젝트 들이라면 session에 사용자 정보를 담아두고 사용 할 텐데 (물론 인증 성공 프로세스에서 사용자 정보를 session에 따로 담아 관리해도 상관은 없지만) security를 사용하면 사용자 정보가 인증후 어딘가 보관은 되어있을텐데 어딘지 찾기가 난감하다. 사용자 요청이 들어오는 Controller에서 사용법을 보면 요청을 받은 메서드의 파라메터로 Authentication 를 지정하면 된다. ex) /** * Simply selects the home view to render by returning its name. */ @RequestMapping(value = ".. 2015. 9. 10.
07. spring security 사용자 정보 확장 & mybatis를 이용한 인증 처리& 로그아웃처리 이번에는 security의 기본 User클레스를 확장하여 실제로 필요한 회원 정보를 추가하고 security-context.xml에있던 사용자 인증 쿼리를 mybatis로 이동시켜 사용하겠다. 그리고 처음에 포스팅할때 같이 해야 했던 logout도 적용시키겠다. 1.logout은 별거 없다. security-context.xml의 http에 를 추가한다. logout-url : 로그아웃이 요청될 url (이 주소로 요청이 들어오면 security에서 알아서 logout시켜준다)​ logout-success-url : 로그아웃이 성공 후 이동할 주소 ​delete-cookies : 쿠키 삭제 여부 ​invalidate-session : 세션 제거 여부 ​2.이제 security에서 제공해주는 User클레스.. 2015. 9. 10.
06. spring security 중복 로그인 방지 or 중복세션 제한하기 spring security에서는 (내부 정책에 따라 다르겠지만)중복로그인 방지를 위한 방안을 마련해 두었다. 1.web.xml에 listener등록 (이 부분은 지정을 해야한다는 예제가 많았는데 테스트 해보니 3.1.0.RELEASE 에서는 등록 하지 않아도 상관이 없었다 자세한 내막은 나도 모름) org.springframework.security.web.session.HttpSessionEventPublisher 2.security-context.xml에 세션 제한 지정 에 invalid-session-url​ : 세션이 끊겼을때 이동 할 페이지 max-sessions="1" : 최대 허용 가능 세션 수​ expired-url="/user/loginPage" : 중복 로그인이 일어났을 경우 이동 할.. 2015. 9. 9.
05. spring security sha256 암호화 적용하기 spring security 에서는 기본적으로 아래와 같은 암호화 모듈을 제공하고 있다. BaseDigestPasswordEncoder BasePasswordEncoder LdapShaPasswordEncoder Md4PasswordEncoder Md5PasswordEncoder MessageDigestPasswordEncoder PlaintextPasswordEncoder ShaPasswordEncoder 참조 문서 : http://docs.spring.io/autorepo/docs/spring-security/3.1.6.RELEASE/apidocs/org/springframework/security/authentication/encoding/package-summary.html 이중에서 ShaPass.. 2015. 9. 9.
04. spring security DB를 사용한 로그인 인증 & 권한 처리 이번 포스팅은 MY-SQL을 이용해 간단히 로그인 인증 & 권한 처리 하는법을 알아 보겠다.우선 pom.xml에 mysql관련 라이브러리를 등록한다. mysql mysql-connector-java 5.1.22 jar compile commons-collections commons-collections 3.2.1 commons-io commons-io 2.4 1.mysql에 테이블을 만든다. 예제들을 보면 테이블을 사용자 테이블과 권한테이블 두개로 나눠서 하지만 그냥 간단한 테스트기 때문에 테이블 하나로 사용하겠다. CREATE TABLE `user` ( `EMAIL` varchar(255) NOT NULL, `PASSWD` varchar(255) NOT NULL, `ENABLED` int(1) NOT .. 2015. 9. 8.
03. spring security css,js파일 적용하기 & 사용자 인증 성공,실패 후 프로세스 처리 이전 포스팅에서 사용자가 정의한 로그인 페이지로 로그인 하는 방법을 익혔으니 이번에는spring security에서 인증절차를 거친 후 커스텀 프로세서를 통해 인증된 사용자를 관리하는 방법과 spring security에서 css와js파일등 인증이 필요없는 리소스 파일들을 security필터를 거치지 않게하는 방법도 알아보겠다. 1.우선 STS에서 생성한 Spring MVC프로젝트의 폴더구조를 보면 아래와 같다.webapp - resources 폴더가 웹의 정적리소스 파일들 (이미지,css,js등)을 포함시키는 폴더이다.그래서 프로젝트 생성시 만들어진 spring 기본설정 appServlet폴더의 servlet-context.xml을 보면 라고 resources로 들어오는 요청은 스프링에서 관리하지 않겠.. 2015. 9. 8.