FeignConfig.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.leanwo.activiti.config;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import org.springframework.context.annotation.Configuration;
  5. import com.leanwo.activiti.exception.AuthorizeException;
  6. import com.leanwo.activiti.util.LoginContext;
  7. import com.leanwo.activiti.util.LoginContextUtil;
  8. import com.leanwo.activiti.util.StringUtil;
  9. import com.leanwo.activiti.util.TokenUtil;
  10. import feign.RequestInterceptor;
  11. import feign.RequestTemplate;
  12. /**
  13. * Feign配置
  14. * 使用FeignClient进行服务间调用,传递headers信息
  15. */
  16. @Configuration
  17. public class FeignConfig implements RequestInterceptor {
  18. private final static Logger logger = LoggerFactory.getLogger(FeignConfig.class.getName());
  19. @Override
  20. public void apply(RequestTemplate requestTemplate) {
  21. LoginContext loginContext = LoginContextUtil.getLoginContext();
  22. if (loginContext == null) {
  23. throw new AuthorizeException("您没有权限调用业务服务器。");
  24. }
  25. String token = TokenUtil.getToken();
  26. logger.info("jwtToken:" + token);
  27. if (StringUtil.isNotEmpty(token)) {
  28. // header里面添加jwt-token
  29. requestTemplate.header("token", token);
  30. requestTemplate.header("account", loginContext.getAccountId().toString());
  31. logger.info("header:" + requestTemplate.headers());
  32. }
  33. if(loginContext.getAccountId() != null) {
  34. requestTemplate.header("account", loginContext.getAccountId().toString());
  35. logger.info("account:" + loginContext.getAccountId());
  36. }
  37. }
  38. }