| File was renamed from ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java |
| | |
| | | package com.ruoyi.common.security.feign;
|
| | |
|
| | | import java.util.Map;
|
| | | import jakarta.servlet.http.HttpServletRequest;
|
| | | import org.springframework.stereotype.Component;
|
| | | import com.ruoyi.common.core.constant.SecurityConstants;
|
| | | import com.ruoyi.common.core.utils.ServletUtils;
|
| | | import com.ruoyi.common.core.utils.StringUtils;
|
| | | import com.ruoyi.common.core.utils.ip.IpUtils;
|
| | | import feign.RequestInterceptor;
|
| | | import feign.RequestTemplate;
|
| | |
|
| | | /**
|
| | | * feign 请求拦截器
|
| | | * |
| | | * @author ruoyi
|
| | | */
|
| | | @Component
|
| | | public class FeignRequestInterceptor implements RequestInterceptor
|
| | | {
|
| | | @Override
|
| | | public void apply(RequestTemplate requestTemplate)
|
| | | {
|
| | | HttpServletRequest httpServletRequest = ServletUtils.getRequest();
|
| | | if (StringUtils.isNotNull(httpServletRequest))
|
| | | {
|
| | | Map<String, String> headers = ServletUtils.getHeaders(httpServletRequest);
|
| | | // 传递用户信息请求头,防止丢失
|
| | | String userId = headers.get(SecurityConstants.DETAILS_USER_ID);
|
| | | if (StringUtils.isNotEmpty(userId))
|
| | | {
|
| | | requestTemplate.header(SecurityConstants.DETAILS_USER_ID, userId);
|
| | | }
|
| | | String userKey = headers.get(SecurityConstants.USER_KEY);
|
| | | if (StringUtils.isNotEmpty(userKey))
|
| | | {
|
| | | requestTemplate.header(SecurityConstants.USER_KEY, userKey);
|
| | | }
|
| | | String userName = headers.get(SecurityConstants.DETAILS_USERNAME);
|
| | | if (StringUtils.isNotEmpty(userName))
|
| | | {
|
| | | requestTemplate.header(SecurityConstants.DETAILS_USERNAME, userName);
|
| | | }
|
| | | String authentication = headers.get(SecurityConstants.AUTHORIZATION_HEADER);
|
| | | if (StringUtils.isNotEmpty(authentication))
|
| | | {
|
| | | requestTemplate.header(SecurityConstants.AUTHORIZATION_HEADER, authentication);
|
| | | }
|
| | |
|
| | | // 配置客户端IP
|
| | | requestTemplate.header("X-Forwarded-For", IpUtils.getIpAddr());
|
| | | }
|
| | | }
|
| | | package com.sgd.common.security.feign; |
| | | |
| | | import java.util.Map; |
| | | import jakarta.servlet.http.HttpServletRequest; |
| | | import org.springframework.stereotype.Component; |
| | | import com.sgd.common.core.constant.SecurityConstants; |
| | | import com.sgd.common.core.utils.ServletUtils; |
| | | import com.sgd.common.core.utils.StringUtils; |
| | | import com.sgd.common.core.utils.ip.IpUtils; |
| | | import feign.RequestInterceptor; |
| | | import feign.RequestTemplate; |
| | | |
| | | /** |
| | | * feign 请求拦截器 |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @Component |
| | | public class FeignRequestInterceptor implements RequestInterceptor |
| | | { |
| | | @Override |
| | | public void apply(RequestTemplate requestTemplate) |
| | | { |
| | | HttpServletRequest httpServletRequest = ServletUtils.getRequest(); |
| | | if (StringUtils.isNotNull(httpServletRequest)) |
| | | { |
| | | Map<String, String> headers = ServletUtils.getHeaders(httpServletRequest); |
| | | // 传递用户信息请求头,防止丢失 |
| | | String userId = headers.get(SecurityConstants.DETAILS_USER_ID); |
| | | if (StringUtils.isNotEmpty(userId)) |
| | | { |
| | | requestTemplate.header(SecurityConstants.DETAILS_USER_ID, userId); |
| | | } |
| | | String userKey = headers.get(SecurityConstants.USER_KEY); |
| | | if (StringUtils.isNotEmpty(userKey)) |
| | | { |
| | | requestTemplate.header(SecurityConstants.USER_KEY, userKey); |
| | | } |
| | | String userName = headers.get(SecurityConstants.DETAILS_USERNAME); |
| | | if (StringUtils.isNotEmpty(userName)) |
| | | { |
| | | requestTemplate.header(SecurityConstants.DETAILS_USERNAME, userName); |
| | | } |
| | | String authentication = headers.get(SecurityConstants.AUTHORIZATION_HEADER); |
| | | if (StringUtils.isNotEmpty(authentication)) |
| | | { |
| | | requestTemplate.header(SecurityConstants.AUTHORIZATION_HEADER, authentication); |
| | | } |
| | | |
| | | // 配置客户端IP |
| | | requestTemplate.header("X-Forwarded-For", IpUtils.getIpAddr()); |
| | | } |
| | | } |
| | | } |