fix: 增加swagger的自定义的授权方式
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/Swagger2Config.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/Swagger2Config.java
index 1c8a23b..5a1022a 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/Swagger2Config.java
+++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/Swagger2Config.java
@@ -1,19 +1,29 @@
 package com.supwisdom.institute.backend.admin.bff.configuration;
 
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.AuthorizationScopeBuilder;
 import springfox.documentation.builders.PathSelectors;
 import springfox.documentation.builders.RequestHandlerSelectors;
 import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.ApiKey;
+import springfox.documentation.service.AuthorizationScope;
+import springfox.documentation.service.BasicAuth;
 import springfox.documentation.service.Contact;
+import springfox.documentation.service.SecurityReference;
+import springfox.documentation.service.SecurityScheme;
 import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
 import springfox.documentation.spring.web.plugins.Docket;
 import springfox.documentation.swagger.web.UiConfiguration;
 import springfox.documentation.swagger.web.UiConfigurationBuilder;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
+import static com.google.common.collect.Lists.*;
 
 @Configuration
 @EnableSwagger2
@@ -25,27 +35,65 @@
   @Bean
   public Docket createRestApi() {
     return new Docket(DocumentationType.SWAGGER_2)
+        .securitySchemes(securitySchemes())
+        .securityContexts(securityContexts())
         .apiInfo(apiInfo())
         .select()
         .apis(RequestHandlerSelectors.basePackage(basePackage))
         .paths(PathSelectors.any())
         .build()
-        ;
+    ;
   }
 
   private ApiInfo apiInfo() {
-    Contact contact = new Contact("Backend Admin Aggregator API", "https://sw-backend-aggr.supwisdom.com/swagger-ui.html", ""); // name, url, email
+    Contact contact = new Contact("Backend Admin BFF", "https://sw-backend-api.supwisdom.com/swagger-ui.html", ""); // name, url, email
     return new ApiInfoBuilder()
-        .title("Backend Admin Aggregator APIs")
-        .description("管理后台 - 聚合接口")
+        .title("Backend Admin BFF APIs")
+        .description("管理后台 - 后端接口<br /><br />"
+            + "X-FORWARD-USER(测试用):<br /><br />"
+            + "明文:{\"attributes\":{\"accountId\":\"1\"},\"roles\":[\"ROLE_ADMIN\",\"administrator\",\"user\"],\"username\":\"swadmin\"}<br /><br />"
+            + "Base64:eyJhdHRyaWJ1dGVzIjp7ImFjY291bnRJZCI6IjEifSwicm9sZXMiOlsiUk9MRV9BRE1JTiIsImFkbWluaXN0cmF0b3IiLCJ1c2VyIl0sInVzZXJuYW1lIjoic3dhZG1pbiJ9<br /><br />"
+            + "使用 Base64字符串 进行 Authorize,然后进行接口测试<br /><br />"
+            + "若需要其他帐号,请自行拼接明文,再进行 Base64 编码<br /><br />"
+            + ""
+        )
         .termsOfServiceUrl("http://www.supwisdom.com/")
         .contact(contact)
         .version("1.0")
         .build();
   }
+  
+  private List<SecurityScheme> securitySchemes() {
+    //return newArrayList(new BasicAuth("sample"));
+    return newArrayList(
+        //new BasicAuth("Basic"),
+        //new ApiKey("JWTToken", "Authorization", "header"), 
+        new ApiKey("SimpleUserTransmit", "X-FORWARD-USER", "header"));
+  }
+  
+  private List<SecurityContext> securityContexts() {
+
+    List<SecurityReference> globalSecurityReference = newArrayList(
+        new SecurityReference("SimpleUserTransmit", new AuthorizationScope[]{new AuthorizationScope("global", "accessEverything")}));
+    
+//    AuthorizationScope[] authScopes = new AuthorizationScope[1];
+//    authScopes[0] = new AuthorizationScopeBuilder()
+//            .scope("read")
+//            .description("read access")
+//            .build();
+//    SecurityReference securityReference = SecurityReference.builder()
+//            .reference("sample")
+//            .scopes(authScopes)
+//            .build();
+
+    return newArrayList(
+        SecurityContext.builder()
+          .securityReferences(newArrayList(globalSecurityReference))
+          .build());
+  }
 
   @Bean
-  UiConfiguration uiConfig() {
+  public UiConfiguration uiConfig() {
     
     return UiConfigurationBuilder.builder().build();
     
@@ -59,5 +107,26 @@
 //        60000L); // requestTimeout => in milliseconds, defaults to null
 //    // (uses jquery xh timeout)
   }
+  
+  
+//  @Bean
+//  public SecurityConfiguration oauth2() {
+//      return SecurityConfigurationBuilder.builder()
+//          .clientId("common")
+//          .clientSecret("secret")
+//          .scopeSeparator(" ")
+//          .useBasicAuthenticationWithAccessCodeGrant(true)
+//          .build();
+//  }
+//  
+//  @Bean
+//  public SecurityConfiguration basic() {
+//      return SecurityConfigurationBuilder.builder()
+//          .clientId("common")
+//          .clientSecret("secret")
+//          .scopeSeparator(" ")
+//          .useBasicAuthenticationWithAccessCodeGrant(true)
+//          .build();
+//  }
 
 }
diff --git a/sa/admin/src/main/java/com/supwisdom/institute/backend/admin/sa/configuration/Swagger2Config.java b/sa/admin/src/main/java/com/supwisdom/institute/backend/admin/sa/configuration/Swagger2Config.java
index 1eb942e..287cea5 100644
--- a/sa/admin/src/main/java/com/supwisdom/institute/backend/admin/sa/configuration/Swagger2Config.java
+++ b/sa/admin/src/main/java/com/supwisdom/institute/backend/admin/sa/configuration/Swagger2Config.java
@@ -1,5 +1,9 @@
 package com.supwisdom.institute.backend.admin.sa.configuration;
 
+import static com.google.common.collect.Lists.newArrayList;
+
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -8,8 +12,13 @@
 import springfox.documentation.builders.PathSelectors;
 import springfox.documentation.builders.RequestHandlerSelectors;
 import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.ApiKey;
+import springfox.documentation.service.AuthorizationScope;
 import springfox.documentation.service.Contact;
+import springfox.documentation.service.SecurityReference;
+import springfox.documentation.service.SecurityScheme;
 import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
 import springfox.documentation.spring.web.plugins.Docket;
 import springfox.documentation.swagger.web.UiConfiguration;
 import springfox.documentation.swagger.web.UiConfigurationBuilder;
@@ -25,25 +34,63 @@
   @Bean
   public Docket createRestApi() {
     return new Docket(DocumentationType.SWAGGER_2)
+        .securitySchemes(securitySchemes())
+        .securityContexts(securityContexts())
         .apiInfo(apiInfo())
         .select()
         .apis(RequestHandlerSelectors.basePackage(basePackage))
         .paths(PathSelectors.any())
         .build()
-        ;
+    ;
   }
 
   private ApiInfo apiInfo() {
     Contact contact = new Contact("Backend Admin Super Admin", "https://sw-backend-sa.supwisdom.com/swagger-ui.html", ""); // name, url, email
     return new ApiInfoBuilder()
         .title("Backend Admin Super Admin APIs")
-        .description("管理后台 - 服务接口")
+        .description("管理后台 - 服务接口<br /><br />"
+            + "X-FORWARD-USER(测试用):<br /><br />"
+            + "明文:{\"attributes\":{\"accountId\":\"1\"},\"roles\":[\"ROLE_ADMIN\",\"administrator\",\"user\"],\"username\":\"swadmin\"}<br /><br />"
+            + "Base64:eyJhdHRyaWJ1dGVzIjp7ImFjY291bnRJZCI6IjEifSwicm9sZXMiOlsiUk9MRV9BRE1JTiIsImFkbWluaXN0cmF0b3IiLCJ1c2VyIl0sInVzZXJuYW1lIjoic3dhZG1pbiJ9<br /><br />"
+            + "使用 Base64字符串 进行 Authorize,然后进行接口测试<br /><br />"
+            + "若需要其他帐号,请自行拼接明文,再进行 Base64 编码<br /><br />"
+            + ""
+        )
         .termsOfServiceUrl("http://www.supwisdom.com/")
         .contact(contact)
         .version("1.0")
         .build();
   }
 
+  private List<SecurityScheme> securitySchemes() {
+    //return newArrayList(new BasicAuth("sample"));
+    return newArrayList(
+        //new BasicAuth("Basic"),
+        //new ApiKey("JWTToken", "Authorization", "header"), 
+        new ApiKey("SimpleUserTransmit", "X-FORWARD-USER", "header"));
+  }
+  
+  private List<SecurityContext> securityContexts() {
+
+    List<SecurityReference> globalSecurityReference = newArrayList(
+        new SecurityReference("SimpleUserTransmit", new AuthorizationScope[]{new AuthorizationScope("global", "accessEverything")}));
+    
+//    AuthorizationScope[] authScopes = new AuthorizationScope[1];
+//    authScopes[0] = new AuthorizationScopeBuilder()
+//            .scope("read")
+//            .description("read access")
+//            .build();
+//    SecurityReference securityReference = SecurityReference.builder()
+//            .reference("sample")
+//            .scopes(authScopes)
+//            .build();
+
+    return newArrayList(
+        SecurityContext.builder()
+          .securityReferences(newArrayList(globalSecurityReference))
+          .build());
+  }
+
   @Bean
   UiConfiguration uiConfig() {