본문 바로가기

프로그래밍

Spring Security의 DB 사용 버전 테이블 정의 지난 글에서는 Spring Security의 커스터마이징 포인트로 잡았던 로그인 화면에 대해 정리해보았다. 이번 글에서는 Spring Security의 커스터마이징 포인트로 잡았던 DB를 이용한 로그인과 권한 관리을 구현하기 위한 DB 스키마에 대한 내용을 설명하도록 하겠다. 일단 예제 스키마이기 때문에 엉성하게 설계했다. 그러나 이해와 설명하는데 있어서 지장은 없을 정도이다. 각 테이블과 컬럼 관계는 따로 설명은 안하겠으나 컬럼의 설명만으로 이 컬럼이 어떤 테이블의 어떤 컬럼값을 이용하겠다 정도는 암시가 충분히 될 것이다(한마디로 요약하자면 ER 다이어그램 수준의 표현까지는 안하겠다는 의미임..귀차나서..) 그리고 Spring Security에서 제공하는 문서의 부록을 보면 Spring Security..
Spring Security의 로그인 화면 커스터마이징 (2) 지난 글에서는 Spring Security에서 제공하는 초간단 로그인 화면의 이해와 이를 기반으로 한 로그인 화면 구성 방법을 살펴보고 태그에서 Spring EL을 이용한 권한 설정을 알아보았다. 이번 글에서는 로그인 화면 커스터마이징의 마무리 글로 인증 실패시 메시지가 나오는 부분과 이를 커스터마이징 하는 부분과 화면에 인증 정보를 꺼내는 부분에 대해 알아보도록 하겠다. 이전 글을 보면 인증에 실패할 경우 로그인 기능만 제공하는 단독 로그인 화면이 있다는 것은 알고 있을 것이다( 태그의 login-page 속성에 정의하는 URL로 보여지는 화면) 이 화면의 소스를 가지고 설명하도록 하겠다(메인 화면의 로그인에도 같은 내용으로 적용이 가능하지만 표현해야 하는 방법이 다를수 있기 때문에 여기서는 언급하지 ..
Spring Security의 로그인 화면 커스터마이징 (1) 지난 글에서는 Spring Security의 초간단 셋팅으로는 현업에서 절대 써먹을 수 없기 때문에 이를 어떤 부분에서 커스터마이징을 해서 써먹을 수 있는 버전으로 바꿀지 그 포인트를 잡아보았다. 이제부터의 글은 그런 포인트를 하나하나 적용하는 글이라고 보고 이해하기 바란다. 가장 먼저 시작해야 할 것은 로그인 화면이다. Spring Security가 제공하는 초간단 로그인 화면 기억하는가? 기억나지 않는 분도 있을 것 같아서 다시 보여주도록 하겠다 이제 기억나는가? 정말 너무나도 간단한, 초라하기 그지없는 로그인 화면이다. 하지만 자기 기능은 충실히 하고 있다. 로그인 화면의 기능이란 무엇인가? 로그인 아이디와 패스워드를 입력받아 로그인 기능을 수행하기만 하면 되는 것이다. 하지만 그렇다고 이런식으로 ..
현업에서 써먹을수 있게 Spring Security의 커스터마이징 포인트를 잡자 지난번 글에서는 Spring Security의 아주아주 초간단 셋팅을 해봄으로써 Spring Security에서 제공되는 인증의 기능을 맛보게 되었고, 이것을 실제 프로젝트에서 써먹을수는 없다..라는 결론에 도달하며 좌절감을 얻었을 것이다. 그러나 그런 좌절감은 반대로 이걸 극복해볼려는 도전의지를 불태울 재료가 되기도 한다(응? 나만 그런가..) Spring Security 또한 사용자 확장성을 위한 여러가지 포인트를 제공해준다. 비단 Spring Security 뿐만 아니라 Spring Framework 등 SpringSource를 통해 나오는 프로젝트들은 사용자 확장성을 최대한 갖춰줄려고 해준다. 지금부터는 저번에 다루었던 Spring Security 초간단 셋팅을 생각해보며 우리가 현실적으로 맞닥뜨..
흔히 보게되는 절대 써먹을 수 없는 Spring Security의 초간단 셋팅 저번엔 Spring Security를 이해하는데 필수적인 요소라 할수 있는 인증, 권한, Filter 클래스들에 대해 알아보았다. 이번엔 본격적으로 우리 프로젝트에 Spring Security를 적용해보자(지금부터 설명하는 내용은 Java 6, Spring Framework 3.2.9, Spring Security 3.2.4를 적용했다) 프로젝트는 일반적인 Maven 구조의 Web 프로젝트이다(이 프로젝트의 구조가 이해가지 않으신 분들은 STS(Spring Tool Suite)를 개발툴로 삼아서 진행하면 된다. 이 툴에서 만드는 프로젝트 구조가 Maven Web Project이다). Maven Web Project가 아닌 이클립스에서 Dynamic Web Project로 만들어서 진행해도 상관은 없다. ..
Spring Security를 들어가며... 개인적으로 Spring Framework를 사용하면서 가장 적용해보고 싶었던 것이 바로 이 Spring Security 였다. 우리가 일반적으로 Web 관련 Project를 하면서 항상 따라다니는 것이 바로 로그인 관련 개발이다. 로그인이 없는 사이트는 거진 없다고 봐도 과언이 아닌 현실에서 이 개발이 아주 없을수는 없기 때문이다. 또한 로그인을 개발해야 한다는건 결국 회원 관리를 한다는 의미이기 때문에 회원 관리에 대한 개발을 해야 하는 것이고, 회원 관리를 개발한다는건 사이트의 Admin을 개발한다는것을 의미한다. 또 회원을 관리하면 결국 권한 관리가 같이 따라오기 마련이다. 이런 일련의 개발을 하면서 우리는 얼마나 많은 시간을 허비했는지 모른다(응? 웬지 요즘 타이어 광고 멘트 느낌이..) 그러나 ..
Java Collection 정리된 내용 우연히 알게된 어떤분의 블로그 내용인데.. 잘 정리되어 있어서 퍼옴.. http://blog.naver.com/windziel/60048694876
나의 Spring Framework 시작.. 개인적으로 Spring Framework(스프링 이라 하겠다)를 시작한지는 정말 얼마 안되었다..아니..정확하게는 스프링을 사용하는 프로젝트를 해본 케이스가 딱 한번뿐이었다. 전자정부 프레임워크로 진행했던 프로젝트였는데 전자정부 프레임워크가 스프링 기반이었다. 스프링을 하기 시작한 계기는 프리로 처음 전향하면서 면접을 본 과정이었다. 집이 안양이었던 관계로 마침 평촌에서 진행하는 프로젝트에 지원을 하게 되었다 그래서 면접을 보았는데..기억하기로는 그 프로젝트가 SK C&C에서 만든 프레임워크 기반으로 하는 프로젝트였다. 그 당시에 난 프레임워크의 필요성에 대해선 공감하고 있었지만 그것을 실무에 적용하는 점에 있어서는 약간의 회의적인 시각이 있었다. 유지보수 차원에서는 프레임워크를 적용한 프로젝트가 훨씬 ..