diff --git a/mall-ebtp-cloud-attachment-sdk/src/main/resources/attachment-sdk-cofiguration.properties b/mall-ebtp-cloud-attachment-sdk/src/main/resources/attachment-sdk-cofiguration.properties
index e62f226..149515d 100644
--- a/mall-ebtp-cloud-attachment-sdk/src/main/resources/attachment-sdk-cofiguration.properties
+++ b/mall-ebtp-cloud-attachment-sdk/src/main/resources/attachment-sdk-cofiguration.properties
@@ -2,6 +2,8 @@ feign.hystrix.enabled=true
feign.client.config.default.retryer=feign.Retryer.Default
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=600000
+server.max-http-header-size=2048576
+
# document center id
document.center.service.id=core-service-document-center
-document.center.ip-address=http://10.242.31.158:8801/
\ No newline at end of file
+document.center.ip-address=http://10.238.25.112:8100/doc/
\ No newline at end of file
diff --git a/mall-ebtp-cloud-security-starter/pom.xml b/mall-ebtp-cloud-security-starter/pom.xml
index 931b060..13b1e9b 100644
--- a/mall-ebtp-cloud-security-starter/pom.xml
+++ b/mall-ebtp-cloud-security-starter/pom.xml
@@ -30,5 +30,10 @@
org.apache.commons
commons-lang3
+
+
+ com.chinaunicom.ebtp
+ mall-ebtp-cloud-feign-starter
+
diff --git a/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/SecurityStarterConfiguration.java b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/SecurityStarterConfiguration.java
index 569732e..943813a 100644
--- a/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/SecurityStarterConfiguration.java
+++ b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/SecurityStarterConfiguration.java
@@ -1,11 +1,15 @@
package com.chinaunicom.mall.ebtp.cloud.security.starter;
+import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.client.RestTemplate;
@Configuration
+@EnableFeignClients(basePackages = "com.chinaunicom.mall.ebtp.cloud.security.starter")
+@ComponentScan(basePackages = "com.chinaunicom.mall.ebtp.cloud.security.starter")
@PropertySource("classpath:security-configuration.properties")
public class SecurityStarterConfiguration {
diff --git a/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/client/UserCenterClient.java b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/client/UserCenterClient.java
new file mode 100644
index 0000000..8c8ba01
--- /dev/null
+++ b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/client/UserCenterClient.java
@@ -0,0 +1,27 @@
+package com.chinaunicom.mall.ebtp.cloud.security.starter.client;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.SecurityUser;
+import com.chinaunicom.mall.ebtp.cloud.security.starter.fallback.UserCenterClientFallback;
+
+/**
+ * 连接山分的文档中心服务
+ *
+ * @author Ajaxfan
+ */
+@FeignClient(name = "${mall-ebtp.userinfo.id}", fallback = UserCenterClientFallback.class)
+public interface UserCenterClient {
+
+ /**
+ * 通过附件id查询明细
+ *
+ * @param fileId
+ * @return
+ */
+ @RequestMapping(method = RequestMethod.GET, value = "v1/userinfo/get")
+ SecurityUser getUserInfo();
+
+}
diff --git a/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/fallback/UserCenterClientFallback.java b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/fallback/UserCenterClientFallback.java
new file mode 100644
index 0000000..640b672
--- /dev/null
+++ b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/fallback/UserCenterClientFallback.java
@@ -0,0 +1,20 @@
+package com.chinaunicom.mall.ebtp.cloud.security.starter.fallback;
+
+import org.springframework.stereotype.Component;
+
+import com.chinaunicom.mall.ebtp.cloud.security.starter.client.UserCenterClient;
+import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.SecurityUser;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Component
+public class UserCenterClientFallback implements UserCenterClient {
+
+ @Override
+ public SecurityUser getUserInfo() {
+ log.error("Feign connect timeout.");
+ return new SecurityUser();
+ }
+
+}
diff --git a/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java
index 4280934..2bf5706 100644
--- a/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java
+++ b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java
@@ -4,7 +4,6 @@ import java.io.IOException;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
@@ -14,18 +13,12 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.RegExUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.core.env.Environment;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.web.client.RestTemplate;
import org.springframework.web.filter.OncePerRequestFilter;
+import com.chinaunicom.mall.ebtp.cloud.security.starter.client.UserCenterClient;
import com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants;
import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.RoleCodeAuthority;
import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.SecurityUser;
@@ -40,10 +33,8 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TokenAuthenticationFilter extends OncePerRequestFilter {
- private @Autowired RestTemplate restTemplate;
- private @Autowired ApplicationContext context;
+ private @Autowired UserCenterClient client;
- private final String token_url_config_format = "user.auth.resource.userinfo.%s";
/**
* @param request
@@ -83,14 +74,7 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
* @return
*/
private Authentication getAuthentication(final String token, final String currentRoleCode) {
- HttpHeaders headers = new HttpHeaders();
- // 设置安全头
- headers.add(HttpHeaders.AUTHORIZATION, String.format("Bearer %s", token));
-
- ResponseEntity entity = restTemplate.exchange(getTokenURI(), HttpMethod.GET,
- new HttpEntity(headers), SecurityUser.class);
-
- SecurityUser securityUser = entity.getBody();
+ SecurityUser securityUser = client.getUserInfo();
// 根据当前角色设定权限列表
List authorities = securityUser.getAuthorityList().stream()
@@ -101,27 +85,4 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
authorities);
}
- /**
- * 用户信息接口地址
- *
- * @return
- */
- private String getTokenURI() {
- Environment env = context.getEnvironment();
-
- String config = Stream.of(env.getActiveProfiles()).findFirst().map(first -> first).orElseGet(() -> "default");
-
- return StringUtils.getIfEmpty(env.getProperty(format(config.toLowerCase())), () -> {
- return env.getProperty(format("default"));
- });
- }
-
- /**
- * @param text
- * @return
- */
- private String format(String text) {
- return String.format(token_url_config_format, text);
- }
-
}
diff --git a/mall-ebtp-cloud-security-starter/src/main/resources/security-configuration.properties b/mall-ebtp-cloud-security-starter/src/main/resources/security-configuration.properties
index f692f8e..37d2b46 100644
--- a/mall-ebtp-cloud-security-starter/src/main/resources/security-configuration.properties
+++ b/mall-ebtp-cloud-security-starter/src/main/resources/security-configuration.properties
@@ -1,5 +1,3 @@
-user.auth.resource.userinfo.default=http://10.242.31.158:8100/core-service-ebtp-userinfo/v1/userinfo/get
-user.auth.resource.userinfo.uat=http://10.242.31.158:8100/core-service-ebtp-userinfo/v1/userinfo/get
-user.auth.resource.userinfo.test=http://10.242.37.148:8100/core-service-ebtp-userinfo/v1/userinfo/get
-user.auth.resource.userinfo.pro=http://10.238.25.112:8100/core-service-ebtp-userinfo/v1/userinfo/get
-user.auth.csrf.disable=true
\ No newline at end of file
+user.auth.csrf.disable=true
+
+mall-ebtp.userinfo.id=core-service-ebtp-userinfo
\ No newline at end of file