|
1 | 1 | package com.github.cadecode.uniboot.framework.api.security.filter; |
2 | 2 |
|
3 | 3 | import cn.hutool.core.util.CharsetUtil; |
4 | | -import cn.hutool.core.util.EscapeUtil; |
5 | 4 | import cn.hutool.core.util.ObjectUtil; |
6 | 5 | import cn.hutool.extra.servlet.ServletUtil; |
7 | 6 | import cn.hutool.http.ContentType; |
|
10 | 9 | import com.github.cadecode.uniboot.common.core.util.JacksonUtil; |
11 | 10 | import com.github.cadecode.uniboot.common.core.web.response.ApiResult; |
12 | 11 | import com.github.cadecode.uniboot.framework.api.bean.dto.SysUserDto.SysUserDetailsDto; |
13 | | -import com.github.cadecode.uniboot.framework.api.consts.SecurityConst; |
| 12 | +import com.github.cadecode.uniboot.framework.api.util.RequestUtil; |
14 | 13 | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
15 | 14 | import org.springframework.security.core.context.SecurityContextHolder; |
16 | 15 | import org.springframework.security.core.userdetails.UserDetails; |
@@ -63,18 +62,12 @@ protected void writeResponse(HttpServletResponse response, ApiErrorCode errorCod |
63 | 62 | * 由 handler 方法提供处理 |
64 | 63 | */ |
65 | 64 | public void filter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { |
66 | | - // 根据请求头判断是否是内部请求 |
67 | | - String source = ServletUtil.getHeader(request, SecurityConst.HEAD_SOURCE, CharsetUtil.CHARSET_UTF_8); |
68 | | - if (ObjectUtil.equal(source, SecurityConst.HEAD_SOURCE_VALUE)) { |
69 | | - // 从请求头中提取来自其他服务调用传递得用户信息 |
70 | | - String escapedUserDetailsJson = ServletUtil.getHeader(request, SecurityConst.HEAD_USER_DETAILS, CharsetUtil.CHARSET_UTF_8); |
71 | | - if (ObjectUtil.isNotEmpty(escapedUserDetailsJson)) { |
72 | | - SysUserDetailsDto userDetailsDto = JacksonUtil.toBean(EscapeUtil.unescape(escapedUserDetailsJson), SysUserDetailsDto.class); |
73 | | - if (ObjectUtil.isNotNull(userDetailsDto)) { |
74 | | - setAuthentication(request, userDetailsDto); |
75 | | - filterChain.doFilter(request, response); |
76 | | - return; |
77 | | - } |
| 65 | + if (RequestUtil.isInnerRequest(request)) { |
| 66 | + SysUserDetailsDto userDetailsDto = RequestUtil.getInnerUserDetails(request); |
| 67 | + if (ObjectUtil.isNotNull(userDetailsDto)) { |
| 68 | + setAuthentication(request, userDetailsDto); |
| 69 | + filterChain.doFilter(request, response); |
| 70 | + return; |
78 | 71 | } |
79 | 72 | } |
80 | 73 | handler(request, response, filterChain); |
|
0 commit comments