MaxKey 4 years ago
parent
commit
27f1243402
46 changed files with 747 additions and 141 deletions
  1. 1 1
      maxkey-core/src/main/java/org/maxkey/entity/ExcelImport.java
  2. 213 0
      maxkey-core/src/main/java/org/maxkey/entity/HistoryConnector.java
  3. 1 1
      maxkey-core/src/main/java/org/maxkey/entity/PasswordPolicy.java
  4. 1 1
      maxkey-core/src/main/java/org/maxkey/entity/apps/Apps.java
  5. 1 1
      maxkey-core/src/main/java/org/maxkey/entity/apps/AppsAdapters.java
  6. 1 1
      maxkey-core/src/main/java/org/maxkey/entity/apps/AppsCasDetails.java
  7. 1 1
      maxkey-core/src/main/java/org/maxkey/entity/apps/AppsFormBasedDetails.java
  8. 1 1
      maxkey-core/src/main/java/org/maxkey/entity/apps/AppsJwtDetails.java
  9. 1 1
      maxkey-core/src/main/java/org/maxkey/entity/apps/AppsSAML20Details.java
  10. 1 1
      maxkey-core/src/main/java/org/maxkey/entity/apps/AppsTokenBasedDetails.java
  11. 30 0
      maxkey-persistence/src/main/java/org/maxkey/persistence/mapper/HistoryConnectorMapper.java
  12. 40 0
      maxkey-persistence/src/main/java/org/maxkey/persistence/service/HistoryConnectorService.java
  13. 2 10
      maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/GroupMemberMapper.xml
  14. 62 0
      maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/HistoryConnectorMapper.xml
  15. 1 8
      maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/RoleMemberMapper.xml
  16. 78 0
      maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/ConnectorHistoryController.java
  17. 1 1
      maxkey-web-manage/src/main/resources/application.properties
  18. 13 1
      maxkey-web-manage/src/main/resources/messages/message.properties
  19. 14 1
      maxkey-web-manage/src/main/resources/messages/message_en.properties
  20. 26 17
      maxkey-web-manage/src/main/resources/messages/message_zh_CN.properties
  21. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/basic/appAdd.ftl
  22. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/basic/appUpdate.ftl
  23. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/cas/appAdd.ftl
  24. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/cas/appUpdate.ftl
  25. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/extendapi/appAdd.ftl
  26. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/extendapi/appUpdate.ftl
  27. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/formbased/appAdd.ftl
  28. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/formbased/appUpdate.ftl
  29. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/jwt/appAdd.ftl
  30. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/jwt/appUpdate.ftl
  31. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/oauth20/appAdd.ftl
  32. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/oauth20/appUpdate.ftl
  33. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/saml20/appAdd.ftl
  34. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/saml20/appUpdate.ftl
  35. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/tokenbased/appAdd.ftl
  36. 1 1
      maxkey-web-manage/src/main/resources/templates/views/apps/tokenbased/appUpdate.ftl
  37. 13 6
      maxkey-web-manage/src/main/resources/templates/views/groupuser/addGroupUsersList.ftl
  38. 17 15
      maxkey-web-manage/src/main/resources/templates/views/groupuser/groupUsersList.ftl
  39. 142 0
      maxkey-web-manage/src/main/resources/templates/views/historys/connectorHistoryList.ftl
  40. 6 0
      maxkey-web-manage/src/main/resources/templates/views/layout/sidenav.ftl
  41. 13 7
      maxkey-web-manage/src/main/resources/templates/views/roleusers/addRoleUsersList.ftl
  42. 47 46
      maxkey-web-manage/src/main/resources/templates/views/roleusers/roleUsersList.ftl
  43. 1 1
      maxkey-web-maxkey/src/main/resources/application-https.properties
  44. 1 1
      maxkey-web-maxkey/src/main/resources/messages/message.properties
  45. 1 1
      maxkey-web-maxkey/src/main/resources/messages/message_en.properties
  46. 1 1
      maxkey-web-maxkey/src/main/resources/messages/message_zh_CN.properties

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/entity/ExcelImport.java

@@ -39,7 +39,7 @@ public class ExcelImport extends JpaBaseEntity {
 
     @Id
     @Column
-    @GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
+    @GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
     String id;
  
     @JsonIgnore

+ 213 - 0
maxkey-core/src/main/java/org/maxkey/entity/HistoryConnector.java

@@ -0,0 +1,213 @@
+package org.maxkey.entity;
+
+import java.io.Serializable;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.apache.mybatis.jpa.persistence.JpaBaseEntity;
+
+@Entity
+@Table(name = "MXK_HISTORY_CONNECTOR")  
+public class HistoryConnector  extends JpaBaseEntity  implements Serializable{
+
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 3465459057253994386L;
+    
+    @Id
+    @Column
+    @GeneratedValue(strategy=GenerationType.AUTO,generator="snowflakeid")
+    String id;
+    
+    @Column
+    String conName;
+    
+    @Column
+    String conType;
+    
+    @Column
+    String sourceId;
+    
+    @Column
+    String sourceName;
+    
+    @Column
+    String objectId;
+    
+    @Column
+    String objectName;
+    
+    @Column
+    String description;
+    
+    
+    String syncTime;
+    
+    @Column
+    String result;
+    
+    String startDate;
+    
+    String endDate;
+    
+   
+    public String getId() {
+        return id;
+    }
+
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+
+    public String getConName() {
+        return conName;
+    }
+
+
+    public void setConName(String conName) {
+        this.conName = conName;
+    }
+
+
+    public String getConType() {
+        return conType;
+    }
+
+
+    public void setConType(String conType) {
+        this.conType = conType;
+    }
+
+
+    public String getSourceId() {
+        return sourceId;
+    }
+
+
+    public void setSourceId(String sourceId) {
+        this.sourceId = sourceId;
+    }
+
+
+    public String getSourceName() {
+        return sourceName;
+    }
+
+
+    public void setSourceName(String sourceName) {
+        this.sourceName = sourceName;
+    }
+
+
+    public String getObjectId() {
+        return objectId;
+    }
+
+
+    public void setObjectId(String objectId) {
+        this.objectId = objectId;
+    }
+
+
+    public String getObjectName() {
+        return objectName;
+    }
+
+
+    public void setObjectName(String objectName) {
+        this.objectName = objectName;
+    }
+
+
+    public String getDescription() {
+        return description;
+    }
+
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+
+    public String getSyncTime() {
+        return syncTime;
+    }
+
+
+    public void setSyncTime(String syncTime) {
+        this.syncTime = syncTime;
+    }
+
+
+    public String getResult() {
+        return result;
+    }
+
+
+    public void setResult(String result) {
+        this.result = result;
+    }
+
+
+    public String getStartDate() {
+        return startDate;
+    }
+
+
+    public void setStartDate(String startDate) {
+        this.startDate = startDate;
+    }
+
+
+    public String getEndDate() {
+        return endDate;
+    }
+
+
+    public void setEndDate(String endDate) {
+        this.endDate = endDate;
+    }
+
+
+    @Override
+    public String toString() {
+        StringBuilder builder = new StringBuilder();
+        builder.append("HistoryConnector [id=");
+        builder.append(id);
+        builder.append(", conName=");
+        builder.append(conName);
+        builder.append(", conType=");
+        builder.append(conType);
+        builder.append(", sourceId=");
+        builder.append(sourceId);
+        builder.append(", sourceName=");
+        builder.append(sourceName);
+        builder.append(", objectId=");
+        builder.append(objectId);
+        builder.append(", objectName=");
+        builder.append(objectName);
+        builder.append(", description=");
+        builder.append(description);
+        builder.append(", syncTime=");
+        builder.append(syncTime);
+        builder.append(", result=");
+        builder.append(result);
+        builder.append(", startDate=");
+        builder.append(startDate);
+        builder.append(", endDate=");
+        builder.append(endDate);
+        builder.append("]");
+        return builder.toString();
+    }
+    
+    
+}

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/entity/PasswordPolicy.java

@@ -40,7 +40,7 @@ public class PasswordPolicy extends JpaBaseEntity implements java.io.Serializabl
     private static final long serialVersionUID = -4797776994287829182L;
     @Id
     @Column
-    @GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
+    @GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
     String id;
     /**
      * minimum password lengths

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/entity/apps/Apps.java

@@ -57,7 +57,7 @@ public class Apps extends JpaBaseEntity implements Serializable {
 
     @Id
     @Column
-    @GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
+    @GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
     protected String id;
     /**
      * 

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/entity/apps/AppsAdapters.java

@@ -37,7 +37,7 @@ public class AppsAdapters extends JpaBaseEntity implements Serializable {
 
     @Id
     @Column
-    @GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
+    @GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
     protected String id;
     /**
      * 

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/entity/apps/AppsCasDetails.java

@@ -34,7 +34,7 @@ public class AppsCasDetails extends Apps {
     private static final long serialVersionUID = -4272290765948322084L;
     @Id
     @Column
-    @GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
+    @GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
     private String id;
     @Column
     private String service;

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/entity/apps/AppsFormBasedDetails.java

@@ -37,7 +37,7 @@ public class AppsFormBasedDetails  extends Apps {
 	private static final long serialVersionUID = 563313247706861431L;
 	@Id
 	@Column
-	@GeneratedValue(strategy=GenerationType.AUTO,generator="uuid")
+	@GeneratedValue(strategy=GenerationType.AUTO,generator="snowflakeid")
 	protected String id;
 	
 	@Column

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/entity/apps/AppsJwtDetails.java

@@ -42,7 +42,7 @@ public class AppsJwtDetails  extends Apps {
 
 	@Id
 	@Column
-	@GeneratedValue(strategy=GenerationType.AUTO,generator="uuid")
+	@GeneratedValue(strategy=GenerationType.AUTO,generator="snowflakeid")
 	protected String id;
 	/**
 	 * 

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/entity/apps/AppsSAML20Details.java

@@ -42,7 +42,7 @@ public class AppsSAML20Details extends Apps {
     private static final long serialVersionUID = -291159876339333345L;
     @Id
     @Column
-    @GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
+    @GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
     protected String id;
     @Column
     private String certIssuer;

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/entity/apps/AppsTokenBasedDetails.java

@@ -42,7 +42,7 @@ public class AppsTokenBasedDetails  extends Apps {
 
 	@Id
 	@Column
-	@GeneratedValue(strategy=GenerationType.AUTO,generator="uuid")
+	@GeneratedValue(strategy=GenerationType.AUTO,generator="snowflakeid")
 	protected String id;
 	/**
 	 * 

+ 30 - 0
maxkey-persistence/src/main/java/org/maxkey/persistence/mapper/HistoryConnectorMapper.java

@@ -0,0 +1,30 @@
+/*
+ * 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.maxkey.persistence.mapper;
+
+
+import org.apache.mybatis.jpa.persistence.IJpaBaseMapper;
+import org.maxkey.entity.HistoryConnector;
+
+/**
+ * @author Crystal.sea
+ *
+ */
+public interface HistoryConnectorMapper extends IJpaBaseMapper<HistoryConnector> {
+
+}

+ 40 - 0
maxkey-persistence/src/main/java/org/maxkey/persistence/service/HistoryConnectorService.java

@@ -0,0 +1,40 @@
+/*
+ * Copyright [2021] [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.maxkey.persistence.service;
+
+import org.apache.mybatis.jpa.persistence.JpaBaseService;
+import org.maxkey.entity.HistoryConnector;
+import org.maxkey.persistence.mapper.HistoryConnectorMapper;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class HistoryConnectorService  extends JpaBaseService<HistoryConnector>{
+
+	public HistoryConnectorService() {
+		super(HistoryConnectorMapper.class);
+	}
+	
+	/* (non-Javadoc)
+	 * @see com.connsec.db.service.BaseService#getMapper()
+	 */
+	@Override
+	public HistoryConnectorMapper getMapper() {
+		// TODO Auto-generated method stub
+		return (HistoryConnectorMapper)super.getMapper();
+	}
+}

+ 2 - 10
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/GroupMemberMapper.xml

@@ -45,11 +45,7 @@
 					u.jobtitle,
 					u.joblevel,
 					
-					
-					u.createdby,
 					u.createddate,
-					u.modifiedby,
-					u.modifieddate,
 					
 					u.status
 				from
@@ -89,16 +85,12 @@
 				u.jobtitle,
 				u.joblevel,
 				
-				
-				u.createdby,
-				u.createddate,
-				u.modifiedby,
-				u.modifieddate,
+				gm.createddate,
 				
 				u.status
 			from
 				mxk_userinfo u,
-				`mxk_groups` g,
+				mxk_groups   g,
 				mxk_group_member gm
 			where	1	=	1
 				<if test="groupId != null and groupId != ''">

+ 62 - 0
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/HistoryConnectorMapper.xml

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.maxkey.persistence.mapper.HistoryConnectorMapper" >
+
+	<sql id="where_statement">
+    	<if test="id != null and id != ''">
+			and	id	=	#{id}
+		</if> 
+		
+		<if test="conName != null and conName != ''">
+            and conName  =   #{conName}
+        </if> 
+        
+		<if test="conType != null and conType != ''">
+            and conType  =   #{conType}
+        </if> 
+        
+		<if test="sourceId != null and sourceId != ''">
+            and sourceId  =   #{sourceId}
+        </if> 
+        
+        <if test="sourceName != null and sourceName != ''">
+            and sourceName  =   #{sourceName}
+        </if> 
+        
+        <if test="objectId != null and objectId != ''">
+            and objectId  =   #{objectId}
+        </if> 
+        
+        <if test="objectName != null and objectName != ''">
+            and objectname  =   #{objectName}
+        </if> 
+        
+        <if test="result != null and result != ''">
+            and result  =   #{result}
+        </if> 	
+        	
+		<if test="startDate != null and startDate != ''">
+            and synctime   >=  #{startDate}
+        </if>
+        
+        <if test="endDate != null and endDate != ''">
+            and  #{endDate} >=  synctime
+        </if>
+        
+        <if test="description != null and description != ''">
+            and description like '%${description}%'
+        </if>
+    </sql>
+	
+    
+     <select id="queryPageResults" parameterType="HistoryConnector" resultType="HistoryConnector">
+    	select 
+			*
+    	from mxk_history_connector 
+    	where	1	=	1
+    	<include refid="where_statement"/>
+    	
+    	order by synctime desc
+    </select>
+  
+</mapper>

+ 1 - 8
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/RoleMemberMapper.xml

@@ -45,11 +45,7 @@
 					u.jobtitle,
 					u.joblevel,
 					
-					
-					u.createdby,
 					u.createddate,
-					u.modifiedby,
-					u.modifieddate,
 					
 					u.status
 				from
@@ -90,10 +86,7 @@
 				u.joblevel,
 				
 				
-				u.createdby,
-				u.createddate,
-				u.modifiedby,
-				u.modifieddate,
+				rm.createddate,
 				
 				u.status
 			from

+ 78 - 0
maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/ConnectorHistoryController.java

@@ -0,0 +1,78 @@
+/*
+ * Copyright [2021] [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.maxkey.web.historys.contorller;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import org.apache.mybatis.jpa.persistence.JpaPageResults;
+import org.maxkey.entity.HistoryConnector;
+import org.maxkey.persistence.service.HistoryConnectorService;
+import org.maxkey.util.DateUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.propertyeditors.CustomDateEditor;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.WebDataBinder;
+import org.springframework.web.bind.annotation.InitBinder;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+/**
+ * 连接器日志查询
+ * 
+ * @author Crystal.sea
+ *
+ */
+
+@Controller
+@RequestMapping(value={"/historys"})
+public class ConnectorHistoryController {
+final static Logger _logger = LoggerFactory.getLogger(ConnectorHistoryController.class);
+
+	@Autowired
+    @Qualifier("historyConnectorService")
+	HistoryConnectorService historyConnectorService;
+	
+	
+	@RequestMapping(value={"/connectorHistoryList"})
+    public String historySynchronizerList(){
+        return "historys/connectorHistoryList";
+    }
+	
+	/**
+     * @param historySynchronizer
+     * @return
+     */
+    @RequestMapping(value={"/connectorHistoryList/grid"})
+    @ResponseBody
+    public JpaPageResults<HistoryConnector> historySynchronizerGrid(@ModelAttribute("historyConnector") HistoryConnector historyConnector){
+        _logger.debug("historys/historyConnector/grid/ "+historyConnector);
+        return historyConnectorService.queryPageResults(historyConnector);
+    }
+
+
+	@InitBinder
+    public void initBinder(WebDataBinder binder) {
+        SimpleDateFormat dateFormat = new SimpleDateFormat(DateUtils.FORMAT_DATE_HH_MM_SS);
+        dateFormat.setLenient(false);  
+        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
+    }
+}

+ 1 - 1
maxkey-web-manage/src/main/resources/application.properties

@@ -178,7 +178,7 @@ maxkey.maxkey.uri=https://${maxkey.server.domain}/maxkey
 #InMemory 0 , Redis 2 
 maxkey.server.persistence=0
 #identity
-maxkey.identity.kafkasupport=false
+maxkey.identity.kafkasupport=true
 
 ############################################################################
 #Login configuration                                                       #

+ 13 - 1
maxkey-web-manage/src/main/resources/messages/message.properties

@@ -525,6 +525,17 @@ log.synchronizer.objectType=\u5BF9\u8C61\u540D\u79F0
 log.synchronizer.objectName=\u5BF9\u8C61\u540D\u79F0
 log.synchronizer.syncTime=\u540C\u6B65\u65F6\u95F4
 log.synchronizer.result=\u7ED3\u679C
+#connector
+log.connector.id=\u7F16\u53F7
+log.connector.conName=\u8FDE\u63A5\u5668
+log.connector.conType=\u7C7B\u578B
+log.connector.sourceId=\u6E90\u7F16\u7801
+log.connector.sourceName=\u6E90\u540D\u79F0
+log.connector.objectId=\u5BF9\u8C61\u7F16\u53F7
+log.connector.objectName=\u5BF9\u8C61\u540D\u79F0
+log.connector.description=\u63CF\u8FF0
+log.connector.syncTime=\u65F6\u95F4
+log.connector.result=\u7ED3\u679C
 
 #message
 message.action.insert.success=\u65b0\u589e\u64cd\u4f5c\u6210\u529f
@@ -559,8 +570,9 @@ navs.conf.passwordpolicy=\u5bc6\u7801\u7b56\u7565
 navs.audit=\u65e5\u5fd7\u5ba1\u8ba1
 navs.audit.login=\u767b\u5f55\u65e5\u5fd7
 navs.audit.loginapps=\u8bbf\u95ee\u65e5\u5fd7
-navs.audit.operate=\u64cd\u4f5c\u65e5\u5fd7
+navs.audit.operate=\u7BA1\u7406\u65e5\u5fd7
 navs.audit.synchronizer=\u540C\u6B65\u65E5\u5FD7
+navs.audit.connector=\u8FDE\u63A5\u65E5\u5FD7
 navs.roles=\u89d2\u8272\u7ba1\u7406
 navs.role.member=\u89d2\u8272\u7528\u6237
 navs.role.permissions=\u89d2\u8272\u6743\u9650\u7ba1\u7406

+ 14 - 1
maxkey-web-manage/src/main/resources/messages/message_en.properties

@@ -538,6 +538,18 @@ log.synchronizer.objectName=ObjectName
 log.synchronizer.syncTime=SyncTime
 log.synchronizer.result=Result
 
+
+log.connector.id=Id
+log.connector.conName=Connector
+log.connector.conType=Type
+log.connector.sourceId=SourceId
+log.connector.sourceName=SourceName
+log.connector.objectId=ObjectId
+log.connector.objectName=ObjectName
+log.connector.description=Description
+log.connector.syncTime=SyncTime
+log.connector.result=Result
+
 message.action.insert.success=Insert Success
 message.action.insert.error=Insert  Error
 message.action.update.success=Update Success
@@ -571,8 +583,9 @@ navs.conf.passwordpolicy=PasswordPolicy
 navs.audit=Audit
 navs.audit.login=Login
 navs.audit.loginapps=LoginApps
-navs.audit.operate=Operate
+navs.audit.operate=Management
 navs.audit.synchronizer=Synchronizer
+navs.audit.connector=Connector
 navs.roles=Roles
 navs.role.member=RoleMember
 navs.role.permissions=Permissions

+ 26 - 17
maxkey-web-manage/src/main/resources/messages/message_zh_CN.properties

@@ -444,7 +444,13 @@ resource.resourceIcon=\u56fe\u6807
 resource.resourceUrl=\u8d44\u6e90\u5730\u5740
 resource.resourceAction=\u52a8\u4f5c
 resource.resourceStyle=\u6837\u5f0f
-
+#account
+account.username=\u7528\u6237\u540d
+account.displayName=\u7528\u6237\u59d3\u540d
+account.appId=\u5e94\u7528\u7f16\u53f7
+account.appName=\u5e94\u7528\u540d\u79f0
+account.relatedUsername=\u7528\u6237\u8d26\u53f7
+account.relatedPassword=\u8d26\u53f7\u5bc6\u7801
 #synchronizers
 synchronizers.id=\u7F16\u53F7
 synchronizers.name=\u540C\u6B65\u5668\u540D\u79F0
@@ -462,15 +468,7 @@ synchronizers.trustStore=\u8BC1\u4E66\u8DEF\u5F84
 synchronizers.trustStorePassword=\u8BC1\u4E66\u5BC6\u94A5
 synchronizers.resumeTime=\u6062\u590D\u65F6\u95F4
 synchronizers.suspendTime=\u6302\u8D77\u65F6\u95F4
-
-#account
-account.username=\u7528\u6237\u540d
-account.displayName=\u7528\u6237\u59d3\u540d
-account.appId=\u5e94\u7528\u7f16\u53f7
-account.appName=\u5e94\u7528\u540d\u79f0
-account.relatedUsername=\u7528\u6237\u8d26\u53f7
-account.relatedPassword=\u8d26\u53f7\u5bc6\u7801
- 
+#button
 button.text.action=\u8bbf\u95ee
 button.text.visit=\u8bbf\u95ee
 button.text.save=\u4fdd\u5b58
@@ -491,7 +489,7 @@ button.text.hidden=\u9690\u85cf
 button.text.import=\u5bfc\u5165
 button.text.adjunct=\u517c\u4efb\u673a\u6784
 button.text.sync=\u540C\u6B65
-
+#history login
 log.loginhistory.id=\u7f16\u53f7
 log.loginhistory.sessionId=\u4f1a\u8bdd
 log.loginhistory.username=\u767b\u5f55\u540d
@@ -508,7 +506,7 @@ log.loginhistory.application=\u5e94\u7528
 log.loginhistory.loginUrl=\u767b\u5f55\u5730\u5740
 log.loginhistory.code=\u4ee3\u7801
 log.loginhistory.rpUserInfo=\u7b2c\u4e09\u65b9
-
+#history login apps
 log.loginappshistory.id=\u7f16\u53f7
 log.loginappshistory.sessionId=\u4f1a\u8bdd
 log.loginappshistory.uid=\u7528\u6237\u7f16\u53f7
@@ -517,14 +515,14 @@ log.loginappshistory.displayName=\u7528\u6237\u540d
 log.loginappshistory.appId=\u5e94\u7528\u7f16\u53f7
 log.loginappshistory.appName=\u5e94\u7528\u540d\u79f0
 log.loginappshistory.loginTime=\u767b\u5f55\u65f6\u95f4
-
+#history operate
 log.operate.servicename=\u670d\u52a1
 log.operate.message=\u6d88\u606f
 log.operate.content=\u5185\u5bb9
 log.operate.messageType=\u6d88\u606f\u7c7b\u578b
 log.operate.operateType=\u64cd\u4f5c\u7c7b\u578b
 log.operate.username=\u64cd\u4f5c\u4eba
-
+#history synchronizer
 log.synchronizer.id=\u7F16\u53F7
 log.synchronizer.syncId=\u540C\u6B65\u5668\u7F16\u53F7
 log.synchronizer.syncName=\u540C\u6B65\u5668
@@ -533,6 +531,17 @@ log.synchronizer.objectType=\u5BF9\u8C61\u540D\u79F0
 log.synchronizer.objectName=\u5BF9\u8C61\u540D\u79F0
 log.synchronizer.syncTime=\u540C\u6B65\u65F6\u95F4
 log.synchronizer.result=\u7ED3\u679C
+#history connector
+log.connector.id=\u7F16\u53F7
+log.connector.conName=\u8FDE\u63A5\u5668
+log.connector.conType=\u7C7B\u578B
+log.connector.sourceId=\u6E90\u7F16\u7801
+log.connector.sourceName=\u6E90\u540D\u79F0
+log.connector.objectId=\u5BF9\u8C61\u7F16\u53F7
+log.connector.objectName=\u5BF9\u8C61\u540D\u79F0
+log.connector.description=\u63CF\u8FF0
+log.connector.syncTime=\u65F6\u95F4
+log.connector.result=\u7ED3\u679C
 
 message.action.insert.success=\u65b0\u589e\u64cd\u4f5c\u6210\u529f
 message.action.insert.error=\u65b0\u589e\u64cd\u4f5c\u5931\u8d25
@@ -548,11 +557,10 @@ import.file.select=\u9009\u62e9\u5bfc\u5165\u6587\u4ef6
 import.template.download=\u4e0b\u8f7d\u6a21\u677f
 import.update.exist=\u66f4\u65b0\u5b58\u5728\u6570\u636e
 import.tip=\u63d0\u793a\uff1a\u4ec5\u5141\u8bb8\u5bfc\u5165\u201cxls\u201d\u6216\u8005\u201cxlsx\u201d\u683c\u5f0f\u7684\u6587\u4ef6 
-
 #Notices
 notices.title=\u6807\u9898
 notices.content=\u5185\u5BB9
-
+#navs
 navs.system=\u7cfb\u7edf
 navs.home=\u9996\u9875
 navs.orgs=\u673a\u6784\u7ba1\u7406
@@ -567,8 +575,9 @@ navs.conf.passwordpolicy=\u5bc6\u7801\u7b56\u7565
 navs.audit=\u65e5\u5fd7\u5ba1\u8ba1
 navs.audit.login=\u767b\u5f55\u65e5\u5fd7
 navs.audit.loginapps=\u8bbf\u95ee\u65e5\u5fd7
-navs.audit.operate=\u64cd\u4f5c\u65e5\u5fd7
+navs.audit.operate=\u7BA1\u7406\u65e5\u5fd7
 navs.audit.synchronizer=\u540C\u6B65\u65E5\u5FD7
+navs.audit.connector=\u8FDE\u63A5\u65E5\u5FD7
 navs.roles=\u89d2\u8272\u7ba1\u7406
 navs.role.member=\u89d2\u8272\u7528\u6237
 navs.role.permissions=\u89d2\u8272\u6743\u9650\u7ba1\u7406

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/basic/appAdd.ftl

@@ -26,7 +26,7 @@
 								<td  colspan=4>
 									<input class="button"  id="status" type="hidden" name="status"  value="1"/>
     								<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>	  
+									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>	  
 								</td>
 							</tr>
 							</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/basic/appUpdate.ftl

@@ -26,7 +26,7 @@
 								<tr>
 									<td  colspan=4>
 										<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-										<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>		  
+										<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>		  
 									</td>
 								</tr>
 								

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/cas/appAdd.ftl

@@ -62,7 +62,7 @@ $(function(){
 								<td  colspan=4>
 									<input class="button"  id="status" type="hidden" name="status"  value="1"/>
     								<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>		  
+									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>		  
 								</td>
 							</tr>
 							</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/cas/appUpdate.ftl

@@ -78,7 +78,7 @@ $(function(){
 								<tr>
 									<td  colspan=4>
 										<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-										<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>		  
+										<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>		  
 									</td>
 								</tr>
 								

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/extendapi/appAdd.ftl

@@ -103,7 +103,7 @@ $(function(){
 								<td colspan =4>
 									<input class="button"  id="status" type="hidden" name="status"  value="1"/>
 						    		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>	
+									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>	
 								</td>
 							</tr>
 							</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/extendapi/appUpdate.ftl

@@ -109,7 +109,7 @@ $(function(){
 				</tbody>
 				</table>
     		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-			<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>		  
+			<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>		  
 </form>
 </body>
 </html>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/formbased/appAdd.ftl

@@ -135,7 +135,7 @@ $(function(){
 						<td colspan =4>
 							<input  id="status" type="hidden" name="status"  value="1"/>
 				    		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>		  
+									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>		  
 						</td>
 					</tr>
 				</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/formbased/appUpdate.ftl

@@ -125,7 +125,7 @@ $(function(){
 					<tr>
 						<td colspan =4>
 				    		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>	 
+									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>	 
 						</td>
 					</tr>
 				</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/jwt/appAdd.ftl

@@ -78,7 +78,7 @@
 								<td colspan =4>
 									<input class="button"  id="status" type="hidden" name="status"  value="1"/>
 						    		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>		
+									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>		
 								</td>
 							</tr>
 							</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/jwt/appUpdate.ftl

@@ -81,7 +81,7 @@
 								<tr>
 									<td colspan =4>
 							    		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-										<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>	
+										<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>	
 									</td>
 								</tr>
 								</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/oauth20/appAdd.ftl

@@ -207,7 +207,7 @@
 					<td colspan =4>
 						<input  id="status" type="hidden" name="status"  value="1"/>
 			    		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-						<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>		 
+						<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>		 
 					</td>
 				</tr>
 				</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/oauth20/appUpdate.ftl

@@ -210,7 +210,7 @@
 				</tbody>
 				</table>
     		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-			<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>		  
+			<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>		  
 </form>
 </body>
 </html>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/saml20/appAdd.ftl

@@ -188,7 +188,7 @@
 					<td colspan =4>
 						<input  id="status" type="hidden" name="status"  value="1"/>
 			    		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-						<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>		 
+						<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>		 
 					</td>
 				</tr>
 				</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/saml20/appUpdate.ftl

@@ -201,7 +201,7 @@
 				<tr>
 					<td colspan =4>
 			    		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-						<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>	
+						<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>	
 					</td>
 				</tr>
 				</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/tokenbased/appAdd.ftl

@@ -78,7 +78,7 @@
 								<td colspan =4>
 									<input class="button"  id="status" type="hidden" name="status"  value="1"/>
 						    		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>		
+									<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>		
 								</td>
 							</tr>
 							</tbody>

+ 1 - 1
maxkey-web-manage/src/main/resources/templates/views/apps/tokenbased/appUpdate.ftl

@@ -81,7 +81,7 @@
 								<tr>
 									<td colspan =4>
 							    		<input class="button btn btn-primary mr-3"  id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
-										<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>	
+										<input class="button btn btn-secondary mr-3"  id="backBtn" type="button" value="<@locale code="button.text.close" />"/>	
 									</td>
 								</tr>
 								</tbody>

+ 13 - 6
maxkey-web-manage/src/main/resources/templates/views/groupuser/addGroupUsersList.ftl

@@ -10,7 +10,14 @@
   }
 </style>
 <script type="text/javascript">	
-	
+    function genderFormatter(value, row, index){
+        if(value==1){
+            return '<@locale code="userinfo.gender.female" />';
+        }else{
+            return '<@locale code="userinfo.gender.male" />';
+        }
+    };
+    	
 	function afterSubmit(data){
 		//$("#list").trigger('reloadGrid');
 	}
@@ -89,11 +96,11 @@
 				<th data-checkbox="true"></th>
 				<th data-sortable="true" data-field="id"   data-visible="false">Id</th>
 				<th data-field="username"><@locale code="userinfo.username"/></th>
-				<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
-				<th data-field="createdBy"><@locale code="common.text.createdby"/></th>
-				<th data-field="createdDate"><@locale code="common.text.createddate"/></th>
-				<th data-field="modifiedBy"><@locale code="common.text.modifiedby"/></th>
-				<th data-field="modifiedDate"><@locale code="common.text.modifieddate"/></th>
+                <th data-field="displayName"><@locale code="userinfo.displayName"/></th>
+                <th data-field="gender"  data-formatter="genderFormatter" ><@locale code="userinfo.gender"/></th>
+                <th data-field="userType"><@locale code="userinfo.userType"/></th>
+                <th data-field="jobTitle"><@locale code="userinfo.jobTitle"/></th>
+                <th data-field="department"><@locale code="userinfo.department"/></th>
 	
 			</tr>
 		</thead>

+ 17 - 15
maxkey-web-manage/src/main/resources/templates/views/groupuser/groupUsersList.ftl

@@ -4,7 +4,14 @@
 	<#include  "../layout/header.ftl"/>
 	<#include  "../layout/common.cssjs.ftl"/>
 <script type="text/javascript">	
-	
+	function genderFormatter(value, row, index){
+        if(value==1){
+            return '<@locale code="userinfo.gender.female" />';
+        }else{
+            return '<@locale code="userinfo.gender.male" />';
+        }
+    };
+    
 	function afterSubmit(data){
 		$("#list").trigger('reloadGrid');
 	}
@@ -96,21 +103,16 @@
  			<form id="advanced_search_form">
 		 		<table  class="datatable">
 		 			<tr>
-			 			<td width="120px"><@locale code="apps.protocol"/></td>
+			 			<td width="120px"><@locale code="userinfo.username" />:</td>
 			 			<td width="360px">
+			 			     <input class="form-control"  type="text"  id="username" name="username"  title="" value=""/>
 			 			</td>
-			 			<td width="120px"><@locale code="apps.protocol"/></td>
-			 			<td width="360px">
-			 			</td>
-			 		</tr>
-			 		<tr>
-			 			<td width="120px"><@locale code="apps.protocol"/></td>
-			 			<td width="360px">
-			 			</td>
-			 			<td width="120px"><@locale code="apps.protocol"/></td>
+			 			<td width="120px"><@locale code="userinfo.displayName" />:</td>
 			 			<td width="360px">
+			 			     <input class="form-control"  type="text"  id="displayName" name="displayName"  title="" value=""/>
 			 			</td>
 			 		</tr>
+			 		
 			 	</table>
 		 	</form>
 		 </div>
@@ -135,11 +137,11 @@
 				<th data-sortable="true" data-field="id"   data-visible="false">Id</th>
 				<th data-field="username"><@locale code="userinfo.username"/></th>
 				<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
-				<th data-field="createdBy"><@locale code="common.text.createdby"/></th>
+				<th data-field="gender"  data-formatter="genderFormatter" ><@locale code="userinfo.gender"/></th>
+				<th data-field="userType"><@locale code="userinfo.userType"/></th>
+				<th data-field="jobTitle"><@locale code="userinfo.jobTitle"/></th>
+				<th data-field="department"><@locale code="userinfo.department"/></th>
 				<th data-field="createdDate"><@locale code="common.text.createddate"/></th>
-				<th data-field="modifiedBy"><@locale code="common.text.modifiedby"/></th>
-				<th data-field="modifiedDate"><@locale code="common.text.modifieddate"/></th>
-	
 			</tr>
 		</thead>
 	</table>

+ 142 - 0
maxkey-web-manage/src/main/resources/templates/views/historys/connectorHistoryList.ftl

@@ -0,0 +1,142 @@
+<!DOCTYPE HTML>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<#include  "../layout/header.ftl"/>
+	<#include  "../layout/common.cssjs.ftl"/>
+	<script type="text/javascript">	
+
+	</script>
+</head>
+<body> 
+<div class="app header-default side-nav-dark">
+<div class="layout">
+	<div class="header navbar">
+		<#include  "../layout/top.ftl"/>
+	</div>
+	
+	<div class="col-md-3 sidebar-nav side-nav" >
+		<#include  "../layout/sidenav.ftl"/>
+	</div>
+	<div class="page-container">
+	
+	<div class="main-content">
+					<div class="container-fluid">
+
+						<div class="breadcrumb-wrapper row">
+							<div class="col-12 col-lg-3 col-md-6">
+								<h4 class="page-title"><@locale code="navs.audit.connector"/></h4>
+							</div>
+							<div class="col-12 col-lg-9 col-md-6">
+								<ol class="breadcrumb float-right">
+									<li><a href="<@base/>/main"><@locale code="navs.home"/></a></li>
+									<li class="inactive" >/ <@locale code="navs.audit"/></li>
+									<li class="active">/ <@locale code="navs.audit.connector"/></li>
+								</ol>
+							</div>
+						</div>
+
+					</div>
+					<div class="container-fluid">
+					<div class="content-wrapper row">
+					<div class="col-12 grid-margin">
+						<div class="card">
+							<div class="card-body">
+							
+	<div id="tool_box">
+		<table   class="table table-bordered">
+			<tr>
+				<td  width="120px">
+			 		 <@locale code="log.connector.id"/>:
+				</td>
+				<td  width="375px">
+					<form id="basic_search_form">
+				 			<input  class="form-control"  name="id" type="text" style ="width:150px;float:left;">
+				 			<input  class="button btn btn-primary mr-3"    id="searchBtn" type="button" size="50" value="<@locale code="button.text.search"/>">
+				 			<input  class="button btn btn-secondary"  id="advancedSearchExpandBtn" type="button" size="50"  value="<@locale code="button.text.expandsearch"/>" expandValue="<@locale code="button.text.expandsearch"/>"  collapseValue="<@locale code="button.text.collapsesearch"/>">
+					 	</form>
+				</td>
+				<td colspan="2"> 
+					 <div id="tool_box_right">
+					 	
+					</div>
+				</td>
+			</tr>
+		</table>
+ 		
+		
+ 	</div>
+ 	
+ 	<div id="advanced_search">
+ 		<form id="advanced_search_form">
+ 			<table    class="table table-bordered">
+	 			<tr>
+	 				<td width="120px"><@locale code="log.connector.objectName"/></td>
+		 			<td width="360px">
+		 				<input  class="form-control"  name="objectName" type="text" >
+		 			</td>
+		 			<td width="120px"><@locale code="log.connector.result"/></td>
+		 			<td width="360px">
+						<input class="form-control"  type="text" id="result" name="result"  title="" value=""/>
+			 			</td>
+		 			
+			 </tr>
+			 <tr>
+					<td width="120px"><@locale code="common.text.startdate"/></td>
+		 			<td width="360px">
+			 			<input  class="form-control datetimepicker"    type="text" id="startDate" name="startDate"  title="" value=""/>
+			 		</td>
+	 				<td width="120px"><@locale code="common.text.enddate"/></td>
+		 			<td width="360px">
+		 				<input  class="form-control datetimepicker"    type="text" id="endDate" name="endDate"  title="" value=""/>
+		 			</td>
+		 			
+			 </tr>
+			</table>
+ 		</form>
+ 	</div>
+ 	<table 	data-url="<@base />/historys/connectorHistoryList/grid"
+				id="datagrid"
+				data-toggle="table"
+				data-classes="table table-bordered table-hover table-striped"
+				data-pagination="true"
+				data-total-field="records"
+				data-page-list="[10, 25, 50, 100]"
+				data-search="false"
+				data-locale="zh-CN"
+				data-query-params="dataGridQueryParams"
+				data-query-params-type="pageSize"
+				data-side-pagination="server">
+			<thead>
+				<tr>
+					<th data-sortable="true" data-field="id"  data-visible="false"><@locale code="log.connector.id" /></th>
+					<th data-field="conName"  ><@locale	code="log.connector.conName" /></th>
+					<th data-field="conType" ><@locale  code="log.connector.conType" /></th>
+                    <th data-field="sourceId"  ><@locale    code="log.connector.sourceId" /></th>
+                    <th data-field="syncName"  ><@locale    code="log.connector.sourceName" /></th>
+					<th data-field="sourceName" ><@locale	code="log.connector.objectId" /></th>
+					<th data-field="objectName" ><@locale	code="log.connector.objectName" /></th>
+					<th data-field="syncTime" ><@locale	code="log.connector.syncTime" /></th>
+					<th data-field="result" ><@locale  code="log.connector.result" /></th>
+				</tr>
+			</thead>
+		</table>
+</div>
+	
+</div>
+</div>
+					</div>
+<footer class="content-footer">
+					<#include  "../layout/footer.ftl"/>
+</footer>
+
+	</div>
+	
+	</div>
+</div>
+
+<div id="preloader">
+<div class="loader" id="loader-1"></div>
+</div>
+
+</body>
+</html>

+ 6 - 0
maxkey-web-manage/src/main/resources/templates/views/layout/sidenav.ftl

@@ -149,6 +149,12 @@
                  <span class="fa fa-fw fa-eraser"></span>
              </a>
            </li>
+           <li>
+             <a class="side-nav-menu" href="<@base />/historys/connectorHistoryList/">
+                 <@locale code="navs.audit.connector"/>
+                 <span class="fa fa-fw fa-eraser"></span>
+             </a>
+           </li>
 	       <li>
 	         <a class="side-nav-menu" href="<@base />/historys/systemLogsList/">
 	         	  <@locale code="navs.audit.operate"/>

+ 13 - 7
maxkey-web-manage/src/main/resources/templates/views/roleusers/addRoleUsersList.ftl

@@ -10,7 +10,14 @@
   }
 </style>
 <script type="text/javascript">	
-	
+    function genderFormatter(value, row, index){
+        if(value==1){
+            return '<@locale code="userinfo.gender.female" />';
+        }else{
+            return '<@locale code="userinfo.gender.male" />';
+        }
+    };
+    	
 	function afterSubmit(data){
 		//$("#list").trigger('reloadGrid');
 	}
@@ -89,12 +96,11 @@
 				<th data-checkbox="true"></th>
 				<th data-sortable="true" data-field="id"   data-visible="false">Id</th>
 				<th data-field="username"><@locale code="userinfo.username"/></th>
-				<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
-				<th data-field="createdBy"><@locale code="common.text.createdby"/></th>
-				<th data-field="createdDate"><@locale code="common.text.createddate"/></th>
-				<th data-field="modifiedBy"><@locale code="common.text.modifiedby"/></th>
-				<th data-field="modifiedDate"><@locale code="common.text.modifieddate"/></th>
-	
+                <th data-field="displayName"><@locale code="userinfo.displayName"/></th>
+                <th data-field="gender"  data-formatter="genderFormatter" ><@locale code="userinfo.gender"/></th>
+                <th data-field="userType"><@locale code="userinfo.userType"/></th>
+                <th data-field="jobTitle"><@locale code="userinfo.jobTitle"/></th>
+                <th data-field="department"><@locale code="userinfo.department"/></th>
 			</tr>
 		</thead>
 	</table>

+ 47 - 46
maxkey-web-manage/src/main/resources/templates/views/roleusers/roleUsersList.ftl

@@ -4,7 +4,14 @@
 	<#include  "../layout/header.ftl"/>
 	<#include  "../layout/common.cssjs.ftl"/>
 <script type="text/javascript">	
-	
+    function genderFormatter(value, row, index){
+        if(value==1){
+            return '<@locale code="userinfo.gender.female" />';
+        }else{
+            return '<@locale code="userinfo.gender.male" />';
+        }
+    };
+    
 	function afterSubmit(data){
 		$("#list").trigger('reloadGrid');
 	}
@@ -95,55 +102,49 @@
  	    <div id="advanced_search">
  			<form id="advanced_search_form">
 		 		<table  class="datatable">
-		 			<tr>
-			 			<td width="120px"><@locale code="apps.protocol"/></td>
-			 			<td width="360px">
-			 			</td>
-			 			<td width="120px"><@locale code="apps.protocol"/></td>
-			 			<td width="360px">
-			 			</td>
-			 		</tr>
-			 		<tr>
-			 			<td width="120px"><@locale code="apps.protocol"/></td>
-			 			<td width="360px">
-			 			</td>
-			 			<td width="120px"><@locale code="apps.protocol"/></td>
-			 			<td width="360px">
-			 			</td>
-			 		</tr>
-			 	</table>
+                    <tr>
+                        <td width="120px"><@locale code="userinfo.username" />:</td>
+                        <td width="360px">
+                             <input class="form-control"  type="text"  id="username" name="username"  title="" value=""/>
+                        </td>
+                        <td width="120px"><@locale code="userinfo.displayName" />:</td>
+                        <td width="360px">
+                             <input class="form-control"  type="text"  id="displayName" name="displayName"  title="" value=""/>
+                        </td>
+                    </tr>
+                    
+                </table>
 		 	</form>
 		 </div>
 		<div class="mainwrap" id="main">			
 			
-		<table  data-url="<@base/>/rolemembers/queryMemberInRole"
-			id="datagrid"
-				data-toggle="table"
-				data-classes="table table-bordered table-hover table-striped"
-				data-click-to-select="true"
-				data-pagination="true"
-				data-total-field="records"
-				data-page-list="[10, 25, 50, 100]"
-				data-search="false"
-				data-locale="zh-CN"
-				data-query-params="dataGridQueryParams"
-				data-query-params-type="pageSize"
-				data-side-pagination="server">
-		<thead>
-			<tr>
-				<th data-checkbox="true"></th>
-				<th data-sortable="true" data-field="id"   data-visible="false">Id</th>
-				<th data-field="username"><@locale code="userinfo.username"/></th>
-				<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
-				<th data-field="createdBy"><@locale code="common.text.createdby"/></th>
-				<th data-field="createdDate"><@locale code="common.text.createddate"/></th>
-				<th data-field="modifiedBy"><@locale code="common.text.modifiedby"/></th>
-				<th data-field="modifiedDate"><@locale code="common.text.modifieddate"/></th>
-	
-			</tr>
-		</thead>
-	</table>
-	
+        <table  data-url="<@base/>/rolemembers/queryMemberInRole"
+            id="datagrid"
+                data-toggle="table"
+                data-classes="table table-bordered table-hover table-striped"
+                data-click-to-select="true"
+                data-pagination="true"
+                data-total-field="records"
+                data-page-list="[10, 25, 50, 100]"
+                data-search="false"
+                data-locale="zh-CN"
+                data-query-params="dataGridQueryParams"
+                data-query-params-type="pageSize"
+                data-side-pagination="server">
+        <thead>
+            <tr>
+                <th data-checkbox="true"></th>
+                <th data-sortable="true" data-field="id"   data-visible="false">Id</th>
+                <th data-field="username"><@locale code="userinfo.username"/></th>
+                <th data-field="displayName"><@locale code="userinfo.displayName"/></th>
+                <th data-field="gender"  data-formatter="genderFormatter" ><@locale code="userinfo.gender"/></th>
+                <th data-field="userType"><@locale code="userinfo.userType"/></th>
+                <th data-field="jobTitle"><@locale code="userinfo.jobTitle"/></th>
+                <th data-field="department"><@locale code="userinfo.department"/></th>
+                <th data-field="createdDate"><@locale code="common.text.createddate"/></th>
+            </tr>
+        </thead>
+    </table>	
 		</div>
 </div>
 					</div>

+ 1 - 1
maxkey-web-maxkey/src/main/resources/application-https.properties

@@ -179,7 +179,7 @@ maxkey.server.management.uri=${maxkey.server.name}:9521/maxkey-mgt/login
 #InMemory 0 , Redis 2 
 maxkey.server.persistence=0
 #identity
-maxkey.identity.kafkasupport=false
+maxkey.identity.kafkasupport=true
 
 maxkey.app.issuer=CN=ConSec,CN=COM,CN=SH
 ############################################################################

+ 1 - 1
maxkey-web-maxkey/src/main/resources/messages/message.properties

@@ -281,6 +281,6 @@ navs.myprofile=\u6211\u7684\u8d44\u6599
 navs.audit=\u5ba1\u8ba1
 navs.audit.login=\u767b\u5f55\u65e5\u5fd7
 navs.audit.signon=\u8bbf\u95ee\u65e5\u5fd7
-navs.audit.operation=\u64cd\u4f5c\u65e5\u5fd7
+navs.audit.operation=\u7BA1\u7406\u65e5\u5fd7
 
 home.notices=\u901A\u77E5\u516C\u544A

+ 1 - 1
maxkey-web-maxkey/src/main/resources/messages/message_en.properties

@@ -282,5 +282,5 @@ navs.myprofile=My Profile
 navs.audit=Audit
 navs.audit.login=Login
 navs.audit.signon=Sign-on
-navs.audit.operation=Operation
+navs.audit.operation=Management
 home.notices=Notices

+ 1 - 1
maxkey-web-maxkey/src/main/resources/messages/message_zh_CN.properties

@@ -281,6 +281,6 @@ navs.myprofile=\u6211\u7684\u8d44\u6599
 navs.audit=\u5ba1\u8ba1
 navs.audit.login=\u767b\u5f55\u65e5\u5fd7
 navs.audit.signon=\u8bbf\u95ee\u65e5\u5fd7
-navs.audit.operation=\u64cd\u4f5c\u65e5\u5fd7
+navs.audit.operation=\u7BA1\u7406\u65e5\u5fd7
 
 home.notices=\u901A\u77E5\u516C\u544A