From ad89f4965a05d37aeea1481c4ab53e21ab85ca2f Mon Sep 17 00:00:00 2001 From: 于紫祥_1901 <email@yuzixiang_1910> Date: Wed, 12 Aug 2020 09:32:58 +0800 Subject: [PATCH] 风场图update --- src/main/java/com/moral/security/endpoint/RefreshTokenEndpoint.java | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/moral/security/endpoint/RefreshTokenEndpoint.java b/src/main/java/com/moral/security/endpoint/RefreshTokenEndpoint.java index f965e0f..7a1be18 100644 --- a/src/main/java/com/moral/security/endpoint/RefreshTokenEndpoint.java +++ b/src/main/java/com/moral/security/endpoint/RefreshTokenEndpoint.java @@ -1,7 +1,7 @@ package com.moral.security.endpoint; import com.moral.entity.Account; -import com.moral.security.auth.JwtAuthenticationToken; +import com.moral.entity.Role; import com.moral.security.auth.login.LoginMode; import com.moral.security.model.token.JwtTokenFactory; import com.moral.security.auth.jwt.extractor.TokenExtractor; @@ -14,6 +14,8 @@ import com.moral.security.model.token.RawAccessJwtToken; import com.moral.security.model.token.RefreshToken; import com.moral.service.AccountService; + +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.MediaType; @@ -56,7 +58,7 @@ @RequestMapping(value="/auth/token", method= RequestMethod.GET, produces={ MediaType.APPLICATION_JSON_VALUE }) public @ResponseBody JwtToken refreshToken(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { - String tokenPayload = tokenExtractor.extract(request.getHeader(WebSecurityConfig.AUTHENTICATION_HEADER_NAME)); + String tokenPayload = tokenExtractor.extract(request.getHeader(WebSecurityConfig.REFRESH_TOKEN_HEADER_NAME)); RawAccessJwtToken rawToken = new RawAccessJwtToken(tokenPayload); RefreshToken refreshToken = RefreshToken.create(rawToken, jwtSettings.getTokenSigningKey()).orElseThrow(() -> new InvalidJwtToken()); @@ -69,10 +71,10 @@ // ���refresh token��� ������������������ LoginMode mode = LoginMode.valueOf(refreshToken.getClaims().getBody().get("mode").toString()); Account account = accountService.queryAccountByName(subject).orElseThrow(() -> new UsernameNotFoundException("User not found: " + subject)); - - if (account.getRoles() == null) throw new InsufficientAuthenticationException("User has no roles assigned"); - List<GrantedAuthority> authorities = account.getRoles().stream() - .map(authority -> new SimpleGrantedAuthority(authority.getName())) + List<Role> roleList = accountService.getRolesByAccountName(account.getAccountName()); + if (CollectionUtils.isEmpty(roleList)) throw new InsufficientAuthenticationException("User has no roles assigned"); + List<GrantedAuthority> authorities = roleList.stream() + .map(authority -> new SimpleGrantedAuthority(authority.getRoleName())) .collect(Collectors.toList()); UserContext userContext = UserContext.create(account.getAccountName(),mode,account.getOrganizationId(),authorities); -- Gitblit v1.8.0