diff --git a/gateway/pom.xml b/gateway/pom.xml
index d9600f6..0772813 100644
--- a/gateway/pom.xml
+++ b/gateway/pom.xml
@@ -4,9 +4,9 @@
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <groupId>com.supwisdom.institute</groupId>
-    <artifactId>sw-backend-parent</artifactId>
-    <version>0.0.2-SNAPSHOT</version>
+    <groupId>com.supwisdom.buildcommons</groupId>
+    <artifactId>spring-cloud-parent</artifactId>
+    <version>Finchley.RELEASE-1.1</version>
   </parent>
 
   <groupId>com.supwisdom.institute</groupId>
@@ -18,9 +18,100 @@
   <description>Supwisdom Backend Framework Gateway project</description>
 
   <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <java.version>1.8</java.version>
+
+    <argLine>-Dfile.encoding=UTF-8</argLine>
+
+    <downloadSources>true</downloadSources>
+    <downloadJavadocs>true</downloadJavadocs>
+
+    <maven.compiler.source>${java.version}</maven.compiler.source>
+    <maven.compiler.target>${java.version}</maven.compiler.target>
+
+    <dockerfile-maven-plugin.version>1.4.8</dockerfile-maven-plugin.version>
+    <dockerfile.image.server>harbor.supwisdom.com</dockerfile.image.server>
+    <dockerfile.image.prefix>sw-admin-framework</dockerfile.image.prefix>
+
+    <infras.version>0.1.1-SNAPSHOT</infras.version>
+
+    <io.springfox.version>2.9.2</io.springfox.version>
+
+    <mybatis.spring.boot.version>1.3.1</mybatis.spring.boot.version>
+
     <start-class>com.supwisdom.institute.backend.gateway.Application</start-class>
   </properties>
 
+  <distributionManagement>
+    <repository>
+      <id>supwisdom-releases</id>
+      <name>internal release</name>
+      <url>https://app.supwisdom.com/nexus/content/repositories/releases</url>
+    </repository>
+    <snapshotRepository>
+      <id>supwisdom-snapshots</id>
+      <name>internal snapshots</name>
+      <url>https://app.supwisdom.com/nexus/content/repositories/snapshots</url>
+    </snapshotRepository>
+  </distributionManagement>
+
+  <repositories>
+    <repository>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+      <id>supwisdom</id>
+      <url>https://app.supwisdom.com/nexus/content/groups/public/</url>
+    </repository>
+    <repository>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>central</id>
+      <url>http://repo.maven.apache.org/maven2</url>
+    </repository>
+  </repositories>
+
+  <dependencyManagement>
+    <dependencies>
+
+      <dependency>
+        <groupId>com.supwisdom.infras</groupId>
+        <artifactId>infras-bom</artifactId>
+        <version>${infras.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+
+      <dependency>
+        <groupId>com.supwisdom.institute</groupId>
+        <artifactId>sw-backend-common-core</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>com.supwisdom.institute</groupId>
+        <artifactId>sw-backend-common-utils</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>com.supwisdom.institute</groupId>
+        <artifactId>sw-backend-common-framework</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+
+
+      <dependency>
+        <groupId>com.alibaba</groupId>
+        <artifactId>fastjson</artifactId>
+        <version>1.2.56</version>
+      </dependency>
+
+
+    </dependencies>
+  </dependencyManagement>
+
   <dependencies>
 
     <dependency>
@@ -100,6 +191,15 @@
       <groupId>com.supwisdom.institute</groupId>
       <artifactId>sw-backend-common-framework</artifactId>
     </dependency>
+    
+    <dependency>
+      <groupId>org.springframework.data</groupId>
+      <artifactId>spring-data-redis</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>redis.clients</groupId>
+      <artifactId>jedis</artifactId>
+    </dependency>
 
     <dependency>
       <groupId>commons-codec</groupId>
@@ -112,14 +212,14 @@
     </dependency>
 
 
-    <dependency>
+    <!-- <dependency>
       <groupId>io.springfox</groupId>
       <artifactId>springfox-swagger2</artifactId>
     </dependency>
     <dependency>
       <groupId>io.springfox</groupId>
       <artifactId>springfox-swagger-ui</artifactId>
-    </dependency>
+    </dependency> -->
 
 
     <!-- 热部署，无需重启项目 -->
@@ -140,6 +240,26 @@
   <build>
     <finalName>${project.artifactId}</finalName>
 
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>com.spotify</groupId>
+          <artifactId>dockerfile-maven-plugin</artifactId>
+          <version>${dockerfile-maven-plugin.version}</version>
+          <configuration>
+            <repository>${dockerfile.image.server}/${dockerfile.image.prefix}/${project.artifactId}</repository>
+            <tag>${project.version}</tag>
+            <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+            <buildArgs>
+              <JAR_FILE>${project.build.finalName}.${project.packaging}</JAR_FILE>
+              <VERSION>${project.version}</VERSION>
+              <NAME>${project.artifactId}</NAME>
+            </buildArgs>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -162,52 +282,6 @@
         <artifactId>jacoco-maven-plugin</artifactId>
       </plugin>
 
-
-      <!-- <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-resources-plugin</artifactId>
-        <configuration>
-          <encoding>${project.build.sourceEncoding}</encoding>
-        </configuration>
-        <executions>
-          <execution>
-            <id>copy-doc-resources</id>
-            <phase>package</phase>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <configuration>
-              <encoding>utf-8</encoding>
-              <outputDirectory>${basedir}/target/doc</outputDirectory>
-              <overwrite>true</overwrite>
-              <resources>
-                <resource>
-                  <directory>${basedir}/../../doc</directory>
-                </resource>
-              </resources>
-            </configuration>
-          </execution>
-          <execution>
-            <id>copy-certs-jwt-resources</id>
-            <phase>package</phase>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <configuration>
-              <encoding>utf-8</encoding>
-              <outputDirectory>${basedir}/target/certs/jwt</outputDirectory>
-              <overwrite>true</overwrite>
-              <resources>
-                <resource>
-                  <directory>${basedir}/../../certs/jwt</directory>
-                </resource>
-              </resources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin> -->
-
-
       <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
diff --git a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/remote/configuration/AuthnRestTemplateConfig.java b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/remote/configuration/AuthnRestTemplateConfig.java
index 789f930..9041e1a 100644
--- a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/remote/configuration/AuthnRestTemplateConfig.java
+++ b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/remote/configuration/AuthnRestTemplateConfig.java
@@ -92,8 +92,8 @@
     return factory;
   }
   
-  @Bean(name = "authnAccountRestTemplate")
-  public RestTemplate authnAccountRestTemplate(ClientHttpRequestFactory requestFactory) {
+  @Bean(name = "authnRestTemplate")
+  public RestTemplate authnRestTemplate(ClientHttpRequestFactory requestFactory) {
     return new RestTemplate(requestFactory);
   }
   
diff --git a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/remote/web/client/AuthnRemoteRestTemplate.java b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/remote/web/client/AuthnRemoteClient.java
similarity index 98%
rename from gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/remote/web/client/AuthnRemoteRestTemplate.java
rename to gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/remote/web/client/AuthnRemoteClient.java
index b0fe53d..78d8c3f 100644
--- a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/remote/web/client/AuthnRemoteRestTemplate.java
+++ b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/remote/web/client/AuthnRemoteClient.java
@@ -12,7 +12,7 @@
 
 @Slf4j
 @Component
-public class AuthnRemoteRestTemplate {
+public class AuthnRemoteClient {
   
   @Autowired
   private RestTemplate authnRestTemplate;
diff --git a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/service/AuthnService.java b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/service/AuthnService.java
index 13434ec..160c5d8 100644
--- a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/service/AuthnService.java
+++ b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/authn/service/AuthnService.java
@@ -12,18 +12,18 @@
 import com.supwisdom.institute.backend.gateway.authn.model.ResourceRoleSet;
 import com.supwisdom.institute.backend.gateway.authn.model.Role;
 import com.supwisdom.institute.backend.gateway.authn.model.Route;
-import com.supwisdom.institute.backend.gateway.authn.remote.web.client.AuthnRemoteRestTemplate;
+import com.supwisdom.institute.backend.gateway.authn.remote.web.client.AuthnRemoteClient;
 
 @Slf4j
 @Service
 public class AuthnService {
   
   @Autowired
-  private AuthnRemoteRestTemplate authnRemote;
+  private AuthnRemoteClient authnRemoteClient;
   
   public Account account(String username) {
     
-    JSONObject jsonObject = authnRemote.account(username);
+    JSONObject jsonObject = authnRemoteClient.account(username);
     if (jsonObject == null) {
       return null;
     }
@@ -40,7 +40,7 @@
 
   public List<Role> accountRoles(String username) {
     
-    JSONObject jsonObject = authnRemote.accountRoles(username);
+    JSONObject jsonObject = authnRemoteClient.accountRoles(username);
     if (jsonObject == null) {
       return null;
     }
@@ -57,7 +57,7 @@
 
   public List<ResourceRoleSet> resourceRoleSets() {
     
-    JSONObject jsonObject = authnRemote.resourceRoleSets();
+    JSONObject jsonObject = authnRemoteClient.resourceRoleSets();
     if (jsonObject == null) {
       return null;
     }
@@ -74,7 +74,7 @@
 
   public List<Route> routes() {
     
-    JSONObject jsonObject = authnRemote.routes();
+    JSONObject jsonObject = authnRemoteClient.routes();
     if (jsonObject == null) {
       return null;
     }
diff --git a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/security/core/userdetails/InMemeryUserDetailsService.java b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/security/core/userdetails/InMemeryUserDetailsService.java
index 4e761a5..5dea61c 100644
--- a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/security/core/userdetails/InMemeryUserDetailsService.java
+++ b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/security/core/userdetails/InMemeryUserDetailsService.java
@@ -59,13 +59,6 @@
     MyUser myUser = new MyUser(username, passwordEncoder.encode(username), authorities, attributes);
     log.debug("myUser is {}", myUser);
     
-    List<String> roles = new ArrayList<>();
-    roles.add("ROLE_ADMIN");
-    roles.add("administrator");
-    roles.add("user");
-    User user = new User(username, roles, attributes);
-    UserContext.setUser(user);
-    
     return Mono.just(myUser);
   }
   
