개발 Story/spring-security12 12. spring security remember me 기능 추가 생각해보니 security기능중에 remember me를 빼먹은거 같아서 간단히 포스팅 하겠다. 사용법도 간단하다. 1. security-context.xml에 remember-me 기능 추가 ....... ...... 2. Logout 시 remember-me 인증용 쿠키 삭제 (이건 정책에따라서 보통은 삭제할듯...) ...... ........ 3.로그인페이지에 remember-me설정 추가(한줄만 추가하면 끝남) ...... ........ Remember me ...... ....... 토큰은 아래의 방식으로 생성된다. base64(username + ":" + expirationTime + ":" + md5Hex(username + ":" + expirationTime + ":" passwor.. 2017. 12. 14. 11. spring security 비밀번호 salt 암호화 하기 앞에 포스팅에서 sha256을 이용한 비밀번호 암호화에 대해 알아 봤다. 다른 암호화도 대부분 마찬가지지만, 비밀 번호를 암호화 했다고 해도 DB에 저장 됐을때 같은 암호면 암호화된 형태(hash값이)가 같다. 그로 인해 하나의 암호화된 값을 알아 내면 같은 암호를 쉽게 찾을수 있다. 이를 방지하기 위한 방법이 salt암호화 방식이다. 별다른건 아니고 사용자가 입력한 비밀번호에 사용자마다 중복되지 않는 특정 문자를 추가하여 암호화 하는 방식이다. 예를 들면 회원 가입시 중복되지 않는 아이디를 (아이디 + 비밀번호) 또는 (비밀번호 + 아이디) 형태로 붙이고 암호화를 하면된다. spring security에서 지원하는 간단한 방식을 통해 username을 사용한 salt 방식을 알아보겠다. 1.securi.. 2015. 9. 14. 10. spring security 권한 없는 사용자 접근시 처리 방법 지금 까지는 권한이 없는 사용자가 접근을 하게 되면 따로 설정을 하지않아 아래와 같은페이지로 이동을 했다. 아마 저런 페이지로 놔둘곳은 없을 것이다. security에서 처리 방법을 보면 url을 지정하여 접근 권한이 없으면 해당 url로 이동시키는 방법이 있고, 아니면 AccessDeniedHandler 인터페이스를 구현하여 지정하는 방법이 있다. url로 지정하는 방법을 알아보면 1.에 access-denied-page="" 속성 추가 2.해당 주소로 접속 할 Controller추가 @RequestMapping("/user/denied") public String denied(Model model, Authentication auth, HttpServletRequest req){ AccessDenie.. 2015. 9. 14. 09. spring security @Secured 어노테이션을 사용하여 접근 권한 부여 접근 권한을 부여 할 때 security-context.xml에 직접선언을 할 수 있지만, @Secured어노테이션을 사용하면 좀 더 편하고 직관적인 권한 부여가 가능하다. @Secured 어노테이션은 권한이 필요한 부분에 선언 할 수 있는데 Class나 Method 단위까지 지정을 할 수 있다. 예를 들면 ROLE_ADMIN만 접근시킬 메서드가 있다면 해당 메서드위에 @Secured 어노테이션을 선언해주기만 하면 된다. 1.pom.xml에 cglib.jar를 추가해야한다(라이브러리의 정확한 용도는 모르겠다.) cglib cglib 2.2 2.context:component-scan 이있는 context.xml에서 를 추가한다. 이 부분이 참 애매 했는데, 언뜻보면 시큐리티 관련 어노테이션이기 때문에 .. 2015. 9. 11. 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. 이전 1 2 다음