주석을 통한 로그인 검증

1739 단어
이 노트'Spring MVC 로그인 검증은 유무에서 무로'에서 Spring MVC를 통해 로그인 검증 기능을 실현하는 방법을 설명한다.그러나 이런 방식은 백엔드 관리 시스템에 적용된다. 백엔드 응용 프로그램에서는 로그인을 하지 않아도 접근할 수 있는 인터페이스가 많은데 차단기에서 일일이 판단하려면 너무 번거롭고 우아하지 않다.
우아한 구현 방식 - 주석
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 주석을 사용했는지 판단하는 것만으로도 우아하지 않습니까?자세히 보면 정적 자원에 대한 접근 문제도 존재하지 않는다.

좋은 웹페이지 즐겨찾기