주석을 통한 로그인 검증
우아한 구현 방식 - 주석
1. 메모 생성
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LoginCheck {
}
2. Controller 메모에 @Loginckeck 메모 사용
@RequestMapping(value = "/toHome", method = RequestMethod.GET)
@LoginCheck
public String toHome() {
return "home";
}
3. 차단기에서 주석 검사
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
super.preHandle(request, response, handler);
HandlerMethod handlerMethod = (HandlerMethod) handler;
Method method = handlerMethod.getMethod();
if (method.isAnnotationPresent(LoginCheck.class)) {
// @LoginCheck ,
HttpSession session = request.getSession();
User user = (User) session.getAttribute(Constans.USER);
if (user != null) {
return true;
}
//
// response.sendRedirect("/mall-console/login.do");
// iframe top
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("window.open('/mall-console/login.do', '_top')");
out.println(" ");
out.println("");
return false;
}
return true;
}
4. 요약
어떤 url 문자열의 일치도 필요 없습니다. @LoginCheck 주석을 사용했는지 판단하는 것만으로도 우아하지 않습니까?자세히 보면 정적 자원에 대한 접근 문제도 존재하지 않는다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.