This commit is contained in:
MaxKey 2023-10-14 20:02:05 +08:00
commit 9c262146a4
4 changed files with 412 additions and 363 deletions

View File

@ -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,18 +30,25 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
@Service
public class JdbcOrganizationService extends AbstractSynchronizerService implements ISynchronizerService{
final static Logger _logger = LoggerFactory.getLogger(JdbcOrganizationService.class);
static ArrayList< ColumnFieldMapper> mapperList = new ArrayList< ColumnFieldMapper>();
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<>();
@Override
public void sync() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
if(StringUtils.isNotBlank(synchronizer.getOrgFilters())){
_logger.info("Sync Org Filters {}",synchronizer.getOrgFilters());
if (StringUtils.isNotBlank(synchronizer.getOrgFilters())) {
_logger.info("Sync Org Filters {}", synchronizer.getOrgFilters());
conn = JdbcUtils.connect(
synchronizer.getProviderUrl(),
synchronizer.getPrincipal(),
@ -55,19 +57,19 @@ public class JdbcOrganizationService extends AbstractSynchronizerService imple
stmt = conn.createStatement();
rs = stmt.executeQuery(synchronizer.getOrgFilters());
while(rs.next()) {
while (rs.next()) {
Organizations org = buildOrganization(rs);
Organizations queryOrg = this.organizationsService.get(org.getId());
if(queryOrg == null) {
Organizations queryOrg = organizationsService.get(org.getId());
if (queryOrg == null) {
organizationsService.insert(org);
}else{
this.organizationsService.update(org);
} else {
organizationsService.update(org);
}
}
}
} catch (Exception e) {
_logger.error("Exception " , e);
}finally {
_logger.error("Exception ", e);
} finally {
JdbcUtils.release(conn, stmt, rs);
}
}
@ -77,65 +79,77 @@ public class JdbcOrganizationService extends AbstractSynchronizerService imple
DbTableMetaData meta = JdbcUtils.getMetaData(rs);
Organizations org = new Organizations();
for (ColumnFieldMapper mapper :mapperList ) {
if(meta.getColumnsMap().containsKey(mapper.getColumn())) {
for (ColumnFieldMapper mapper : mapperList) {
if (meta.getColumnsMap().containsKey(mapper.getColumn())) {
Object value = null;
if(mapper.getType().equalsIgnoreCase("String")) {
if (mapper.getType().equalsIgnoreCase("String")) {
value = rs.getString(mapper.getColumn());
}else {
} else {
value = rs.getInt(mapper.getColumn());
}
if(value != null ) {
if (value != null) {
try {
PropertyUtils.setSimpleProperty(org, mapper.getField(), value);
} catch (Exception e) {
_logger.error("setSimpleProperty {}" , e);
_logger.error("setSimpleProperty {}", e);
}
}
}
}
org.setId(org.generateId());
org.setInstId(this.synchronizer.getInstId());
if(meta.getColumnsMap().containsKey("status")) {
org.setInstId(synchronizer.getInstId());
if (meta.getColumnsMap().containsKey("status")) {
org.setStatus(rs.getInt("status"));
}else {
} 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);
_logger.debug("Organization {}" , org);
return org;
}
static {
mapperList.add(new ColumnFieldMapper("id" , "id","String"));
mapperList.add(new ColumnFieldMapper("orgcode" , "orgCode","String"));
mapperList.add(new ColumnFieldMapper("orgname" , "orgName","String"));
mapperList.add(new ColumnFieldMapper("fullname" , "fullName","String"));
mapperList.add(new ColumnFieldMapper("parentid" , "parentId","String"));
mapperList.add(new ColumnFieldMapper("parentcode" , "parentCode","String"));
mapperList.add(new ColumnFieldMapper("parentname" , "parentName","String"));
mapperList.add(new ColumnFieldMapper("id", "id", "String"));
mapperList.add(new ColumnFieldMapper("orgcode", "orgCode", "String"));
mapperList.add(new ColumnFieldMapper("orgname", "orgName", "String"));
mapperList.add(new ColumnFieldMapper("fullname", "fullName", "String"));
mapperList.add(new ColumnFieldMapper("parentid", "parentId", "String"));
mapperList.add(new ColumnFieldMapper("parentcode", "parentCode", "String"));
mapperList.add(new ColumnFieldMapper("parentname", "parentName", "String"));
mapperList.add(new ColumnFieldMapper("type" , "type","String"));
mapperList.add(new ColumnFieldMapper("codepath" , "codePath","String"));
mapperList.add(new ColumnFieldMapper("namepath" , "namePath","String"));
mapperList.add(new ColumnFieldMapper("level" , "level","Int"));
mapperList.add(new ColumnFieldMapper("haschild" , "hasChild","String"));
mapperList.add(new ColumnFieldMapper("division" , "division","String"));
mapperList.add(new ColumnFieldMapper("country" , "country","String"));
mapperList.add(new ColumnFieldMapper("region" , "region","String"));
mapperList.add(new ColumnFieldMapper("locality" , "locality","String"));
mapperList.add(new ColumnFieldMapper("street" , "street","String"));
mapperList.add(new ColumnFieldMapper("address" , "address","String"));
mapperList.add(new ColumnFieldMapper("contact" , "contact","String"));
mapperList.add(new ColumnFieldMapper("postalcode" , "postalCode","String"));
mapperList.add(new ColumnFieldMapper("phone" , "phone","String"));
mapperList.add(new ColumnFieldMapper("fax" , "fax","String"));
mapperList.add(new ColumnFieldMapper("email" , "email","String"));
mapperList.add(new ColumnFieldMapper("sortindex" , "sortIndex","Int"));
mapperList.add(new ColumnFieldMapper("ldapdn" , "ldapDn","String"));
mapperList.add(new ColumnFieldMapper("description" , "description","String"));
mapperList.add(new ColumnFieldMapper("status" , "status","int"));
mapperList.add(new ColumnFieldMapper("type", "type", "String"));
mapperList.add(new ColumnFieldMapper("codepath", "codePath", "String"));
mapperList.add(new ColumnFieldMapper("namepath", "namePath", "String"));
mapperList.add(new ColumnFieldMapper("level", "level", "Int"));
mapperList.add(new ColumnFieldMapper("haschild", "hasChild", "String"));
mapperList.add(new ColumnFieldMapper("division", "division", "String"));
mapperList.add(new ColumnFieldMapper("country", "country", "String"));
mapperList.add(new ColumnFieldMapper("region", "region", "String"));
mapperList.add(new ColumnFieldMapper("locality", "locality", "String"));
mapperList.add(new ColumnFieldMapper("street", "street", "String"));
mapperList.add(new ColumnFieldMapper("address", "address", "String"));
mapperList.add(new ColumnFieldMapper("contact", "contact", "String"));
mapperList.add(new ColumnFieldMapper("postalcode", "postalCode", "String"));
mapperList.add(new ColumnFieldMapper("phone", "phone", "String"));
mapperList.add(new ColumnFieldMapper("fax", "fax", "String"));
mapperList.add(new ColumnFieldMapper("email", "email", "String"));
mapperList.add(new ColumnFieldMapper("sortindex", "sortIndex", "Int"));
mapperList.add(new ColumnFieldMapper("ldapdn", "ldapDn", "String"));
mapperList.add(new ColumnFieldMapper("description", "description", "String"));
mapperList.add(new ColumnFieldMapper("status", "status", "int"));
}
}

View File

@ -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{
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(),
@ -61,32 +63,32 @@ public class JdbcUsersService extends AbstractSynchronizerService implements
long insertCount = 0;
long updateCount = 0;
long readCount = 0;
while(rs.next()) {
while (rs.next()) {
UserInfo user = buildUserInfo(rs);
UserInfo queryUser = this.userInfoService.findByUsername(user.getUsername());
readCount ++;
if(queryUser == null) {
if(user.getPassword().indexOf("{") > -1 && user.getPassword().indexOf("}") > -1) {
userInfoService.insert(user,false);
}else {
UserInfo queryUser = userInfoService.findByUsername(user.getUsername());
readCount++;
if (queryUser == null) {
if (user.getPassword().indexOf("{") > -1 && user.getPassword().indexOf("}") > -1) {
userInfoService.insert(user, false);
} else {
//passwordEncoder
userInfoService.insert(user,true);
userInfoService.insert(user, true);
}
user.setBadPasswordCount(1);
insertCount++;
}else{
} else {
//no need update password , set null
user.setPassword(null);
userInfoService.update(user);
updateCount++;
}
_logger.trace("read Count {} , insert Count {} , updateCount {} " , readCount,insertCount,updateCount);
_logger.trace("read Count {} , insert Count {} , updateCount {} ", readCount, insertCount, updateCount);
}
_logger.info("read Count {} , insert Count {} , updateCount {} " , readCount,insertCount,updateCount);
_logger.info("read Count {} , insert Count {} , updateCount {} ", readCount, insertCount, updateCount);
}
} catch (Exception e) {
_logger.error("Exception " , e);
}finally {
_logger.error("Exception ", e);
} finally {
JdbcUtils.release(conn, stmt, rs);
}
}
@ -95,110 +97,121 @@ public class JdbcUsersService extends AbstractSynchronizerService implements
DbTableMetaData meta = JdbcUtils.getMetaData(rs);
UserInfo user = new UserInfo();
//basic
for (ColumnFieldMapper mapper :mapperList ) {
if(meta.getColumnsMap().containsKey(mapper.getColumn())) {
for (ColumnFieldMapper mapper : mapperList) {
if (meta.getColumnsMap().containsKey(mapper.getColumn())) {
Object value = null;
if(mapper.getType().equalsIgnoreCase("String")) {
if (mapper.getType().equalsIgnoreCase("String")) {
value = rs.getString(mapper.getColumn());
}else {
} else {
value = rs.getInt(mapper.getColumn());
}
if(value != null ) {
if (value != null) {
try {
PropertyUtils.setSimpleProperty(user, mapper.getField(), value);
} catch (Exception e) {
_logger.error("setSimpleProperty {}" , e);
_logger.error("setSimpleProperty {}", e);
}
}
}
}
if(meta.getColumnsMap().containsKey("status")) {
if (meta.getColumnsMap().containsKey("status")) {
user.setStatus(rs.getInt("status"));
}else {
} else {
user.setStatus(ConstsStatus.ACTIVE);
}
user.setInstId(this.synchronizer.getInstId());
user.setInstId(synchronizer.getInstId());
//password
if(meta.getColumnsMap().containsKey("password")) {
if (meta.getColumnsMap().containsKey("password")) {
user.setPassword(rs.getString("password"));
}else {
} else {
//后4位
String last4Char = "6666";
if(StringUtils.isNotBlank(user.getIdCardNo())) {
if (StringUtils.isNotBlank(user.getIdCardNo())) {
last4Char = user.getIdCardNo().substring(user.getIdCardNo().length() - 4);
}else if(StringUtils.isNotBlank(user.getMobile())) {
} else if (StringUtils.isNotBlank(user.getMobile())) {
last4Char = user.getMobile().substring(user.getMobile().length() - 4);
}else if(StringUtils.isNotBlank(user.getEmployeeNumber())) {
} else if (StringUtils.isNotBlank(user.getEmployeeNumber())) {
last4Char = user.getEmployeeNumber().substring(user.getEmployeeNumber().length() - 4);
}
user.setPassword(user.getUsername()+"@M"+last4Char);
user.setPassword(user.getUsername() + "@M" + last4Char);
}
_logger.debug("User {} " , user);
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("picture" , "picture","String"));
mapperList.add(new ColumnFieldMapper("displayname" , "displayName","String"));
mapperList.add(new ColumnFieldMapper("nickname" , "nickName","String"));
mapperList.add(new ColumnFieldMapper("mobile" , "mobile","String"));
mapperList.add(new ColumnFieldMapper("email" , "email","String"));
mapperList.add(new ColumnFieldMapper("birthdate" , "birthDate","String"));
mapperList.add(new ColumnFieldMapper("usertype" , "userType","String"));
mapperList.add(new ColumnFieldMapper("userstate" , "userState","String"));
mapperList.add(new ColumnFieldMapper("windowsaccount" , "windowsAccount","String"));
mapperList.add(new ColumnFieldMapper("givenname" , "givenName","String"));
mapperList.add(new ColumnFieldMapper("middlename" , "middleName","String"));
mapperList.add(new ColumnFieldMapper("married" , "married","Int"));
mapperList.add(new ColumnFieldMapper("gender" , "gender","Int"));
mapperList.add(new ColumnFieldMapper("idtype" , "idType","Int"));
mapperList.add(new ColumnFieldMapper("idcardno" , "idCardNo","String"));
mapperList.add(new ColumnFieldMapper("website" , "webSite","String"));
mapperList.add(new ColumnFieldMapper("startworkdate" , "startWorkDate","String"));
mapperList.add(new ColumnFieldMapper("id", "id", "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"));
mapperList.add(new ColumnFieldMapper("mobile", "mobile", "String"));
mapperList.add(new ColumnFieldMapper("email", "email", "String"));
mapperList.add(new ColumnFieldMapper("birthdate", "birthDate", "String"));
mapperList.add(new ColumnFieldMapper("usertype", "userType", "String"));
mapperList.add(new ColumnFieldMapper("userstate", "userState", "String"));
mapperList.add(new ColumnFieldMapper("windowsaccount", "windowsAccount", "String"));
mapperList.add(new ColumnFieldMapper("givenname", "givenName", "String"));
mapperList.add(new ColumnFieldMapper("middlename", "middleName", "String"));
mapperList.add(new ColumnFieldMapper("married", "married", "Int"));
mapperList.add(new ColumnFieldMapper("gender", "gender", "Int"));
mapperList.add(new ColumnFieldMapper("idtype", "idType", "Int"));
mapperList.add(new ColumnFieldMapper("idcardno", "idCardNo", "String"));
mapperList.add(new ColumnFieldMapper("website", "webSite", "String"));
mapperList.add(new ColumnFieldMapper("startworkdate", "startWorkDate", "String"));
//work
mapperList.add(new ColumnFieldMapper("workcountry" , "workCountry","String"));
mapperList.add(new ColumnFieldMapper("workregion" , "workRegion","String"));
mapperList.add(new ColumnFieldMapper("worklocality" , "workLocality","String"));
mapperList.add(new ColumnFieldMapper("workstreetaddress" , "workStreetAddress","String"));
mapperList.add(new ColumnFieldMapper("workaddressformatted" , "workAddressFormatted","String"));
mapperList.add(new ColumnFieldMapper("workemail" , "workEmail","String"));
mapperList.add(new ColumnFieldMapper("workphonenumber" , "workPhoneNumber","String"));
mapperList.add(new ColumnFieldMapper("workpostalcode" , "workPostalCode","String"));
mapperList.add(new ColumnFieldMapper("workfax" , "workFax","String"));
mapperList.add(new ColumnFieldMapper("workofficename" , "workOfficeName","String"));
mapperList.add(new ColumnFieldMapper("workcountry", "workCountry", "String"));
mapperList.add(new ColumnFieldMapper("workregion", "workRegion", "String"));
mapperList.add(new ColumnFieldMapper("worklocality", "workLocality", "String"));
mapperList.add(new ColumnFieldMapper("workstreetaddress", "workStreetAddress", "String"));
mapperList.add(new ColumnFieldMapper("workaddressformatted", "workAddressFormatted", "String"));
mapperList.add(new ColumnFieldMapper("workemail", "workEmail", "String"));
mapperList.add(new ColumnFieldMapper("workphonenumber", "workPhoneNumber", "String"));
mapperList.add(new ColumnFieldMapper("workpostalcode", "workPostalCode", "String"));
mapperList.add(new ColumnFieldMapper("workfax", "workFax", "String"));
mapperList.add(new ColumnFieldMapper("workofficename", "workOfficeName", "String"));
//home
mapperList.add(new ColumnFieldMapper("homecountry" , "homeCountry","String"));
mapperList.add(new ColumnFieldMapper("homeregion" , "homeRegion","String"));
mapperList.add(new ColumnFieldMapper("homelocality" , "homeLocality","String"));
mapperList.add(new ColumnFieldMapper("homestreetaddress" , "homeStreetAddress","String"));
mapperList.add(new ColumnFieldMapper("homeaddressformatted" , "homeAddressFormatted","String"));
mapperList.add(new ColumnFieldMapper("homeemail" , "homeEmail","String"));
mapperList.add(new ColumnFieldMapper("homephonenumber" , "homePhonenumber","String"));
mapperList.add(new ColumnFieldMapper("homepostalcode" , "homePostalCode","String"));
mapperList.add(new ColumnFieldMapper("homefax" , "homeFax","String"));
mapperList.add(new ColumnFieldMapper("homecountry", "homeCountry", "String"));
mapperList.add(new ColumnFieldMapper("homeregion", "homeRegion", "String"));
mapperList.add(new ColumnFieldMapper("homelocality", "homeLocality", "String"));
mapperList.add(new ColumnFieldMapper("homestreetaddress", "homeStreetAddress", "String"));
mapperList.add(new ColumnFieldMapper("homeaddressformatted", "homeAddressFormatted", "String"));
mapperList.add(new ColumnFieldMapper("homeemail", "homeEmail", "String"));
mapperList.add(new ColumnFieldMapper("homephonenumber", "homePhonenumber", "String"));
mapperList.add(new ColumnFieldMapper("homepostalcode", "homePostalCode", "String"));
mapperList.add(new ColumnFieldMapper("homefax", "homeFax", "String"));
//company
mapperList.add(new ColumnFieldMapper("employeenumber" , "employeeNumber","String"));
mapperList.add(new ColumnFieldMapper("costcenter" , "costCenter","String"));
mapperList.add(new ColumnFieldMapper("organization" , "organization","String"));
mapperList.add(new ColumnFieldMapper("division" , "division","String"));
mapperList.add(new ColumnFieldMapper("departmentid" , "departmentId","String"));
mapperList.add(new ColumnFieldMapper("department" , "department","String"));
mapperList.add(new ColumnFieldMapper("jobtitle" , "jobTitle","String"));
mapperList.add(new ColumnFieldMapper("joblevel" , "jobLevel","String"));
mapperList.add(new ColumnFieldMapper("managerid" , "managerId","String"));
mapperList.add(new ColumnFieldMapper("manager" , "manager","String"));
mapperList.add(new ColumnFieldMapper("assistantid" , "assistantId","String"));
mapperList.add(new ColumnFieldMapper("assistant" , "assistant","String"));
mapperList.add(new ColumnFieldMapper("entrydate" , "entrydate","String"));
mapperList.add(new ColumnFieldMapper("quitdate" , "quitdate","String"));
mapperList.add(new ColumnFieldMapper("ldapdn" , "ldapDn","String"));
mapperList.add(new ColumnFieldMapper("employeenumber", "employeeNumber", "String"));
mapperList.add(new ColumnFieldMapper("costcenter", "costCenter", "String"));
mapperList.add(new ColumnFieldMapper("organization", "organization", "String"));
mapperList.add(new ColumnFieldMapper("division", "division", "String"));
mapperList.add(new ColumnFieldMapper("departmentid", "departmentId", "String"));
mapperList.add(new ColumnFieldMapper("department", "department", "String"));
mapperList.add(new ColumnFieldMapper("jobtitle", "jobTitle", "String"));
mapperList.add(new ColumnFieldMapper("joblevel", "jobLevel", "String"));
mapperList.add(new ColumnFieldMapper("managerid", "managerId", "String"));
mapperList.add(new ColumnFieldMapper("manager", "manager", "String"));
mapperList.add(new ColumnFieldMapper("assistantid", "assistantId", "String"));
mapperList.add(new ColumnFieldMapper("assistant", "assistant", "String"));
mapperList.add(new ColumnFieldMapper("entrydate", "entrydate", "String"));
mapperList.add(new ColumnFieldMapper("quitdate", "quitdate", "String"));
mapperList.add(new ColumnFieldMapper("ldapdn", "ldapDn", "String"));
mapperList.add(new ColumnFieldMapper("description" , "description","String"));
mapperList.add(new ColumnFieldMapper("status" , "status","String"));
mapperList.add(new ColumnFieldMapper("description", "description", "String"));
mapperList.add(new ColumnFieldMapper("status", "status", "String"));
}
}

View File

@ -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>

View File

@ -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,47 +27,59 @@ 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"})
@RequestMapping(value = {"/config/synchronizers"})
public class SynchronizersController {
static final Logger logger = LoggerFactory.getLogger(SynchronizersController.class);
@Autowired
SynchronizersService synchronizersService;
@RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
@RequestMapping(value = {"/fetch"}, produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseBody
public ResponseEntity<?> fetch(Synchronizers synchronizers,@CurrentUser UserInfo currentUser) {
logger.debug("fetch {}" , synchronizers);
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();
}
@RequestMapping(value = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
@RequestMapping(value = {"/get/{id}"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@PathVariable("id") String id) {
Synchronizers synchronizers=synchronizersService.get(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={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(@RequestBody Synchronizers synchronizers,@CurrentUser UserInfo currentUser) {
logger.debug("-update : {}" , synchronizers);
@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
@RequestMapping(value = {"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(@RequestBody Synchronizers synchronizers, @CurrentUser UserInfo currentUser) {
logger.debug("-update : {}", synchronizers);
synchronizers.setInstId(currentUser.getInstId());
synchronizers.setCredentials(PasswordReciprocal.getInstance().encode(synchronizers.getCredentials()));
if (synchronizersService.update(synchronizers)) {
@ -79,26 +90,37 @@ public class SynchronizersController {
}
@ResponseBody
@RequestMapping(value={"/synchr"})
@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) {
logger.debug("-sync ids : {}" , id);
logger.debug("-sync ids : {}", id);
List<String> ids = StringUtils.string2List(id, ",");
try {
for(String sysId : ids) {
for (String sysId : ids) {
Synchronizers synchronizer = synchronizersService.get(sysId);
synchronizer.setCredentials(PasswordReciprocal.getInstance().decoder(synchronizer.getCredentials()));
logger.debug("synchronizer {}" , synchronizer);
ISynchronizerService synchronizerService = WebContext.getBean(synchronizer.getService(),ISynchronizerService.class);
if(synchronizerService != null) {
logger.debug("synchronizer {}", synchronizer);
ISynchronizerService synchronizerService = WebContext.getBean(synchronizer.getService(), ISynchronizerService.class);
if (synchronizerService != null) {
synchronizerService.setSynchronizer(synchronizer);
synchronizerService.sync();
}else {
logger.info("synchronizer {} not exist .",synchronizer.getService());
} else {
logger.info("synchronizer {} not exist .", synchronizer.getService());
}
}
}catch(Exception e) {
logger.error("synchronizer Exception " , e);
} catch (Exception e) {
logger.error("synchronizer Exception ", e);
return new Message<Synchronizers>(Message.FAIL).buildResponse();
}