목차

반응형

먼저 web.xml에서 xml bean 설정을 참조하는지 먼저 확인하기


web.xml파일 내에서

*.xml로 검색해보면

<servlet>

  <servlet-name>action</servlet-name>

  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  <init-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>/WEB-INF/config/springmvc/*.xml</param-value>

  </init-param>

  <load-on-startup>1</load-on-startup>

</servlet>

위와 같이 WEB-INF/config/springmvc/ 밑의 xml파일을 전부다

참조하도록 되어있는것을 볼 수 있다.


springmvc 경로로 들어가서 xml파일을 하나 추가해준다.(servlet-context.xml) 파일이 있는데

해당 파일에 아래와 같이 필터링을 추가해준다.

<mvc:interceptors>

<mvc:interceptor>

<mvc:mapping path="/sitesys/** "/>

<bean class="com.cmm.sysPathControllerInterceptor"/>

</mvc:interceptor>    

</mvc:interceptors>

이것의 이미는 sitesys로 접속하는 모든 URL에 대하여 sysPathControllerInterceptor.java 파일을 거치도록 하는것이다.


위에서 지정한 경로에 맞추어 sysPathControllerInterceptor.java파일을 생성한다.


소스는 아래와 같이 생성해준다.

public class sysPathControllerInterceptor extends HandlerInterceptorAdapter {

    @Resource(name = "IpAddrManageService")

private IpAddrManageService ipAddrManageService;

/**

* sitesys로 접근하였을때 허가된 IP가 아닐경우 리다이렉트가 안되도록 수정

*/

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

IpInter is = new IpInter();

boolean res_bool = is.IpInterCepter(request, ipAddrManageService.SelectIpAddr());

if(!res_bool) {

response.sendRedirect("/mainPage.do");

return false;

}

return true;

}

}


위는 참고 소스입니다. 각 프로젝트별로 허용 IP 조회하는 방식이 다르기때문에 IP 관련 소스는 생략하도록 한다.

위에서 중요한 부분은 return false를 하면 요청한 URL로 페이지가 안넘어가는것이고(현재 소스는 response.sendRedirect를 이용하여 메인페이지로 넘어가도록 처리되어있다..)

return true를 하면 요청한 URL로 넘어간다는 것이다..

반응형