修正了security拦截器npe问题
This commit is contained in:
@ -13,7 +13,7 @@ public class UserCenterClientFallback implements UserCenterClient {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SecurityUser getUserInfo() {
|
public SecurityUser getUserInfo() {
|
||||||
log.error("Feign connect timeout.");
|
log.error("Feign Fallback.");
|
||||||
return new SecurityUser();
|
return new SecurityUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
package com.chinaunicom.mall.ebtp.cloud.security.starter.filter;
|
package com.chinaunicom.mall.ebtp.cloud.security.starter.filter;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.servlet.FilterChain;
|
import javax.servlet.FilterChain;
|
||||||
@ -35,7 +37,6 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
|
|||||||
|
|
||||||
private @Autowired UserCenterClient client;
|
private @Autowired UserCenterClient client;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param request
|
* @param request
|
||||||
* @param response
|
* @param response
|
||||||
@ -77,9 +78,10 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
|
|||||||
SecurityUser securityUser = client.getUserInfo();
|
SecurityUser securityUser = client.getUserInfo();
|
||||||
|
|
||||||
// 根据当前角色设定权限列表
|
// 根据当前角色设定权限列表
|
||||||
List<RoleCodeAuthority> authorities = securityUser.getAuthorityList().stream()
|
List<RoleCodeAuthority> authorities = Optional.ofNullable(securityUser.getAuthorityList()).map(list -> {
|
||||||
.filter(auth -> Objects.equals(auth.getRoleCode(), currentRoleCode))
|
return list.stream().filter(auth -> Objects.equals(auth.getRoleCode(), currentRoleCode))
|
||||||
.map(auth -> new RoleCodeAuthority(auth.getRoleCode())).collect(Collectors.toList());
|
.map(auth -> new RoleCodeAuthority(auth.getRoleCode())).collect(Collectors.toList());
|
||||||
|
}).orElseGet(() -> Collections.emptyList());
|
||||||
|
|
||||||
return new UsernamePasswordAuthenticationToken(securityUser.setCurrentRoleCode(currentRoleCode), token,
|
return new UsernamePasswordAuthenticationToken(securityUser.setCurrentRoleCode(currentRoleCode), token,
|
||||||
authorities);
|
authorities);
|
||||||
|
Reference in New Issue
Block a user