对比新文件 |
| | |
| | | package com.iailab.framework.datapermission.core.rpc; |
| | | |
| | | import com.iailab.framework.datapermission.core.annotation.DataPermission; |
| | | import com.iailab.framework.datapermission.core.aop.DataPermissionContextHolder; |
| | | import feign.RequestInterceptor; |
| | | import feign.RequestTemplate; |
| | | |
| | | /** |
| | | * DataPermission 的 RequestInterceptor 实现类:Feign 请求时,将 {@link DataPermission} 设置到 header 中,继续透传给被调用的服务 |
| | | * |
| | | * 注意:由于 {@link DataPermission} 不支持序列化和反序列化,所以暂时只能传递它的 enable 属性 |
| | | * |
| | | * @author iailab |
| | | */ |
| | | public class DataPermissionRequestInterceptor implements RequestInterceptor { |
| | | |
| | | public static final String ENABLE_HEADER_NAME = "data-permission-enable"; |
| | | |
| | | @Override |
| | | public void apply(RequestTemplate requestTemplate) { |
| | | DataPermission dataPermission = DataPermissionContextHolder.get(); |
| | | if (dataPermission != null && Boolean.FALSE.equals(dataPermission.enable())) { |
| | | requestTemplate.header(ENABLE_HEADER_NAME, "false"); |
| | | } |
| | | } |
| | | |
| | | } |