|
|
@@ -4,6 +4,7 @@ import com.auth0.jwt.exceptions.JWTVerificationException;
|
|
|
import com.auth0.jwt.interfaces.Claim;
|
|
|
import com.nju.edu.eval.data.entity.User;
|
|
|
import com.nju.edu.eval.exception.MyServiceException;
|
|
|
+import com.nju.edu.eval.model.vo.user.PortalUserVO;
|
|
|
import com.nju.edu.eval.service.UserService;
|
|
|
import com.nju.edu.eval.service.convertor.UserConvertor;
|
|
|
import com.nju.edu.eval.model.vo.user.UpdateUserVO;
|
|
|
@@ -19,6 +20,7 @@ import org.springframework.web.context.request.RequestContextHolder;
|
|
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
|
@@ -41,7 +43,8 @@ public class AuthAspect {
|
|
|
private User getUserByToken(String token) throws JWTVerificationException {
|
|
|
try {
|
|
|
Claim claim = JwtUtil.parseJwt(token);
|
|
|
- return claim.as(User.class);
|
|
|
+ PortalUserVO userVO = claim.as(PortalUserVO.class);
|
|
|
+ return new User(userVO.getId(), userVO.getRole(), userVO.getName(), userVO.getEmail(), userVO.getPhone(), new ArrayList<>(), null);
|
|
|
} catch (MyServiceException e) {
|
|
|
throw new MyServiceException(e.getCode(), e.getMessage());
|
|
|
}
|
|
|
@@ -52,7 +55,6 @@ public class AuthAspect {
|
|
|
HttpServletRequest httpServletRequest = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
|
|
|
String token = Optional.ofNullable(httpServletRequest.getHeader("Authorization")).
|
|
|
orElseThrow(() -> new MyServiceException("A0223", "用户未获得第三方登录授权"));
|
|
|
-
|
|
|
User user = getUserByToken(token);
|
|
|
// 创建或者更新用户
|
|
|
if (userService.existsById(user.getId())) {
|