본문 바로가기

프레임워크

acegi security 에서 예외별 처리방법

요구사항
사용자가 로그인했을때 실명인증여부를 판단하여 실명인증을 받지 않은 경우 실명인증을 받도록 한다.

문제점
로그인을 처리하는 acegi에서

        <property name="authenticationFailureUrl" value="/common/login.jsp" />

과같이 실패했을 경우 하나의 URL만이 설정된다. 원하는 방향은 실명인증에 실패했을경우 실명인증에 실패했다는 것을 알거나 별도의 URL로 이동하여 처리되도록 하고 싶은 것이다.

방법

    <bean id="authenticationProcessingFilter"
        class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
        <property name="authenticationManager" ref="authenticationManager" />
        <property name="authenticationFailureUrl" value="/common/login.jsp" />
        <property name="defaultTargetUrl" value="/" />
        <property name="filterProcessesUrl" value="/j_acegi_security_check" />
     <property name="exceptionMappings">
          <props>
            <prop key="kr.seohak.homepage.ui.common.RealNameCertificationException">/CUC/realNameCertification.jsp</prop>
          </props>
     </property>
    </bean>

위와같이 특정 Exception을 처리할수 있도록 "exceptionMappings"를 등록한다.