ThreadLocal - using as context information for REST API with spring-boot

前端 未结 4 1501
温柔的废话
温柔的废话 2021-01-26 09:00

I have some spring-boot application (it exposes rest api). The mentioned REST API is secured by spring-security. Everything is fine, however now I need

4条回答
  •  青春惊慌失措
    2021-01-26 09:20

    On your second question: clear thread local in the same filter in which you set it.

        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        boolean contextSetViaThreadLocal = false;
        if (authentication != null && authentication.isAuthenticated()) {
            contextSetViaThreadLocal = true;
            // here we set context
        }
        // immediately after the conditional context store
        try {
            filterChain.doFilter(request, response);
        } finally {
            if (contextSetViaThreadLocal) {
                // clear the context
            }
        }
    

提交回复
热议问题