diff --git a/Jenkinsfile b/Jenkinsfile
index 57c5f87..ce0eb1e 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -12,7 +12,7 @@
     // 禁止并发构建
     disableConcurrentBuilds()
     // 构建结果保留天数10天，最多保留10个
-    buildDiscarder logRotator(daysToKeepStr: '30', numToKeepStr: '10')
+    buildDiscarder logRotator(daysToKeepStr: '7', numToKeepStr: '10', artifactDaysToKeepStr: '1', artifactNumToKeepStr: '1')
     // 控制台打出时间戳
     // timestamps()
     // 构建超时设置：15分钟
diff --git a/biz-sa/biz/domain/src/main/resources/META-INF/spring.factories b/biz-sa/biz/domain/src/main/resources/META-INF/spring.factories
index ce9c07b..6851a16 100644
--- a/biz-sa/biz/domain/src/main/resources/META-INF/spring.factories
+++ b/biz-sa/biz/domain/src/main/resources/META-INF/spring.factories
@@ -1,2 +1,2 @@
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-  com.supwisdom.institute.backend.biz.domain.autoconfigure.BaseApiAutoConfiguration
+  com.supwisdom.institute.backend.biz.domain.autoconfigure.BizDomainAutoConfiguration
diff --git a/thirdparty-agent/agent/src/main/resources/application.yml b/thirdparty-agent/agent/src/main/resources/application.yml
index 001a0bd..7755a97 100644
--- a/thirdparty-agent/agent/src/main/resources/application.yml
+++ b/thirdparty-agent/agent/src/main/resources/application.yml
@@ -60,4 +60,4 @@
 user-authorization-service.server.url: ${poa.server.url}/apis/authz/v1
 
 ## 用户授权服务
-user-authorization-service.applicationId: 2
+user-authorization-service.applicationId: 5
diff --git a/zuul/src/main/java/com/supwisdom/institute/backend/zuul/security/core/userdetails/InMemeryUserDetailsService.java b/zuul/src/main/java/com/supwisdom/institute/backend/zuul/security/core/userdetails/InMemeryUserDetailsService.java
index 7de0bea..f213ddd 100644
--- a/zuul/src/main/java/com/supwisdom/institute/backend/zuul/security/core/userdetails/InMemeryUserDetailsService.java
+++ b/zuul/src/main/java/com/supwisdom/institute/backend/zuul/security/core/userdetails/InMemeryUserDetailsService.java
@@ -1,7 +1,9 @@
 package com.supwisdom.institute.backend.zuul.security.core.userdetails;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.GrantedAuthority;
@@ -20,6 +22,22 @@
   @Autowired
   PasswordEncoder passwordEncoder;
   
+//  @Override
+//  public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+//    
+//    log.debug("InMemeryUserDetailsService.loadUserByUsername({})", username);
+//    
+//    List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
+//    authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
+//    authorities.add(new SimpleGrantedAuthority("administrator"));
+//    authorities.add(new SimpleGrantedAuthority("user"));
+//
+//    User myUser = new User(username, passwordEncoder.encode(username), authorities);
+//    log.debug("myUser is {}", myUser);
+//    
+//    return myUser;
+//  }
+
   @Override
   public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
     
@@ -30,10 +48,12 @@
     authorities.add(new SimpleGrantedAuthority("administrator"));
     authorities.add(new SimpleGrantedAuthority("user"));
 
-    User myUser = new User(username, passwordEncoder.encode(username), authorities);
+    Map<String, Object> attributes = new HashMap<String, Object>();
+    
+    MyUser myUser = new MyUser(username, passwordEncoder.encode(username), authorities, attributes);
     log.debug("myUser is {}", myUser);
     
     return myUser;
   }
-  
+
 }
