Kaynağa Gözat

remove provision

shimingxy 1 hafta önce
ebeveyn
işleme
9f697437a8
16 değiştirilmiş dosya ile 3 ekleme ve 768 silme
  1. 0 17
      maxkey-commons/maxkey-core/src/main/java/org/dromara/maxkey/configuration/ApplicationConfig.java
  2. 0 2
      maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/UserInfoService.java
  3. 1 44
      maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/AccountsServiceImpl.java
  4. 1 14
      maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/OrganizationsServiceImpl.java
  5. 1 52
      maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/UserInfoServiceImpl.java
  6. 0 30
      maxkey-persistence/src/main/java/org/dromara/maxkey/provision/ProvisionAct.java
  7. 0 110
      maxkey-persistence/src/main/java/org/dromara/maxkey/provision/ProvisionMessage.java
  8. 0 83
      maxkey-persistence/src/main/java/org/dromara/maxkey/provision/ProvisionService.java
  9. 0 46
      maxkey-persistence/src/main/java/org/dromara/maxkey/provision/ProvisionTopic.java
  10. 0 216
      maxkey-persistence/src/main/java/org/dromara/maxkey/provision/thread/ProvisioningRunner.java
  11. 0 46
      maxkey-persistence/src/main/java/org/dromara/maxkey/provision/thread/ProvisioningRunnerThread.java
  12. 0 80
      maxkey-persistence/src/main/java/org/dromara/maxkey/provision/thread/ProvisioningThread.java
  13. 0 2
      maxkey-webs/maxkey-web-maxkey/src/main/resources/application-maxkey.properties
  14. 0 22
      maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/autoconfigure/MaxKeyMgtListenerConfig.java
  15. 0 2
      maxkey-webs/maxkey-web-mgt/src/main/resources/application-maxkey-mgt.properties
  16. 0 2
      maxkey-webs/maxkey-web-openapi/src/main/resources/application-maxkey-openapi.properties

+ 0 - 17
maxkey-commons/maxkey-core/src/main/java/org/dromara/maxkey/configuration/ApplicationConfig.java

@@ -65,9 +65,6 @@ public class ApplicationConfig {
     @Value("${server.port:8080}")
     private int port;
     
-    @Value("${maxkey.server.provision:false}")
-    private boolean provision;
-    
     @Value("${maxkey.server.persistence}") 
     int persistence;
     
@@ -192,18 +189,6 @@ public class ApplicationConfig {
     public void setDefaultUri(String defaultUri) {
         this.defaultUri = defaultUri;
     }
-
-    public boolean isProvision() {
-        return provision;
-    }
-
-    public void setProvision(boolean provision) {
-        this.provision = provision;
-    }
-
-    public boolean isProvisionSupport() {
-        return provision;
-    }
     
     public int getPersistence() {
         return persistence;
@@ -276,8 +261,6 @@ public class ApplicationConfig {
         builder.append(mgtUri);
         builder.append(", port=");
         builder.append(port);
-        builder.append(", provision=");
-        builder.append(provision);
         builder.append(", maxKeyUri=");
         builder.append(authzUri);
         builder.append("]");

+ 0 - 2
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/UserInfoService.java

@@ -74,8 +74,6 @@ public interface UserInfoService extends IJpaService<UserInfo> {
     
     public String randomPassword() ;
     
-    public void changePasswordProvisioning(ChangePassword changePassworded) ;
-    
     public boolean updateAppLoginPassword(UserInfo userinfo) ;
     
     

+ 1 - 44
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/AccountsServiceImpl.java

@@ -24,16 +24,12 @@ import org.dromara.maxkey.constants.ConstsStatus;
 import org.dromara.maxkey.crypto.password.PasswordReciprocal;
 import org.dromara.maxkey.entity.Accounts;
 import org.dromara.maxkey.entity.AccountsStrategy;
-import org.dromara.maxkey.entity.OrganizationsCast;
 import org.dromara.maxkey.entity.idm.UserInfo;
 import org.dromara.maxkey.persistence.mapper.AccountsMapper;
 import org.dromara.maxkey.persistence.service.AccountsService;
 import org.dromara.maxkey.persistence.service.AccountsStrategyService;
 import org.dromara.maxkey.persistence.service.OrganizationsCastService;
 import org.dromara.maxkey.persistence.service.UserInfoService;
-import org.dromara.maxkey.provision.ProvisionAct;
-import org.dromara.maxkey.provision.ProvisionService;
-import org.dromara.maxkey.provision.ProvisionTopic;
 import org.dromara.mybatis.jpa.service.impl.JpaServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
@@ -47,10 +43,7 @@ import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombi
 
 @Repository
 public class AccountsServiceImpl  extends JpaServiceImpl<AccountsMapper,Accounts>  implements AccountsService{
-
-    @Autowired
-    ProvisionService provisionService;
-    
+  
     @Autowired
     UserInfoService  userInfoService;
     
@@ -63,19 +56,6 @@ public class AccountsServiceImpl  extends JpaServiceImpl<AccountsMapper,Accounts
     @Override
      public boolean insert(Accounts account) {
          if (super.insert(account)) {
-                if(provisionService.getApplicationConfig().isProvisionSupport()) {
-                    UserInfo loadUserInfo = userInfoService.findUserRelated(account.getUserId());
-                    account.setUserInfo(loadUserInfo);
-                    OrganizationsCast cast = new OrganizationsCast();
-                    cast.setProvider(account.getAppId());
-                    cast.setOrgId(loadUserInfo.getDepartmentId());
-                    account.setOrgCast(organizationsCastService.query(cast));
-                    provisionService.send(
-                            ProvisionTopic.ACCOUNT_TOPIC, 
-                            account,
-                            ProvisionAct.CREATE);
-                }
-                
                 return true;
             }
          return false;
@@ -84,19 +64,6 @@ public class AccountsServiceImpl  extends JpaServiceImpl<AccountsMapper,Accounts
     @Override
     public boolean update(Accounts account) {
          if (super.update(account)) {
-             if(provisionService.getApplicationConfig().isProvisionSupport()) {
-                    UserInfo loadUserInfo = userInfoService.findUserRelated(account.getUserId());
-                    account.setUserInfo(loadUserInfo);
-                    OrganizationsCast cast = new OrganizationsCast();
-                    cast.setProvider(account.getAppId());
-                    cast.setOrgId(loadUserInfo.getDepartmentId());
-                    account.setOrgCast(organizationsCastService.query(cast));
-                    provisionService.send(
-                            ProvisionTopic.ACCOUNT_TOPIC, 
-                            account,
-                            ProvisionAct.UPDATE);
-                }
-                
                 return true;
             }
          return false;
@@ -109,16 +76,6 @@ public class AccountsServiceImpl  extends JpaServiceImpl<AccountsMapper,Accounts
    public boolean remove(String id) {
        Accounts account = this.get(id);
        if (super.delete(id)) {
-              UserInfo loadUserInfo = null;
-              if(provisionService.getApplicationConfig().isProvisionSupport()) {
-                  loadUserInfo = userInfoService.findUserRelated(account.getUserId());
-                  account.setUserInfo(loadUserInfo);
-                  provisionService.send(
-                          ProvisionTopic.ACCOUNT_TOPIC, 
-                          account,
-                          ProvisionAct.DELETE);
-              }
-              
               return true;
           }
        return false;

+ 1 - 14
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/OrganizationsServiceImpl.java

@@ -28,29 +28,20 @@ import org.apache.poi.ss.usermodel.CellType;
 import org.dromara.maxkey.entity.idm.Organizations;
 import org.dromara.maxkey.persistence.mapper.OrganizationsMapper;
 import org.dromara.maxkey.persistence.service.OrganizationsService;
-import org.dromara.maxkey.provision.ProvisionAct;
-import org.dromara.maxkey.provision.ProvisionService;
-import org.dromara.maxkey.provision.ProvisionTopic;
 import org.dromara.mybatis.jpa.service.impl.JpaServiceImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
 
 @Repository
 public class OrganizationsServiceImpl  extends JpaServiceImpl<OrganizationsMapper,Organizations> implements OrganizationsService{
     static final Logger _logger = LoggerFactory.getLogger(OrganizationsServiceImpl.class);
-    
-    @Autowired
-    ProvisionService provisionService;
-    
+
      @Override
      public boolean insert(Organizations organization) {
          if(super.insert(organization)){
-             provisionService.send(
-                     ProvisionTopic.ORG_TOPIC, organization, ProvisionAct.CREATE);
              return true;
          }
          return false;
@@ -59,8 +50,6 @@ public class OrganizationsServiceImpl  extends JpaServiceImpl<OrganizationsMappe
      @Override
      public boolean update(Organizations organization) {
          if(super.update(organization)){
-             provisionService.send(
-                     ProvisionTopic.ORG_TOPIC, organization, ProvisionAct.UPDATE);
              return true;
          }
          return false;
@@ -83,8 +72,6 @@ public class OrganizationsServiceImpl  extends JpaServiceImpl<OrganizationsMappe
      
      public boolean delete(Organizations organization) {
          if(super.delete(organization.getId())){
-             provisionService.send(
-                     ProvisionTopic.ORG_TOPIC, organization, ProvisionAct.DELETE);
              return true;
          }
          return false;

+ 1 - 52
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/UserInfoServiceImpl.java

@@ -31,9 +31,6 @@ import org.dromara.maxkey.persistence.mapper.UserInfoMapper;
 import org.dromara.maxkey.persistence.service.AccountsService;
 import org.dromara.maxkey.persistence.service.PasswordPolicyValidatorService;
 import org.dromara.maxkey.persistence.service.UserInfoService;
-import org.dromara.maxkey.provision.ProvisionAct;
-import org.dromara.maxkey.provision.ProvisionService;
-import org.dromara.maxkey.provision.ProvisionTopic;
 import org.dromara.maxkey.web.WebContext;
 import org.dromara.mybatis.jpa.service.impl.JpaServiceImpl;
 import org.slf4j.Logger;
@@ -60,9 +57,6 @@ public class UserInfoServiceImpl extends JpaServiceImpl<UserInfoMapper,UserInfo>
     @Autowired
     PasswordPolicyValidatorService passwordPolicyValidatorService;
     
-    @Autowired
-    ProvisionService provisionService;
-
     AccountsService accountsService;
     
     
@@ -70,14 +64,6 @@ public class UserInfoServiceImpl extends JpaServiceImpl<UserInfoMapper,UserInfo>
     public boolean insert(UserInfo userInfo) {
         this.passwordEncoder(userInfo);
         if (super.insert(userInfo)) {
-            if(provisionService.getApplicationConfig().isProvisionSupport()) {
-                UserInfo loadUserInfo = findUserRelated(userInfo.getId());
-                provisionService.send(
-                        ProvisionTopic.USERINFO_TOPIC, 
-                        loadUserInfo,
-                        ProvisionAct.CREATE);
-            }
-            
             return true;
         }
 
@@ -89,14 +75,6 @@ public class UserInfoServiceImpl extends JpaServiceImpl<UserInfoMapper,UserInfo>
             this.passwordEncoder(userInfo);
         }
         if (super.insert(userInfo)) {
-            if(provisionService.getApplicationConfig().isProvisionSupport()) {
-                UserInfo loadUserInfo = findUserRelated(userInfo.getId());
-                provisionService.send(
-                        ProvisionTopic.USERINFO_TOPIC, 
-                        loadUserInfo,
-                        ProvisionAct.CREATE);
-            }
-            
             return true;
         }
 
@@ -108,14 +86,6 @@ public class UserInfoServiceImpl extends JpaServiceImpl<UserInfoMapper,UserInfo>
         //更新用户信息,不更新密码
         userInfo.clearPassword();
         if (super.update(userInfo)) {
-            if(provisionService.getApplicationConfig().isProvisionSupport()) {
-                UserInfo loadUserInfo = findUserRelated(userInfo.getId());
-                accountUpdate(loadUserInfo);
-                provisionService.send(
-                        ProvisionTopic.USERINFO_TOPIC, 
-                        loadUserInfo,
-                        ProvisionAct.UPDATE);
-            }
             return true;
         }
         return false;
@@ -123,16 +93,7 @@ public class UserInfoServiceImpl extends JpaServiceImpl<UserInfoMapper,UserInfo>
     
     public boolean delete(UserInfo userInfo) {
         UserInfo loadUserInfo = null;
-        if(provisionService.getApplicationConfig().isProvisionSupport()) {
-            loadUserInfo = findUserRelated(userInfo.getId());
-        }
-        
         if( super.delete(userInfo.getId())){
-            provisionService.send(
-                    ProvisionTopic.USERINFO_TOPIC, 
-                    loadUserInfo, 
-                    ProvisionAct.DELETE);
-            accountUpdate(loadUserInfo);
              return true;
         }
         return false;
@@ -303,11 +264,7 @@ public class UserInfoServiceImpl extends JpaServiceImpl<UserInfoMapper,UserInfo>
 
             changePassword = passwordEncoder(changePassword);
 
-            if (getMapper().changePassword(changePassword) > 0) {
-                changePasswordProvisioning(changePassword);
-                return true;
-            }
-            return false;
+            return getMapper().changePassword(changePassword) > 0;
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -320,14 +277,6 @@ public class UserInfoServiceImpl extends JpaServiceImpl<UserInfoMapper,UserInfo>
         return passwordPolicyValidatorService.generateRandomPassword();
     }
     
-    public void changePasswordProvisioning(ChangePassword changePassworded) {
-        if(changePassworded !=null && StringUtils.isNotBlank(changePassworded.getPassword())) {
-            UserInfo loadUserInfo = findByUsername(changePassworded.getUsername());
-            ChangePassword changePassword = new ChangePassword(loadUserInfo);
-            provisionService.send(ProvisionTopic.PASSWORD_TOPIC, changePassword, ProvisionAct.PASSWORD);
-        }
-    }
-    
     public boolean updateAppLoginPassword(UserInfo userinfo) {
         try {
             userinfo.setModifiedDate(new Date());

+ 0 - 30
maxkey-persistence/src/main/java/org/dromara/maxkey/provision/ProvisionAct.java

@@ -1,30 +0,0 @@
-/*
- * Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-
-package org.dromara.maxkey.provision;
-
-public class ProvisionAct {
-    
-    public static final String  CREATE     = "CREATE";
-    
-    public static final String  DELETE     = "DELETE";
-    
-    public static final String  UPDATE     = "UPDATE";
-    
-    public static final String  PASSWORD   = "PASSWORD";
-    
-}

+ 0 - 110
maxkey-persistence/src/main/java/org/dromara/maxkey/provision/ProvisionMessage.java

@@ -1,110 +0,0 @@
-/*
- * Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-
-package org.dromara.maxkey.provision;
-
-public class ProvisionMessage {
-
-    String     id;
-    String     topic;
-    String     actionType;
-    String     sendTime;
-    String  content;
-    int     connected;
-    int     instId;
-    
-    Object  sourceObject;
-
-    public String getTopic() {
-        return topic;
-    }
-
-    public void setTopic(String topic) {
-        this.topic = topic;
-    }
-
-    public String getActionType() {
-        return actionType;
-    }
-
-    public void setActionType(String actionType) {
-        this.actionType = actionType;
-    }
-
-    public String getSendTime() {
-        return sendTime;
-    }
-
-    public void setSendTime(String sendTime) {
-        this.sendTime = sendTime;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getContent() {
-        return content;
-    }
-
-    public void setContent(String content) {
-        this.content = content;
-    }
-
-    public int getConnected() {
-        return connected;
-    }
-
-    public void setConnected(int connected) {
-        this.connected = connected;
-    }
-
-    public Object getSourceObject() {
-        return sourceObject;
-    }
-
-    public void setSourceObject(Object sourceObject) {
-        this.sourceObject = sourceObject;
-    }
-
-    public int getInstId() {
-        return instId;
-    }
-
-    public void setInstId(int instId) {
-        this.instId = instId;
-    }
-
-    public ProvisionMessage() {
-    }
-
-    public ProvisionMessage(String id,String topic, String actionType, String sendTime,  String content,Object sourceObject) {
-        super();
-        this.id = id;
-        this.topic = topic;
-        this.actionType = actionType;
-        this.sendTime = sendTime;
-        this.content = content;
-        this.sourceObject = sourceObject;
-    }
-    
-    
-}

+ 0 - 83
maxkey-persistence/src/main/java/org/dromara/maxkey/provision/ProvisionService.java

@@ -1,83 +0,0 @@
-/*
- * Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-
-package org.dromara.maxkey.provision;
-
-import java.util.UUID;
-
-import org.dromara.maxkey.configuration.ApplicationConfig;
-import org.dromara.maxkey.provision.thread.ProvisioningThread;
-import org.dromara.maxkey.util.DateUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.stereotype.Component;
-
-@Component
-public class ProvisionService {
-    private static final Logger _logger = LoggerFactory.getLogger(ProvisionService.class);
-    
-    @Autowired
-    ApplicationConfig applicationConfig;
-    
-    @Autowired
-    JdbcTemplate jdbcTemplate;
-
-    /**
-     * send  msg to jdbc
-     * @param topic TOPIC
-     * @param content msg Object
-     * @param actionType CREATE UPDATE DELETE
-     */
-    public void send(String topic,Object content,String actionType) {
-        //maxkey.server.message.queue , if not none
-        if(applicationConfig.isProvisionSupport()) {
-            ProvisionMessage message = 
-                    new ProvisionMessage(
-                            UUID.randomUUID().toString(),    //message id as uuid
-                            topic,    //TOPIC
-                            actionType,    //action of content
-                            DateUtils.getCurrentDateTimeAsString(),    //send time
-                            null,     //content Object to json message content
-                            content
-                            );
-            //sand msg to provision topic
-            Thread thread = null;
-            if(applicationConfig.isProvisionSupport()) {
-                _logger.trace("message...");
-                thread = new  ProvisioningThread(jdbcTemplate,message);
-                thread.start();
-            }else{
-                _logger.trace("no send message...");
-            }
-        }
-    }
-
-    public void setApplicationConfig(ApplicationConfig applicationConfig) {
-        this.applicationConfig = applicationConfig;
-    }
-
-    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
-        this.jdbcTemplate = jdbcTemplate;
-    }
-
-    public ApplicationConfig getApplicationConfig() {
-        return applicationConfig;
-    }
-    
-}

+ 0 - 46
maxkey-persistence/src/main/java/org/dromara/maxkey/provision/ProvisionTopic.java

@@ -1,46 +0,0 @@
-/*
- * Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-
-package org.dromara.maxkey.provision;
-
-public class ProvisionTopic {
-    
-    public static final String   USERINFO_TOPIC                     = "MXK_IDENTITY_USERINFO_TOPIC";
-    
-    public static final  String  PASSWORD_TOPIC                     = "MXK_IDENTITY_USERINFO_PASSWORD_TOPIC";
-    
-    public static final  String  ORG_TOPIC                          = "MXK_IDENTITY_ORG_TOPIC";
-    
-    public static final  String  ACCOUNT_TOPIC                      = "MXK_IDENTITY_ACCOUNT_TOPIC";
-    
-    public static final  String  GROUP_TOPIC                           = "MXK_GROUP_TOPIC";
-    
-    public static final  String  GROUP_MEMBER_TOPIC                    = "MXK_GROUP_MEMBER_TOPIC";
-    
-    public static final  String  GROUP_PERMISSIONS_TOPIC            = "MXK_GROUP_PERMISSIONS_TOPIC";
-    
-    public static final  String  ROLE_TOPIC                           = "MXK_ROLE_TOPIC";
-    
-    public static final  String  ROLE_MEMBER_TOPIC                    = "MXK_ROLE_MEMBER_TOPIC";
-    
-    public static final  String  ROLE_PERMISSIONS_TOPIC                = "MXK_ROLE_PERMISSIONS_TOPIC";
-    
-    public static final  String  RESOURCE_TOPIC                       = "MXK_RESOURCE_TOPIC";
-    
-    public static final  String  CONNECTOR_HISTORY_TOPIC            = "MXK_CONNECTOR_HISTORY_TOPIC";
-     
-}

+ 0 - 216
maxkey-persistence/src/main/java/org/dromara/maxkey/provision/thread/ProvisioningRunner.java

@@ -1,216 +0,0 @@
-/*
- * Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-
-package org.dromara.maxkey.provision.thread;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.List;
-
-import org.dromara.maxkey.crypto.password.PasswordReciprocal;
-import org.dromara.maxkey.entity.ChangePassword;
-import org.dromara.maxkey.entity.Connectors;
-import org.dromara.maxkey.entity.Message;
-import org.dromara.maxkey.entity.idm.Organizations;
-import org.dromara.maxkey.entity.idm.UserInfo;
-import org.dromara.maxkey.http.HttpRequestAdapter;
-import org.dromara.maxkey.persistence.service.ConnectorsService;
-import org.dromara.maxkey.provision.ProvisionAct;
-import org.dromara.maxkey.provision.ProvisionMessage;
-import org.dromara.maxkey.provision.ProvisionTopic;
-import org.dromara.maxkey.util.DateUtils;
-import org.dromara.maxkey.util.JsonUtils;
-import org.dromara.maxkey.util.ObjectTransformer;
-import org.dromara.maxkey.web.WebContext;
-import org.dromara.mybatis.jpa.query.Query;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.core.RowMapper;
-
-public class ProvisioningRunner {
-    private static final Logger _logger = LoggerFactory.getLogger(ProvisioningRunner.class);
-    
-    static final String PROVISION_SELECT_STATEMENT = "select * from mxk_history_provisions where connected = 0 order by sendtime asc limit 500";
-    
-    static final String PROVISION_UPDATE_STATEMENT = "update mxk_history_provisions set connected = connected + 1  where  id = ?";
-    
-    static final String PROVISION_LOG_INSERT_STATEMENT = "insert into mxk_history_connector(id,conname,topic,actiontype,sourceid,sourcename,synctime,result,instid) values (? , ? , ? , ? , ? , ?  , ?  , ?  , ? )";
-    
-    
-    JdbcTemplate jdbcTemplate;
-    
-    ConnectorsService connectorsService;
-
-    public ProvisioningRunner(ConnectorsService connectorsService,JdbcTemplate jdbcTemplate) {
-        this.connectorsService = connectorsService;
-        this.jdbcTemplate = jdbcTemplate;
-    }
-    
-    
-    public void provisions() {
-        try {
-            List<Connectors> listConnectors = connectorsService.query(new Query().eq("status", 1).eq("justintime", 1));
-            List<ProvisionMessage> listProvisionMessage = jdbcTemplate.query(PROVISION_SELECT_STATEMENT, new ProvisionMessageRowMapper());
-            for(ProvisionMessage msg : listProvisionMessage) {
-                _logger.debug("Provision message {}",msg);
-                for(Connectors connector: listConnectors) {
-                    _logger.debug("Provision message to connector {}",connector);
-                    provision(msg,connector);
-                }
-            }
-        }catch(Exception e) {
-            _logger.error("provisions Exception",e);
-        }
-    }
-    
-    public void provision(ProvisionMessage provisionMessage,Connectors connector) {
-        if(Integer.parseInt(connector.getInstId()) == provisionMessage.getInstId()) {
-            String url = connector.getProviderUrl();
-            if(!url.endsWith("/")) {
-                url = url + "/";
-            }
-            String resultMessage = "";
-            String objectId = "";
-            String objectName = "";
-            if(provisionMessage.getTopic().equalsIgnoreCase(ProvisionTopic.USERINFO_TOPIC)) {
-                UserInfo user = (UserInfo)ObjectTransformer.deserialize(provisionMessage.getContent());
-                user.setPassword(null);
-                user.setDecipherable(null);
-                objectId = user.getId();
-                objectName = user.getDisplayName()+"("+user.getUsername()+")";
-                resultMessage = provisionUser(user,url,provisionMessage.getActionType(),connector);
-                provisionLog(    connector.getConnName(),
-                        "Users",
-                        provisionMessage.getActionType(),
-                        objectId,
-                        objectName,
-                        resultMessage,
-                        provisionMessage.getInstId()
-                );
-            }else if(provisionMessage.getTopic().equalsIgnoreCase(ProvisionTopic.PASSWORD_TOPIC)) {
-                ChangePassword changePassword = (ChangePassword)ObjectTransformer.deserialize(provisionMessage.getContent());
-                objectId = changePassword.getUserId();
-                objectName = changePassword.getDisplayName()+"("+changePassword.getUsername()+")";
-                resultMessage = provisionChangePassword(changePassword,url,provisionMessage.getActionType(),connector);
-                provisionLog(    connector.getConnName(),
-                        "Password",
-                        provisionMessage.getActionType(),
-                        objectId,
-                        objectName,
-                        resultMessage,
-                        provisionMessage.getInstId()
-                );
-            }else if(provisionMessage.getTopic().equalsIgnoreCase(ProvisionTopic.ORG_TOPIC)) {
-                Organizations organization = (Organizations)ObjectTransformer.deserialize(provisionMessage.getContent());
-                objectId = organization.getId();
-                objectName = organization.getOrgName();
-                resultMessage = provisionOrganization(organization,url,provisionMessage.getActionType(),connector);
-                provisionLog(    connector.getConnName(),
-                                "Organizations",
-                                provisionMessage.getActionType(),
-                                objectId,
-                                objectName,
-                                resultMessage,
-                                provisionMessage.getInstId()
-                        );
-            }
-            
-            jdbcTemplate.update(PROVISION_UPDATE_STATEMENT,provisionMessage.getId());
-        }
-    }
-    
-    public void provisionLog(String conName,String topic,String actionType,String sourceId,String sourceName,String resultMessage,int instid) {
-        Message<?> resultMsg = null;
-        String result = "success";
-        
-        if(resultMessage != null) {
-            resultMsg = JsonUtils.stringToObject(resultMessage, Message.class);
-        }
-        
-        if(resultMsg == null || resultMsg.getCode() != 0) {
-            result = "fail";
-        }
-        
-        jdbcTemplate.update(PROVISION_LOG_INSERT_STATEMENT, 
-                WebContext.genId(),
-                conName,
-                topic,
-                actionType.replace("_ACTION", "").toLowerCase(),
-                sourceId,
-                sourceName,
-                DateUtils.getCurrentDateTimeAsString(),
-                result,
-                instid
-                );
-    }
-    
-    public String getActionType(String actionType) {
-        if(actionType.equalsIgnoreCase(ProvisionAct.CREATE)) {
-            return "create";
-        }else if(actionType.equalsIgnoreCase(ProvisionAct.UPDATE)) {
-            return "update";
-        }else if(actionType.equalsIgnoreCase(ProvisionAct.DELETE)) {
-            return "delete";
-        }
-        return "";
-    }
-    
-    String provisionUser(UserInfo user,String baseUrl,String actionType,Connectors connector){
-        baseUrl = baseUrl + "Users/" + getActionType(actionType);
-        _logger.debug("URL {} ", baseUrl);
-        return new HttpRequestAdapter()
-                .addHeaderAuthorizationBasic(
-                        connector.getPrincipal(),
-                        PasswordReciprocal.getInstance().decoder(connector.getCredentials()))
-                .post(baseUrl, user);
-    }
-    
-    String provisionOrganization(Organizations organization,String baseUrl,String actionType,Connectors connector){
-        baseUrl = baseUrl + "Organizations/"+ getActionType(actionType);
-        _logger.debug("URL {} ", baseUrl);
-        return new HttpRequestAdapter()
-                .addHeaderAuthorizationBasic(
-                        connector.getPrincipal(),
-                        PasswordReciprocal.getInstance().decoder(connector.getCredentials()))
-                .post(baseUrl, organization);
-    }
-    
-    String provisionChangePassword(ChangePassword changePassword,String baseUrl,String actionType,Connectors connector){
-        baseUrl = baseUrl + "Users/changePassword";
-        _logger.debug("URL {} ", baseUrl);
-        return new HttpRequestAdapter()
-                .addHeaderAuthorizationBasic(
-                        connector.getPrincipal(),
-                        PasswordReciprocal.getInstance().decoder(connector.getCredentials()))
-                .post(baseUrl, changePassword);
-    }
-    
-    public class ProvisionMessageRowMapper implements RowMapper<ProvisionMessage> {
-        @Override
-        public ProvisionMessage mapRow(ResultSet rs, int rowNum) throws SQLException {
-            ProvisionMessage msg = new ProvisionMessage();
-            msg.setId(rs.getString("id"));
-            msg.setActionType(rs.getString("actiontype"));
-            msg.setTopic(rs.getString("topic"));
-            msg.setContent(rs.getString("content"));
-            msg.setConnected(rs.getInt("connected"));
-            msg.setInstId(rs.getInt("instid"));
-            return msg;
-        }
-    }
-}

+ 0 - 46
maxkey-persistence/src/main/java/org/dromara/maxkey/provision/thread/ProvisioningRunnerThread.java

@@ -1,46 +0,0 @@
-/*
- * Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-
-package org.dromara.maxkey.provision.thread;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ProvisioningRunnerThread  extends Thread{
-    private static final Logger _logger = LoggerFactory.getLogger(ProvisioningRunnerThread.class);
-    
-    ProvisioningRunner runner;
-
-    public ProvisioningRunnerThread(ProvisioningRunner runner) {
-        super();
-        this.runner = runner;
-    }
-
-    @Override
-    public void run() {
-        while(true) {
-            try {
-                Thread.sleep(60 * 1000);
-                _logger.trace("Provisioning start ...");
-                runner.provisions();
-                _logger.trace("Provisioning end , wait for next .");
-            } catch (InterruptedException e) {
-                _logger.error("InterruptedException", e);
-            }
-        }
-    }
-}

+ 0 - 80
maxkey-persistence/src/main/java/org/dromara/maxkey/provision/thread/ProvisioningThread.java

@@ -1,80 +0,0 @@
-/*
- * Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.dromara.maxkey.provision.thread;
-
-import java.io.Serializable;
-import java.sql.Types;
-
-import org.dromara.maxkey.pretty.impl.JsonPretty;
-import org.dromara.maxkey.provision.ProvisionMessage;
-import org.dromara.maxkey.util.JsonUtils;
-import org.dromara.maxkey.util.ObjectTransformer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.jdbc.core.JdbcTemplate;
-
-/**
- * Provisioning Thread for send message
- *
- */
-public class ProvisioningThread extends Thread{
-    private static final Logger _logger = LoggerFactory.getLogger(ProvisioningThread.class);
-    
-    static final String PROVISION_INSERT_STATEMENT = "insert into mxk_history_provisions(id,topic,actiontype,content,sendtime,connected,instid) values (? , ? , ? , ? , ? , ?  , ? )";
-    
-    JdbcTemplate jdbcTemplate;
-    
-    ProvisionMessage msg;
-    
-    public ProvisioningThread(JdbcTemplate jdbcTemplate,
-            ProvisionMessage msg) {
-        this.jdbcTemplate = jdbcTemplate;
-        this.msg = msg;
-    }
-
-    @Override
-    public void run() {
-        _logger.debug("send message \n{}" ,new JsonPretty().jacksonFormat(msg.getSourceObject()));
-        msg.setContent(ObjectTransformer.serialize((Serializable)msg.getSourceObject()));
-        Inst inst = JsonUtils.gsonStringToObject(JsonUtils.gsonToString(msg.getSourceObject()), Inst.class);
-        jdbcTemplate.update(PROVISION_INSERT_STATEMENT,
-                new Object[] { 
-                        msg.getId(), msg.getTopic(), msg.getActionType(), msg.getContent(),
-                        msg.getSendTime(),msg.getConnected(),inst.getInstId()
-                        },
-                new int[] { 
-                        Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, 
-                        Types.TINYINT,Types.TINYINT
-                        });
-        _logger.debug("send to Message Queue finished .");
-    }
-    
-    class Inst{
-        
-        int instId;
-
-        public int getInstId() {
-            return instId;
-        }
-
-        public void setInstId(int instId) {
-            this.instId = instId;
-        }
-
-        public Inst() {}
-    }
-}

+ 0 - 2
maxkey-webs/maxkey-web-maxkey/src/main/resources/application-maxkey.properties

@@ -44,8 +44,6 @@ maxkey.server.authz.uri                         =${maxkey.server.name}:${server.
 maxkey.server.frontend.uri                      =/maxkey
 #InMemory 0 , Redis 2               
 maxkey.server.persistence                       =${SERVER_PERSISTENCE:0}
-#identity true,false
-maxkey.server.provision                         =${SERVER_PROVISION:false}
 #issuer name                
 maxkey.app.issuer                               =CN=ConSec,CN=COM,CN=SH
 

+ 0 - 22
maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/autoconfigure/MaxKeyMgtListenerConfig.java

@@ -20,16 +20,12 @@ package org.dromara.maxkey.autoconfigure;
 import org.dromara.maxkey.authn.listener.SessionListenerAdapter;
 import org.dromara.maxkey.authn.session.SessionCategory;
 import org.dromara.maxkey.authn.session.SessionManager;
-import org.dromara.maxkey.configuration.ApplicationConfig;
 import org.dromara.maxkey.listener.DynamicGroupsListenerAdapter;
 import org.dromara.maxkey.listener.DynamicRolesListenerAdapter;
 import org.dromara.maxkey.listener.ReorgDeptListenerAdapter;
-import org.dromara.maxkey.persistence.service.ConnectorsService;
 import org.dromara.maxkey.persistence.service.GroupsService;
 import org.dromara.maxkey.persistence.service.OrganizationsService;
 import org.dromara.maxkey.persistence.service.RolesService;
-import org.dromara.maxkey.provision.thread.ProvisioningRunner;
-import org.dromara.maxkey.provision.thread.ProvisioningRunnerThread;
 import org.dromara.maxkey.schedule.ScheduleAdapterBuilder;
 import org.quartz.Scheduler;
 import org.quartz.SchedulerException;
@@ -38,7 +34,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.AutoConfiguration;
 import org.springframework.context.annotation.Bean;
-import org.springframework.jdbc.core.JdbcTemplate;
 
 @AutoConfiguration
 public class MaxKeyMgtListenerConfig  {
@@ -106,21 +101,4 @@ public class MaxKeyMgtListenerConfig  {
         logger.debug("Dynamic Roles ListenerAdapter inited .");
         return "dynamicRolesListenerAdapter";
     }
-
-    @Bean
-    String provisioningRunnerThread(
-            ConnectorsService connectorsService,
-            JdbcTemplate jdbcTemplate,
-            ApplicationConfig applicationConfig
-    ) {
-        if(applicationConfig.isProvisionSupport()) {
-            ProvisioningRunner runner = new ProvisioningRunner(connectorsService,jdbcTemplate);
-            ProvisioningRunnerThread runnerThread = new ProvisioningRunnerThread(runner);
-            runnerThread.start();
-            logger.debug("provisioning Runner Thread .");
-        }else {
-            logger.debug("not need init provisioning Runner Thread .");
-        }
-        return "provisioningRunnerThread";
-    }
 }

+ 0 - 2
maxkey-webs/maxkey-web-mgt/src/main/resources/application-maxkey-mgt.properties

@@ -33,8 +33,6 @@ maxkey.server.mgt.uri                           =${maxkey.server.uri}
 maxkey.server.authz.uri                         =https://${maxkey.server.domain}/maxkey
 #InMemory 0 , Redis 2 
 maxkey.server.persistence                       =${SERVER_PERSISTENCE:0}
-#identity true,false
-maxkey.server.provision                         =${SERVER_PROVISION:false}
 
 #jwt token
 maxkey.auth.jwt.expires                         =${SERVER_EXPIRES:600}

+ 0 - 2
maxkey-webs/maxkey-web-openapi/src/main/resources/application-maxkey-openapi.properties

@@ -33,8 +33,6 @@ maxkey.server.mgt.uri                           =${maxkey.server.uri}
 maxkey.server.authz.uri                         =https://${maxkey.server.domain}/maxkey
 #InMemory 0 , Redis 2 
 maxkey.server.persistence                       =${SERVER_PERSISTENCE:0}
-#identity true,false
-maxkey.server.provision                         =${SERVER_PROVISION:false}
 
 #jwt token
 maxkey.auth.jwt.expires                         =${SERVER_EXPIRES:600}