LoginCheckInterceptor
package com.suri.farm.interceptor;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import org.springframework.web.servlet.HandlerInterceptor;
import java.io.PrintWriter;
public class LoginCheckInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
HttpSession session = request.getSession(false);
Object id = (session != null) ? session.getAttribute("id") : null;
System.out.println("์์ฒญ ๋ฉ์๋: " + request.getMethod());
if (id == null) {
// ์์ฒญ ๋ฐฉ์์ด POST์ธ ๊ฒฝ์ฐ (์ฆ, API ์์ฒญ)
if ("POST".equalsIgnoreCase(request.getMethod())) {
response.setContentType("application/json; charset=UTF-8");
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
response.getWriter().write("{\"error\": \"unauthorized\", \"message\": \"๋ก๊ทธ์ธ์ด ํ์ํฉ๋๋ค.\"}");
return false;
}
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<script>");
out.println("alert('๋ก๊ทธ์ธ์ด ํ์ํฉ๋๋ค.');");
out.println("location.href='/member/login';");
out.println("</script>");
out.flush();
return false;
}
return true;
}
}
WebMvcConfig
package com.suri.farm.config;
import com.suri.farm.interceptor.LoginCheckInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginCheckInterceptor())
.addPathPatterns(
"๊ฑธ๋ฌ๋ผ ๊ฒฝ๋ก"
)
.excludePathPatterns(
"์ ์ธํ ๊ฒฝ๋ก",
"/login",
"/logout",
"/css/**",
"/js/**",
"/images/**",
);
}
}
'๐Spring > Interceptor' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
# ์คํ๋ง ์ธํฐ์ ํฐ๋ก ํ์ฉ๋ URL๋ง ํต๊ณผ์ํค๋ ๋ฐฉ๋ฒ (Spring Boot) (0) | 2025.05.30 |
---|