Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
Tags
- TS
- Next.js
- react
- ์ฝ๋ํธ์
- supabase ํ์ด์ง๋ค์ด์
- ์ด์งํ์
- meatadata
- array
- ์ฌ๋ผ์ด๋ฉ์๋์ฐ
- reactnative
- ํ์ ์คํฌ๋ฆฝํธ
- javascript
- interface
- set
- xlsx-js-style
- ํ์ด์ง๋ค์ด์
- codepush
- ๊ธ๋10๊ธฐx์ฝ๋ํธ๋ฆฌ
- code-push-standalone
- ์คํฌ๋กค์ด๋ฒคํธ
- supabase auth
- supabase authentication
- Filter
- async
- extends
- Spring
- map
- ์์
- app.post
- generic
Archives
- Today
- Total
rhanziy
Spring - Spring Interceptor ์ค์ต ๋ณธ๋ฌธ
๐ฉ ๋ชฉํ
ํ์๊ฐ์ ์ DB์ ์ ์ฅ๋ adminCk ๊ฐ์ด 1์ด๋ฉด ๊ด๋ฆฌ์, 0์ด๋ฉด ์ฌ์ฉ์๋ฅผ ๋ฐํ์ผ๋ก
๊ด๋ฆฌ์ ๊ณ์ ์ด๋ฉด ๊ด๋ฆฌ์ ํ์ด์ง(/admin/main)์ ์ ์์ด ๊ฐ๋ฅํ๊ณ , ์ฌ์ฉ์ ๊ณ์ ์ด๊ฑฐ๋ ๋ก๊ทธ์ธ ์ํ๊ฐ ์๋๋ฉด ๊ด๋ฆฌ์ ํ์ด์ง(/admin/main)์ ์ ์ํ์ง ๋ชปํ๋๋ก Interceptor๋ฅผ ์ ์ฉํ๋ค.
์ฌ์ฉํ ์ธํฐ์ ํฐ์ ์ ์ฉ ๋์์ ์ ํํ ํ๊ฒํ ํ๊ธฐ ์ํด
Controller์ RequestMapping ์ด๋ ธํ ์ด์ ๋ถ๋ถ๊ณผ login.jsp์์ ๋ก๊ทธ์ธ ๊ด๋ จ์ฒ๋ฆฌ url์ .do๋ก ๋ณ๊ฒฝํ๋ค.
Interceptor ๊ธฐ๋ณธ ์ค์
1. spring-web๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ pom.xml์ ์ถ๊ฐํ๋ค.
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
2. interceptor ํจํค์ง ์์ฑ ํ AdminInterceptor, LoginInterceptor class ์์ฑ
servlet-context.xml ์ค์
servlet-context.xml | root-context.xml |
controller ํด๋์ค๋ฅผ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ๋ค. | ํ๋ก์ ํธ ๋ด๋ถ์ ์ ์ํ ํด๋์ค๋ฅผ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ๋ค. |
๋ฑ๋ก๋ ์คํ๋ง ๋น์ ์์ฑ์ ์ถ๊ฐํ๋ค. | pom.xml๋ก ์ธ๋ถ ์ฃผ์ ๋ ์คํ๋ง ๋น์ ์์ฑ ์ถ๊ฐ, ์์กด์ฑ ์ฒ๋ฆฌ |
root-context.xml์์ ๋ฑ๋ก๋ ์คํ๋ง ๋น๊ณผ ์ฐ๋ํ๋ค. |
ํ๋ก์ ํธ ๊ตฌ๋ ์ ์ ์ฐจ : web.xml ๐ root-context.xml ๐ servlet-context.xml
์ธํฐ์ ํฐ๋ฅผ ์ ์ฉํ ๋์์ ๋ก๊ทธ์ธ์ ์ํํ๋ "login.do"์ "/admin" ๊ฒฝ๋ก๊ฐ ๋ถ๋ ๋ชจ๋ url์ด๋ค.
ํด๋น url์ ์ ์ฉ ๋๋๋ก ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ค. ๋, interceptorํด๋์ค๊ฐ spring์์ ์ธ์ํ ์ ์๋๋ก bean์ฝ๋๋ ์ถ๊ฐํ๋ค.
<interceptors>
<interceptor>
<mapping path="/member/login.do"></mapping>
<beans:bean id="loginIntreceptor" class="com.vam.interceptor.LoginInterceptor"></beans:bean>
</interceptor>
<interceptor>
<mapping path="/admin/**"></mapping>
<beans:bean id="AdminIntreceptor" class="com.vam.interceptor.AdminInterceptor"></beans:bean>
</interceptor>
</interceptors>
LoginInterceptor.java - login.do ์ ์ ์
package com.vam.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.HandlerInterceptor;
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
HttpSession session = request.getSession();
session.invalidate(); // loginํ์ด์ง์์ ๋ก๊ทธ์ธ ์ ๋ณด ์ธ์
์ญ์
return true;
}
}
AdminInterceptor.java - /admin/** url ์ ์ ์
package com.vam.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.HandlerInterceptor;
import com.vam.model.MemberVO;
public class AdminInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
HttpSession session = request.getSession();
MemberVO lvo = (MemberVO)session.getAttribute("member");
System.out.println(lvo.getAdminCk());
if(lvo == null || lvo.getAdminCk() == 0) { // ๊ด๋ฆฌ์ ๊ณ์ ์ด ์๋ ๊ฒฝ์ฐ
response.sendRedirect("/main"); // ๋ฉ์ธํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธ
return false;
}
return true;
}
}
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SQL - ํ์ด์ง ๊ธฐ๋ฅ ๊ตฌํ ์ฟผ๋ฆฌ (0) | 2023.04.27 |
---|---|
Spring - ๊ณ์ธต ๊ตฌ์กฐ (1) | 2023.04.25 |
Spring - Spring Interceptor ์คํ๋ง ์ธํฐ์ ํฐ (0) | 2023.04.21 |
SQL - ์ฟผ๋ฆฌ ๋ถ์ (0) | 2023.04.18 |
SQL - OUTER JOIN ์ธ๋ถ์กฐ์ธ (0) | 2023.04.17 |
Comments