mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-07 01:18:27 +08:00
Merge branch 'main' of https://gitee.com/dromara/MaxKey
This commit is contained in:
commit
9c262146a4
@ -17,16 +17,11 @@
|
||||
|
||||
package org.dromara.maxkey.synchronizer.jdbc;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.apache.commons.beanutils.PropertyUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.dromara.maxkey.constants.ConstsStatus;
|
||||
import org.dromara.maxkey.entity.DbTableMetaData;
|
||||
import org.dromara.maxkey.entity.HistorySynchronizer;
|
||||
import org.dromara.maxkey.entity.Organizations;
|
||||
import org.dromara.maxkey.synchronizer.AbstractSynchronizerService;
|
||||
import org.dromara.maxkey.synchronizer.ISynchronizerService;
|
||||
@ -35,11 +30,18 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
|
||||
@Service
|
||||
public class JdbcOrganizationService extends AbstractSynchronizerService implements ISynchronizerService {
|
||||
final static Logger _logger = LoggerFactory.getLogger(JdbcOrganizationService.class);
|
||||
static ArrayList< ColumnFieldMapper> mapperList = new ArrayList< ColumnFieldMapper>();
|
||||
static ArrayList<ColumnFieldMapper> mapperList = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void sync() {
|
||||
Connection conn = null;
|
||||
Statement stmt = null;
|
||||
@ -57,11 +59,11 @@ public class JdbcOrganizationService extends AbstractSynchronizerService imple
|
||||
rs = stmt.executeQuery(synchronizer.getOrgFilters());
|
||||
while (rs.next()) {
|
||||
Organizations org = buildOrganization(rs);
|
||||
Organizations queryOrg = this.organizationsService.get(org.getId());
|
||||
Organizations queryOrg = organizationsService.get(org.getId());
|
||||
if (queryOrg == null) {
|
||||
organizationsService.insert(org);
|
||||
} else {
|
||||
this.organizationsService.update(org);
|
||||
organizationsService.update(org);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -96,15 +98,27 @@ public class JdbcOrganizationService extends AbstractSynchronizerService imple
|
||||
}
|
||||
|
||||
org.setId(org.generateId());
|
||||
org.setInstId(this.synchronizer.getInstId());
|
||||
org.setInstId(synchronizer.getInstId());
|
||||
if (meta.getColumnsMap().containsKey("status")) {
|
||||
org.setStatus(rs.getInt("status"));
|
||||
} else {
|
||||
org.setStatus(ConstsStatus.ACTIVE);
|
||||
}
|
||||
|
||||
_logger.debug("Organization {}", org);
|
||||
|
||||
HistorySynchronizer historySynchronizer = new HistorySynchronizer();
|
||||
historySynchronizer.setId(historySynchronizer.generateId());
|
||||
historySynchronizer.setSyncId(synchronizer.getId());
|
||||
historySynchronizer.setSyncName(synchronizer.getName());
|
||||
historySynchronizer.setObjectId(org.getId());
|
||||
historySynchronizer.setObjectName(org.getOrgName());
|
||||
historySynchronizer.setObjectType(Organizations.class.getSimpleName());
|
||||
historySynchronizer.setInstId(synchronizer.getInstId());
|
||||
historySynchronizer.setResult("success");
|
||||
historySynchronizerService.insert(historySynchronizer);
|
||||
|
||||
return org;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -17,15 +17,10 @@
|
||||
|
||||
package org.dromara.maxkey.synchronizer.jdbc;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.apache.commons.beanutils.PropertyUtils;
|
||||
import org.dromara.maxkey.constants.ConstsStatus;
|
||||
import org.dromara.maxkey.entity.DbTableMetaData;
|
||||
import org.dromara.maxkey.entity.HistorySynchronizer;
|
||||
import org.dromara.maxkey.entity.UserInfo;
|
||||
import org.dromara.maxkey.synchronizer.AbstractSynchronizerService;
|
||||
import org.dromara.maxkey.synchronizer.ISynchronizerService;
|
||||
@ -35,12 +30,19 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
|
||||
@Service
|
||||
public class JdbcUsersService extends AbstractSynchronizerService implements ISynchronizerService {
|
||||
final static Logger _logger = LoggerFactory.getLogger(JdbcUsersService.class);
|
||||
|
||||
static ArrayList< ColumnFieldMapper> mapperList = new ArrayList< ColumnFieldMapper>();
|
||||
static ArrayList<ColumnFieldMapper> mapperList = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void sync() {
|
||||
_logger.info("Sync Jdbc Users...");
|
||||
Connection conn = null;
|
||||
@ -48,8 +50,8 @@ public class JdbcUsersService extends AbstractSynchronizerService implements
|
||||
ResultSet rs = null;
|
||||
|
||||
try {
|
||||
if(StringUtils.isNotBlank(synchronizer.getOrgFilters())){
|
||||
_logger.info("Sync User Filters {}",synchronizer.getOrgFilters());
|
||||
if (StringUtils.isNotBlank(synchronizer.getUserFilters())) {
|
||||
_logger.info("Sync User Filters {}", synchronizer.getUserFilters());
|
||||
conn = JdbcUtils.connect(
|
||||
synchronizer.getProviderUrl(),
|
||||
synchronizer.getPrincipal(),
|
||||
@ -63,7 +65,7 @@ public class JdbcUsersService extends AbstractSynchronizerService implements
|
||||
long readCount = 0;
|
||||
while (rs.next()) {
|
||||
UserInfo user = buildUserInfo(rs);
|
||||
UserInfo queryUser = this.userInfoService.findByUsername(user.getUsername());
|
||||
UserInfo queryUser = userInfoService.findByUsername(user.getUsername());
|
||||
readCount++;
|
||||
if (queryUser == null) {
|
||||
if (user.getPassword().indexOf("{") > -1 && user.getPassword().indexOf("}") > -1) {
|
||||
@ -118,7 +120,7 @@ public class JdbcUsersService extends AbstractSynchronizerService implements
|
||||
} else {
|
||||
user.setStatus(ConstsStatus.ACTIVE);
|
||||
}
|
||||
user.setInstId(this.synchronizer.getInstId());
|
||||
user.setInstId(synchronizer.getInstId());
|
||||
|
||||
//password
|
||||
if (meta.getColumnsMap().containsKey("password")) {
|
||||
@ -136,13 +138,24 @@ public class JdbcUsersService extends AbstractSynchronizerService implements
|
||||
user.setPassword(user.getUsername() + "@M" + last4Char);
|
||||
}
|
||||
|
||||
HistorySynchronizer historySynchronizer = new HistorySynchronizer();
|
||||
historySynchronizer.setId(historySynchronizer.generateId());
|
||||
historySynchronizer.setSyncId(synchronizer.getId());
|
||||
historySynchronizer.setSyncName(synchronizer.getName());
|
||||
historySynchronizer.setObjectId(user.getId());
|
||||
historySynchronizer.setObjectName(user.getUsername());
|
||||
historySynchronizer.setObjectType(UserInfo.class.getSimpleName());
|
||||
historySynchronizer.setInstId(synchronizer.getInstId());
|
||||
historySynchronizer.setResult("success");
|
||||
historySynchronizerService.insert(historySynchronizer);
|
||||
_logger.debug("User {} ", user);
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
static {
|
||||
mapperList.add(new ColumnFieldMapper("id", "id", "String"));
|
||||
mapperList.add(new ColumnFieldMapper("username" , "userName","String"));
|
||||
mapperList.add(new ColumnFieldMapper("username", "username", "String"));
|
||||
mapperList.add(new ColumnFieldMapper("picture", "picture", "String"));
|
||||
mapperList.add(new ColumnFieldMapper("displayname", "displayName", "String"));
|
||||
mapperList.add(new ColumnFieldMapper("nickname", "nickName", "String"));
|
||||
|
||||
@ -2,10 +2,10 @@
|
||||
<div>
|
||||
<form nz-form [formGroup]="formGroup" (ngSubmit)="onSubmit($event)" se-container="1">
|
||||
<nz-form-item>
|
||||
<nz-form-label [nzMd]="6" nzFor="id">{{ 'mxk.text.id' | i18n }}</nz-form-label>
|
||||
<nz-form-label [nzMd]="6" nzFor="name">{{ 'mxk.synchronizers.name' | i18n }}</nz-form-label>
|
||||
<nz-form-control [nzMd]="18" nzErrorTip="The input is not valid id!">
|
||||
<input [(ngModel)]="form.model.id" disabled="{{ isEdit }}" [ngModelOptions]="{ standalone: true }" nz-input
|
||||
name="id" id="id" />
|
||||
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input
|
||||
name="name" id="name" />
|
||||
</nz-form-control>
|
||||
</nz-form-item>
|
||||
<nz-form-item>
|
||||
|
||||
@ -17,10 +17,9 @@
|
||||
|
||||
package org.dromara.maxkey.web.config.contorller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.dromara.maxkey.authn.annotation.CurrentUser;
|
||||
import org.dromara.maxkey.crypto.password.PasswordReciprocal;
|
||||
import org.dromara.maxkey.entity.Connectors;
|
||||
import org.dromara.maxkey.entity.Message;
|
||||
import org.dromara.maxkey.entity.Synchronizers;
|
||||
import org.dromara.maxkey.entity.UserInfo;
|
||||
@ -28,18 +27,15 @@ import org.dromara.maxkey.persistence.service.SynchronizersService;
|
||||
import org.dromara.maxkey.synchronizer.ISynchronizerService;
|
||||
import org.dromara.maxkey.util.StringUtils;
|
||||
import org.dromara.maxkey.web.WebContext;
|
||||
import org.dromara.mybatis.jpa.entity.JpaPageResults;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = {"/config/synchronizers"})
|
||||
@ -54,7 +50,7 @@ public class SynchronizersController {
|
||||
public ResponseEntity<?> fetch(Synchronizers synchronizers, @CurrentUser UserInfo currentUser) {
|
||||
logger.debug("fetch {}", synchronizers);
|
||||
synchronizers.setInstId(currentUser.getInstId());
|
||||
return new Message<JpaPageResults<Synchronizers>>(
|
||||
return new Message<>(
|
||||
synchronizersService.fetchPageResults(synchronizers)).buildResponse();
|
||||
}
|
||||
|
||||
@ -62,7 +58,22 @@ public class SynchronizersController {
|
||||
public ResponseEntity<?> get(@PathVariable("id") String id) {
|
||||
Synchronizers synchronizers = synchronizersService.get(id);
|
||||
synchronizers.setCredentials(PasswordReciprocal.getInstance().decoder(synchronizers.getCredentials()));
|
||||
return new Message<Synchronizers>(synchronizers).buildResponse();
|
||||
return new Message<>(synchronizers).buildResponse();
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value = {"/add"}, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
public ResponseEntity<?> add(@RequestBody Synchronizers synchronizers, @CurrentUser UserInfo currentUser) {
|
||||
logger.debug("-add : {}", synchronizers);
|
||||
synchronizers.setInstId(currentUser.getInstId());
|
||||
if (StringUtils.isNotBlank(synchronizers.getCredentials())) {
|
||||
synchronizers.setCredentials(PasswordReciprocal.getInstance().encode(synchronizers.getCredentials()));
|
||||
}
|
||||
if (synchronizersService.insert(synchronizers)) {
|
||||
return new Message<Synchronizers>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<Synchronizers>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@ -78,6 +89,17 @@ public class SynchronizersController {
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value = {"/delete"}, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
public ResponseEntity<?> delete(@RequestParam("ids") String ids) {
|
||||
logger.debug("-delete ids : {} ", ids);
|
||||
if (synchronizersService.deleteBatch(ids)) {
|
||||
return new Message<Connectors>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<Connectors>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value = {"/synchr"})
|
||||
public ResponseEntity<?> synchr(@RequestParam("id") String id) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user