| | |
| | | import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; |
| | | import org.springframework.security.authentication.AnonymousAuthenticationToken; |
| | | import org.springframework.security.core.Authentication; |
| | | import org.springframework.security.core.context.SecurityContextHolder; |
| | | import org.springframework.security.core.context.SecurityContextImpl; |
| | | import org.springframework.security.oauth2.provider.OAuth2Authentication; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.*; |
| | | |
| | | import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.PRE_DECORATION_FILTER_ORDER; |
| | |
| | | @SneakyThrows |
| | | @Override |
| | | public Object run() { |
| | | Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); |
| | | //Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); |
| | | RequestContext currentContext = RequestContext.getCurrentContext(); |
| | | //获取request对象 |
| | | HttpServletRequest request = currentContext.getRequest(); |
| | | //security会把一个SecurityContextImpl对象存储到session中,此对象中有当前用户的各种资料 |
| | | SecurityContextImpl securityContextImpl = (SecurityContextImpl) request |
| | | .getSession().getAttribute("SPRING_SECURITY_CONTEXT"); |
| | | Authentication authentication = securityContextImpl.getAuthentication(); |
| | | if (authentication != null && !(authentication instanceof AnonymousAuthenticationToken)) { |
| | | Object principal = authentication.getPrincipal(); |
| | | RequestContext ctx = RequestContext.getCurrentContext(); |