You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2019/07/03 04:05:41 UTC

[servicecomb-fence] 02/02: [SCB-1343]minor code condition check improvements

This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git

commit 33d3d138839379a698bf8f7ae31dedd66c96164b
Author: liubao <bi...@qq.com>
AuthorDate: Wed Jul 3 12:04:51 2019 +0800

    [SCB-1343]minor code condition check improvements
---
 .../server/PasswordTokenGranter.java               | 22 ++++++++++++++++------
 .../server/RefreshTokenTokenGranter.java           |  5 +++++
 .../authentication/edge/TokenEndpoint.java         |  4 ----
 3 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/api/authentication-server/endpoint/src/main/java/org/apache/servicecomb/authentication/server/PasswordTokenGranter.java b/api/authentication-server/endpoint/src/main/java/org/apache/servicecomb/authentication/server/PasswordTokenGranter.java
index 45c8ca2..bb32d48 100644
--- a/api/authentication-server/endpoint/src/main/java/org/apache/servicecomb/authentication/server/PasswordTokenGranter.java
+++ b/api/authentication-server/endpoint/src/main/java/org/apache/servicecomb/authentication/server/PasswordTokenGranter.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.authentication.server;
 
 import java.util.Map;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.authentication.token.AbstractOpenIDTokenStore;
 import org.apache.servicecomb.authentication.token.OpenIDToken;
 import org.apache.servicecomb.authentication.util.CommonConstants;
@@ -26,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Component;
 
@@ -50,12 +52,20 @@ public class PasswordTokenGranter implements TokenGranter {
     String username = parameters.get(AuthenticationServerConstants.PARAM_USERNAME);
     String password = parameters.get(AuthenticationServerConstants.PARAM_PASSWORD);
 
-    UserDetails userDetails = userDetailsService.loadUserByUsername(username);
-    if (passwordEncoder.matches(password, userDetails.getPassword())) {
-      OpenIDToken openIDToken = openIDTokenStore.createToken(userDetails);
-      openIDTokenStore.saveToken(openIDToken);
-      return TokenResponse.fromOpenIDToken(openIDToken);
-    } else {
+    if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
+      return null;
+    }
+
+    try {
+      UserDetails userDetails = userDetailsService.loadUserByUsername(username);
+      if (passwordEncoder.matches(password, userDetails.getPassword())) {
+        OpenIDToken openIDToken = openIDTokenStore.createToken(userDetails);
+        openIDTokenStore.saveToken(openIDToken);
+        return TokenResponse.fromOpenIDToken(openIDToken);
+      } else {
+        return null;
+      }
+    } catch (UsernameNotFoundException e) {
       return null;
     }
   }
diff --git a/api/authentication-server/endpoint/src/main/java/org/apache/servicecomb/authentication/server/RefreshTokenTokenGranter.java b/api/authentication-server/endpoint/src/main/java/org/apache/servicecomb/authentication/server/RefreshTokenTokenGranter.java
index 77a9f98..a18bd2d 100644
--- a/api/authentication-server/endpoint/src/main/java/org/apache/servicecomb/authentication/server/RefreshTokenTokenGranter.java
+++ b/api/authentication-server/endpoint/src/main/java/org/apache/servicecomb/authentication/server/RefreshTokenTokenGranter.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.authentication.server;
 
 import java.util.Map;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.authentication.token.AbstractOpenIDTokenStore;
 import org.apache.servicecomb.authentication.token.OpenIDToken;
 import org.apache.servicecomb.authentication.token.Token;
@@ -57,6 +58,10 @@ public class RefreshTokenTokenGranter implements TokenGranter {
   public TokenResponse grant(Map<String, String> parameters) {
     String refreshTokenValue = parameters.get(AuthenticationServerConstants.PARAM_REFRESH_TOKEN);
 
+    if (StringUtils.isEmpty(refreshTokenValue)) {
+      return null;
+    }
+
     Token refreshToken = openIDTokenStore.readTokenByRefreshTokenValue(refreshTokenValue);
 
     if (refreshToken != null && !refreshToken.isExpired()) {
diff --git a/api/edge-service/endpoint/src/main/java/org/apache/servicecomb/authentication/edge/TokenEndpoint.java b/api/edge-service/endpoint/src/main/java/org/apache/servicecomb/authentication/edge/TokenEndpoint.java
index 8718a0c..578f71a 100644
--- a/api/edge-service/endpoint/src/main/java/org/apache/servicecomb/authentication/edge/TokenEndpoint.java
+++ b/api/edge-service/endpoint/src/main/java/org/apache/servicecomb/authentication/edge/TokenEndpoint.java
@@ -26,7 +26,6 @@ import org.apache.servicecomb.provider.pojo.RpcReference;
 import org.apache.servicecomb.provider.rest.common.RestSchema;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -47,9 +46,6 @@ public class TokenEndpoint implements TokenService {
   public CompletableFuture<TokenResponse> getToken(@RequestBody Map<String, String> parameters) {
     CompletableFuture<TokenResponse> result = new CompletableFuture<>();
 
-    HttpHeaders headers = new HttpHeaders();
-    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-
     CompletableFuture<TokenResponse> response =
         authenticationSererTokenEndpoint.getToken(parameters);
     response.whenComplete((tokenResonse, ex) -> {