| | |
| | | import com.netflix.zuul.ZuulFilter; |
| | | import com.netflix.zuul.context.RequestContext; |
| | | import eu.bitwalker.useragentutils.UserAgent; |
| | | import lombok.SneakyThrows; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; |
| | | import org.springframework.security.authentication.AnonymousAuthenticationToken; |
| | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.net.URLEncoder; |
| | | import java.util.List; |
| | | |
| | | import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.FORM_BODY_WRAPPER_FILTER_ORDER; |
| | |
| | | return true; |
| | | } |
| | | |
| | | @SneakyThrows |
| | | @Override |
| | | public Object run() { |
| | | Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); |
| | |
| | | SysUser user = (SysUser)authentication.getPrincipal(); |
| | | ctx.addZuulRequestHeader(SecurityConstants.USER_ID_HEADER, String.valueOf(user.getId())); |
| | | ctx.addZuulRequestHeader(SecurityConstants.USER_HEADER, user.getUsername()); |
| | | ctx.addZuulRequestHeader(SecurityConstants.USER_REAL_NAME, "");//待完善 |
| | | List<SysOrganization> organizations = (List<SysOrganization>)user.getOrganizations(); |
| | | //如果有组织架构 |
| | | if(organizations!=null && organizations.size()==2){ |
| | | ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_ID_HEADER,String.valueOf(organizations.get(0).getId())); |
| | | ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_NAME_HEADER,organizations.get(0).getOrgName()); |
| | | ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_NAME_HEADER, URLEncoder.encode(organizations.get(0).getOrgName(),"UTF-8")); |
| | | ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_ID_HEADER,String.valueOf(organizations.get(1).getId())); |
| | | ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_NAME_HEADER,organizations.get(1).getOrgName()); |
| | | ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_NAME_HEADER,URLEncoder.encode(organizations.get(1).getOrgName(),"UTF-8")); |
| | | tenantId=String.valueOf(organizations.get(0).getId()); |
| | | } |
| | | // log.error("用户ID写入Header成功,用户ID为:"+String.valueOf(user.getId())); |