@Override
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler) throws Exception {
    	HandlerMethod handlerMethod = (HandlerMethod) handler;
        Method method = handlerMethod.getMethod();

        DoubleSubmitSession annotation = method.getAnnotation(DoubleSubmitSession.class);
        if (annotation != null) {
            boolean needSaveSession = annotation.needSaveToken();
            if (needSaveSession) {
                request.getSession(false).setAttribute(SUBMIT_TOKEN_NAME, UUID.randomUUID().toString());
                LOG.warn("SaveSession:"+request.getSession().getAttribute(SUBMIT_TOKEN_NAME));
            }

            boolean needRemoveSession = annotation.needRemoveToken();
            if (needRemoveSession) {
                if (isRepeatSubmit(request)) {
                    LOG.warn("RepeatSubmit!!");
                    response.sendError(HttpServletResponse.SC_BAD_REQUEST, "RepeatSubmit!");
                    return false;
                }
                request.getSession(false).removeAttribute(SUBMIT_TOKEN_NAME);
            }
        }
        return true;
    }