어제 올렸던 Spring Acegi Tutorial 아티클에서 사용한 예제 애플리케이션입니다. Acegi의 핵심 기능인 인증과 권한을 테스트 해보기 위한 매우 간단한 예제 애플리케이션입니다.

dn323.zip

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