Spring Acegi 예제 애플리케이션
어제 올렸던 Spring Acegi Tutorial 아티클에서 사용한 예제 애플리케이션입니다. Acegi의 핵심 기능인 인증과 권한을 테스트 해보기 위한 매우 간단한 예제 애플리케이션입니다.
Spring 1.2 rc1, Acegi 1.0.0 rc2 를 사용한 코드입니다.
JDK 5.0 이상, Tomcat 5.5 이상에서 동작합니다.
사용법은 간단합니다. 톰캣으로 돌리면 다음과 같은 화면을 볼 수 있습니다.
여기서 위쪽 링크는 일반 user만 들어갈 수 있고 아랫 쪽 링크는 admin만 들어갈 수 있습니다. dispatcher-servlet.xml의 userDetailsService 빈을 살펴 보시면 해당 메모리 DB로 id, 비번, role 을 설정 해 둔 것을 볼 수 있습니다.
위 쪽 링크를 클릭하시면 인증 화면이 뜹니다. 여기서 user, userpass 라고 입력하시면 일반 user로 로그인 할 수 있습니다.
로그인에 성공하면 다음과 같은 일반 폼 화면이 뜨고 여기서 아무 값이나 입력하면 결과를 확인할 수 있습니다. 그리고 로그아웃도 할 수 있죠. 만약 위의 로그인 화면에서 로그인이 실패하면 다음과 같은 페이지를 볼 수 있습니다.
이번에는 admin만 접근할 수 있는 첫 번쨰 화면의 두 번째 링크로 들어가겠습니다. admin의 id와 비번은 admin, adminpass입니다.
자 이제 거의 다 테스트를 해봤습니다. 한 가지만 해보면 끝입니다. admin 로그인 화면 또는 user 로그인 화면에서 해당 권한이 없는 id와 비번으로 로그인을 시도합니다. 즉 admin 로그인 창에서 user/userpass를 입력합니다. 그럼 다음과 같은 화면을 볼 수 있습니다.
누가 이런 일을 했을까요? ExceptionTranslationFilter 이겠죠? 물론 보여준건 브라우져지만, 브라우져에게 403 에러를 보낸 건 ExceptionTranslationFilter의 일 중 하나입니다.
dn323.zip