[Spring]spring 로그인 체크 하는 인터셉터
웹 & 안드로이드/JAVA & JSP2013. 11. 6. 12:02
- AdminSessionInterceptor.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 |
package com.test.exam.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.test.exam.controller.AdminController;
//인터셉터를 등록하는 방법은 스프링 3.1이전과 3.2 이후는 다르다. 우리는 3.2이후 방법을 쓴다.
public class AdminSessionInterceptor extends HandlerInterceptorAdapter {
private static final Logger logger = LoggerFactory.getLogger(AdminSessionInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
HttpSession session = request.getSession();
// logger.debug(" what user login? : {}", session.getAttribute("whatUser"));
if((session.getAttribute("whatUser") != "admin")
|| (session.getAttribute("sessionAdmin") == null)){
response.sendRedirect(request.getContextPath()+"/");
return false;
}
return super.preHandle(request, response, handler);
}
} |
-root-context.xml
1
2
3
4
5
6
7
8
9
10
11
12 |
<!-- interceptor 설정. -->
<interceptors>
<!-- admin session interceptor 설정. -->
<!-- 어드민 로그인을 체크하고 로그아웃 상태일 경우 메인페이지로 보내는 인터셉터를 등록. -->
<interceptor>
<!-- /admin/* 형태의 요청에 한해서만 인터셉트 적용 -->
<mapping path="/admin/**/*"/>
<beans:bean class="com.test.exam.interceptor.AdminSessionInterceptor"/>
</interceptor>
</interceptors> |
인터셉터는 필터의 역할과 같다.
요청, 응답, 응답후의 상황엥 처리가 가능하도록 메소드가 존재한다.
preHandler는 요청시에 처리하도록 한다.
- 위의 로그인 처리는 필터로 가능하나 사용하기에는 좀더 유용한것 같다.
'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글
[Mybatis] like 파라메터값과 % 같이 쓰기 (0) | 2013.11.15 |
---|---|
[JSP] jstl - pageContext.request.contextPath 줄여 쓰기. (0) | 2013.11.13 |
[Spring]Spring - MyBatis 연동하기. (0) | 2013.10.28 |
[Spring]spring ajax처리할때 간단하게 json으로 보내기 (0) | 2013.10.27 |
[Spring]스프링 charactor 인코딩 필터 추가. (0) | 2013.10.27 |
댓글()