From 6603c6f4a133c76e2781515cdededf1af2ae41b6 Mon Sep 17 00:00:00 2001 From: nanChen Date: Sun, 11 Jan 2026 15:33:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AC=A1=E6=8F=90=E4=BA=A4=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- haobang-security-xdr/.idea/compiler.xml | 22 + haobang-security-xdr/.idea/encodings.xml | 11 + ..._ch_qos_logback_logback_classic_1_2_11.xml | 13 + ...en__ch_qos_logback_logback_core_1_2_11.xml | 13 + .../Maven__cn_hutool_hutool_all_5_8_16.xml | 13 + ...stic_clients_elasticsearch_java_7_17_6.xml | 13 + ...com_alibaba_fastjson2_fastjson2_2_0_40.xml | 13 + .../Maven__com_alibaba_fastjson_1_2_83.xml | 13 + ...ven__com_baomidou_mybatis_plus_3_5_3_1.xml | 13 + ...omidou_mybatis_plus_annotation_3_5_3_1.xml | 13 + ...idou_mybatis_plus_boot_starter_3_5_3_1.xml | 13 + ...com_baomidou_mybatis_plus_core_3_5_3_1.xml | 13 + ...aomidou_mybatis_plus_extension_3_5_3_1.xml | 13 + .../Maven__com_carrotsearch_hppc_0_8_1.xml | 13 + .../Maven__com_fasterxml_classmate_1_5_1.xml | 13 + ...ackson_core_jackson_annotations_2_13_3.xml | 13 + ...ackson_core_jackson_annotations_2_13_4.xml | 13 + ...erxml_jackson_core_jackson_core_2_13_3.xml | 13 + ...erxml_jackson_core_jackson_core_2_13_4.xml | 13 + ...l_jackson_core_jackson_databind_2_13_3.xml | 13 + ...aformat_jackson_dataformat_cbor_2_13_4.xml | 13 + ...format_jackson_dataformat_smile_2_13_4.xml | 13 + ...aformat_jackson_dataformat_yaml_2_13_4.xml | 13 + ..._datatype_jackson_datatype_jdk8_2_13_4.xml | 13 + ...atatype_jackson_datatype_jsr310_2_13_4.xml | 13 + ..._jackson_module_parameter_names_2_13_4.xml | 13 + ...__com_github_jsqlparser_jsqlparser_4_5.xml | 13 + ...ven__com_github_luben_zstd_jni_1_5_2_1.xml | 13 + ...com_github_pagehelper_pagehelper_5_3_2.xml | 13 + ...helper_spring_boot_autoconfigure_1_4_6.xml | 13 + ...r_pagehelper_spring_boot_starter_1_4_6.xml | 13 + ..._spullara_mustache_java_compiler_0_9_6.xml | 13 + ..._com_google_code_findbugs_jsr305_3_0_2.xml | 13 + ...Maven__com_google_code_gson_gson_2_9_1.xml | 13 + ...om_influxdb_influxdb_client_core_6_9_0.xml | 13 + ...om_influxdb_influxdb_client_java_6_9_0.xml | 13 + ...m_influxdb_influxdb_client_utils_6_9_0.xml | 13 + ...n__com_jayway_jsonpath_json_path_2_7_0.xml | 13 + ...om_mchange_mchange_commons_java_0_2_15.xml | 13 + ...reup_okhttp3_logging_interceptor_4_9_3.xml | 13 + ...ven__com_squareup_okhttp3_okhttp_4_9_3.xml | 13 + .../Maven__com_squareup_okio_okio_3_3_0.xml | 13 + ...aven__com_squareup_okio_okio_jvm_3_3_0.xml | 13 + ...uareup_retrofit2_adapter_rxjava3_2_9_0.xml | 13 + ...quareup_retrofit2_converter_gson_2_9_0.xml | 13 + ...reup_retrofit2_converter_scalars_2_9_0.xml | 13 + ..._com_squareup_retrofit2_retrofit_2_9_0.xml | 13 + .../Maven__com_tdunning_t_digest_3_2.xml | 13 + .../Maven__com_typesafe_config_1_4_2.xml | 13 + ...ogle_android_json_0_0_20131108_vaadin1.xml | 13 + .../Maven__com_zaxxer_HikariCP_4_0_3.xml | 13 + ...aven__commons_codec_commons_codec_1_15.xml | 13 + ..._io_lettuce_lettuce_core_6_1_9_RELEASE.xml | 13 + ...Maven__io_netty_netty_all_4_1_92_Final.xml | 13 + ...en__io_netty_netty_buffer_4_1_82_Final.xml | 13 + ...en__io_netty_netty_buffer_4_1_92_Final.xml | 13 + ...ven__io_netty_netty_codec_4_1_82_Final.xml | 13 + ...ven__io_netty_netty_codec_4_1_92_Final.xml | 13 + ..._io_netty_netty_codec_dns_4_1_92_Final.xml | 13 + ...netty_netty_codec_haproxy_4_1_92_Final.xml | 13 + ...o_netty_netty_codec_http2_4_1_92_Final.xml | 13 + ...io_netty_netty_codec_http_4_1_92_Final.xml | 13 + ...etty_netty_codec_memcache_4_1_92_Final.xml | 13 + ...io_netty_netty_codec_mqtt_4_1_92_Final.xml | 13 + ...o_netty_netty_codec_redis_4_1_92_Final.xml | 13 + ...io_netty_netty_codec_smtp_4_1_92_Final.xml | 13 + ...o_netty_netty_codec_socks_4_1_92_Final.xml | 13 + ...o_netty_netty_codec_stomp_4_1_92_Final.xml | 13 + ..._io_netty_netty_codec_xml_4_1_92_Final.xml | 13 + ...en__io_netty_netty_common_4_1_82_Final.xml | 13 + ...en__io_netty_netty_common_4_1_92_Final.xml | 13 + ...n__io_netty_netty_handler_4_1_82_Final.xml | 13 + ...n__io_netty_netty_handler_4_1_92_Final.xml | 13 + ...netty_netty_handler_proxy_4_1_92_Final.xml | 13 + ...ty_netty_handler_ssl_ocsp_4_1_92_Final.xml | 13 + ...__io_netty_netty_resolver_4_1_82_Final.xml | 13 + ...__io_netty_netty_resolver_4_1_92_Final.xml | 13 + ..._netty_netty_resolver_dns_4_1_92_Final.xml | 13 + ...esolver_dns_classes_macos_4_1_92_Final.xml | 13 + ...native_macos_osx_aarch_64_4_1_92_Final.xml | 13 + ...s_native_macos_osx_x86_64_4_1_92_Final.xml | 13 + ..._io_netty_netty_transport_4_1_82_Final.xml | 13 + ..._io_netty_netty_transport_4_1_92_Final.xml | 13 + ...y_transport_classes_epoll_4_1_92_Final.xml | 13 + ..._transport_classes_kqueue_4_1_92_Final.xml | 13 + ...tive_epoll_linux_aarch_64_4_1_92_Final.xml | 13 + ...native_epoll_linux_x86_64_4_1_92_Final.xml | 13 + ...ative_kqueue_osx_aarch_64_4_1_92_Final.xml | 13 + ..._native_kqueue_osx_x86_64_4_1_92_Final.xml | 13 + ...nsport_native_unix_common_4_1_82_Final.xml | 13 + ...nsport_native_unix_common_4_1_92_Final.xml | 13 + ...etty_netty_transport_rxtx_4_1_92_Final.xml | 13 + ...etty_netty_transport_sctp_4_1_92_Final.xml | 13 + ...netty_netty_transport_udt_4_1_92_Final.xml | 13 + ..._io_projectreactor_reactor_core_3_4_23.xml | 13 + ...ven__io_reactivex_rxjava3_rxjava_3_1_6.xml | 13 + ...ctivation_jakarta_activation_api_1_2_2.xml | 13 + ...nnotation_jakarta_annotation_api_1_3_5.xml | 13 + ...n__jakarta_json_jakarta_json_api_1_1_6.xml | 13 + ...alidation_jakarta_validation_api_2_0_2.xml | 13 + ...ta_xml_bind_jakarta_xml_bind_api_2_3_3.xml | 13 + .../Maven__joda_time_joda_time_2_9_9.xml | 13 + ...aven__net_bytebuddy_byte_buddy_1_12_17.xml | 13 + ...net_bytebuddy_byte_buddy_agent_1_12_17.xml | 13 + .../Maven__net_java_dev_jna_jna_5_10_0.xml | 13 + ...ven__net_minidev_accessors_smart_2_4_8.xml | 13 + .../Maven__net_minidev_json_smart_2_4_8.xml | 13 + ...__net_sf_jopt_simple_jopt_simple_5_0_2.xml | 13 + ..._org_apache_commons_commons_csv_1_10_0.xml | 13 + ...rg_apache_commons_commons_lang3_3_12_0.xml | 13 + ...e_httpcomponents_httpasyncclient_4_1_5.xml | 13 + ...pache_httpcomponents_httpclient_4_5_13.xml | 13 + ..._apache_httpcomponents_httpcore_4_4_15.xml | 13 + ...che_httpcomponents_httpcore_nio_4_4_15.xml | 13 + ...__org_apache_kafka_kafka_clients_3_4_0.xml | 13 + ..._apache_logging_log4j_log4j_api_2_17_2.xml | 13 + ...he_logging_log4j_log4j_to_slf4j_2_17_2.xml | 13 + ..._lucene_lucene_analyzers_common_8_11_1.xml | 13 + ...e_lucene_lucene_backward_codecs_8_11_1.xml | 13 + ...__org_apache_lucene_lucene_core_8_11_1.xml | 13 + ...g_apache_lucene_lucene_grouping_8_11_1.xml | 13 + ...pache_lucene_lucene_highlighter_8_11_1.xml | 13 + ...__org_apache_lucene_lucene_join_8_11_1.xml | 13 + ...org_apache_lucene_lucene_memory_8_11_1.xml | 13 + ...__org_apache_lucene_lucene_misc_8_11_1.xml | 13 + ...rg_apache_lucene_lucene_queries_8_11_1.xml | 13 + ...pache_lucene_lucene_queryparser_8_11_1.xml | 13 + ...rg_apache_lucene_lucene_sandbox_8_11_1.xml | 13 + ..._apache_lucene_lucene_spatial3d_8_11_1.xml | 13 + ...rg_apache_lucene_lucene_suggest_8_11_1.xml | 13 + ..._tomcat_embed_tomcat_embed_core_9_0_65.xml | 13 + ...he_tomcat_embed_tomcat_embed_el_9_0_65.xml | 13 + ...at_embed_tomcat_embed_websocket_9_0_65.xml | 13 + ..._org_apiguardian_apiguardian_api_1_1_2.xml | 13 + ...Maven__org_assertj_assertj_core_3_22_0.xml | 13 + ...rg_checkerframework_checker_qual_3_5_0.xml | 13 + ...ven__org_eclipse_parsson_parsson_1_0_0.xml | 13 + ...lient_elasticsearch_rest_client_7_17_6.xml | 13 + ...icsearch_rest_high_level_client_7_17_6.xml | 13 + ...org_elasticsearch_elasticsearch_7_17_6.xml | 13 + ...elasticsearch_elasticsearch_cli_7_17_6.xml | 13 + ...lasticsearch_elasticsearch_core_7_17_6.xml | 13 + ...elasticsearch_elasticsearch_geo_7_17_6.xml | 13 + ...elasticsearch_elasticsearch_lz4_7_17_6.xml | 13 + ...lasticsearch_plugin_classloader_7_17_6.xml | 13 + ...csearch_elasticsearch_secure_sm_7_17_6.xml | 13 + ...csearch_elasticsearch_x_content_7_17_6.xml | 13 + ...plugin_aggs_matrix_stats_client_7_17_6.xml | 13 + ...rch_plugin_lang_mustache_client_7_17_6.xml | 13 + ...rch_plugin_mapper_extras_client_7_17_6.xml | 13 + ...earch_plugin_parent_join_client_7_17_6.xml | 13 + ...csearch_plugin_rank_eval_client_7_17_6.xml | 13 + .../Maven__org_graylog2_syslog4j_0_9_61.xml | 13 + .../Maven__org_hamcrest_hamcrest_2_2.xml | 13 + ...n__org_hdrhistogram_HdrHistogram_2_1_9.xml | 13 + ...idator_hibernate_validator_6_2_5_Final.xml | 13 + ...boss_logging_jboss_logging_3_4_3_Final.xml | 13 + .../Maven__org_jetbrains_annotations_13_0.xml | 13 + ..._jetbrains_kotlin_kotlin_stdlib_1_6_21.xml | 13 + ...ins_kotlin_kotlin_stdlib_common_1_6_21.xml | 13 + ...rains_kotlin_kotlin_stdlib_jdk7_1_6_21.xml | 13 + ...rains_kotlin_kotlin_stdlib_jdk8_1_6_21.xml | 13 + .../Maven__org_json_json_20231013.xml | 13 + ..._org_junit_jupiter_junit_jupiter_5_8_2.xml | 13 + ..._org_junit_jupiter_junit_jupiter_5_9_2.xml | 13 + ..._junit_jupiter_junit_jupiter_api_5_8_2.xml | 13 + ...nit_jupiter_junit_jupiter_engine_5_8_2.xml | 13 + ...nit_jupiter_junit_jupiter_params_5_8_2.xml | 13 + ..._platform_junit_platform_commons_1_8_2.xml | 13 + ...t_platform_junit_platform_engine_1_8_2.xml | 13 + .../Maven__org_lz4_lz4_java_1_8_0.xml | 13 + .../Maven__org_mockito_mockito_core_4_5_1.xml | 13 + ...rg_mockito_mockito_junit_jupiter_4_5_1.xml | 13 + .../Maven__org_mybatis_mybatis_3_5_10.xml | 13 + ...aven__org_mybatis_mybatis_spring_2_1_1.xml | 13 + ...ybatis_spring_boot_autoconfigure_2_3_1.xml | 13 + ...boot_mybatis_spring_boot_starter_2_3_1.xml | 13 + .../Maven__org_objenesis_objenesis_3_2.xml | 13 + ...Maven__org_opentest4j_opentest4j_1_2_0.xml | 13 + .../libraries/Maven__org_ow2_asm_asm_9_1.xml | 13 + ...aven__org_postgresql_postgresql_42_5_4.xml | 13 + ...aven__org_projectlombok_lombok_1_18_24.xml | 13 + ...ven__org_quartz_scheduler_quartz_2_3_2.xml | 13 + ...reactivestreams_reactive_streams_1_0_4.xml | 13 + ...aven__org_skyscreamer_jsonassert_1_5_1.xml | 13 + .../Maven__org_slf4j_jul_to_slf4j_1_7_36.xml | 13 + .../Maven__org_slf4j_slf4j_api_1_7_36.xml | 13 + .../Maven__org_slf4j_slf4j_simple_2_0_7.xml | 13 + ...springframework_boot_spring_boot_2_7_4.xml | 13 + ...k_boot_spring_boot_autoconfigure_2_7_4.xml | 13 + ...amework_boot_spring_boot_starter_2_7_4.xml | 13 + ...k_boot_spring_boot_starter_cache_2_7_4.xml | 13 + ..._boot_starter_data_elasticsearch_2_7_4.xml | 13 + ...t_spring_boot_starter_data_redis_2_7_4.xml | 13 + ...rk_boot_spring_boot_starter_jdbc_2_7_4.xml | 13 + ...rk_boot_spring_boot_starter_json_2_7_4.xml | 13 + ...boot_spring_boot_starter_logging_2_7_4.xml | 13 + ..._boot_spring_boot_starter_quartz_2_7_4.xml | 13 + ...rk_boot_spring_boot_starter_test_2_7_4.xml | 13 + ..._boot_spring_boot_starter_tomcat_2_7_4.xml | 13 + ...t_spring_boot_starter_validation_2_7_4.xml | 13 + ...ork_boot_spring_boot_starter_web_2_7_4.xml | 13 + ...gframework_boot_spring_boot_test_2_7_4.xml | 13 + ...t_spring_boot_test_autoconfigure_2_7_4.xml | 13 + ...amework_data_spring_data_commons_2_7_3.xml | 13 + ...k_data_spring_data_elasticsearch_4_4_3.xml | 13 + ...mework_data_spring_data_keyvalue_2_7_3.xml | 13 + ...framework_data_spring_data_redis_2_7_3.xml | 13 + ...ringframework_kafka_spring_kafka_2_8_9.xml | 13 + ...ringframework_retry_spring_retry_1_3_3.xml | 13 + ..._org_springframework_spring_aop_5_3_23.xml | 13 + ...rg_springframework_spring_beans_5_3_23.xml | 13 + ..._springframework_spring_context_5_3_23.xml | 13 + ...ramework_spring_context_support_5_3_23.xml | 13 + ...org_springframework_spring_core_5_3_23.xml | 13 + ...ringframework_spring_expression_5_3_23.xml | 13 + ..._org_springframework_spring_jcl_5_3_23.xml | 13 + ...org_springframework_spring_jdbc_5_3_23.xml | 13 + ...pringframework_spring_messaging_5_3_23.xml | 13 + ..._org_springframework_spring_oxm_5_3_23.xml | 13 + ...org_springframework_spring_test_5_3_23.xml | 13 + ...__org_springframework_spring_tx_5_3_23.xml | 13 + ..._org_springframework_spring_web_5_3_23.xml | 13 + ...g_springframework_spring_webmvc_5_3_23.xml | 13 + ..._org_xerial_snappy_snappy_java_1_1_8_4.xml | 13 + .../Maven__org_xmlunit_xmlunit_core_2_9_0.xml | 13 + .../Maven__org_yaml_snakeyaml_1_30.xml | 13 + haobang-security-xdr/.idea/misc.xml | 13 + haobang-security-xdr/.idea/modules.xml | 11 + haobang-security-xdr/.idea/uiDesigner.xml | 124 ++ haobang-security-xdr/.idea/workspace.xml | 1496 ++++++++++++++ haobang-security-xdr/haobang-security-xdr.iml | 63 + haobang-security-xdr/hb-security-xdr.iml | 63 + .../logs/syslog-client.2025-12-01.log | 8 + haobang-security-xdr/logs/syslog-client.log | 4 + haobang-security-xdr/logs/syslog-consumer.log | 1756 +++++++++++++++++ .../logs/syslog-serve.2026-01-09.log | 132 ++ haobang-security-xdr/logs/syslog-serve.log | 31 + haobang-security-xdr/pom.xml | 106 + haobang-security-xdr/syslog-client/.gitignore | 33 + .../logs/syslog-client.2025-12-17.log | 9 + .../logs/syslog-client.2025-12-22.log | 9 + .../syslog-client/logs/syslog-client.log | 9 + haobang-security-xdr/syslog-client/mvnw | 316 +++ haobang-security-xdr/syslog-client/mvnw.cmd | 188 ++ haobang-security-xdr/syslog-client/pom.xml | 61 + .../java/com/haobang/syslog/ClientClass.java | 77 + .../com/haobang/syslog/MySyslogClient.java | 38 + .../syslog/syslogClientApplication.java | 26 + .../src/main/resources/application.properties | 1 + .../src/main/resources/logback.xml | 42 + .../SysjavacollectApplicationTests.java | 13 + .../syslog-consumer/Dockerfile | 16 + .../syslog-consumer/doc/程序描述.md | 14 + .../syslog-consumer/docker_run.txt | 25 + haobang-security-xdr/syslog-consumer/pom.xml | 210 ++ .../java/com/Modules/Device/deviceInfo.java | 4 + .../NormalData/LogNormalProcessor.java | 568 ++++++ .../Modules/NormalData/SysLogProcessor.java | 404 ++++ .../com/Modules/NormalData/logNormalData.java | 163 ++ .../com/Modules/etl/TimeWindowCalculator.java | 77 + .../etl/handler/ArrayByteTypeHandler.java | 47 + .../etl/handler/ArrayIntegerTypeHandler.java | 43 + .../etl/handler/ArrayStringTypeHandler.java | 43 + .../Modules/etl/handler/ETLRetryHandler.java | 36 + .../etl/handler/TimestamptzTypeHandler.java | 67 + .../main/java/com/common/entity/Alarm.java | 78 + .../java/com/common/entity/AlarmVisit.java | 78 + .../java/com/common/entity/ApiResponse.java | 75 + .../main/java/com/common/entity/AppLog.java | 74 + .../java/com/common/entity/AppLogEntity.java | 40 + .../com/common/entity/DeviceCollectTask.java | 98 + .../common/entity/DeviceCollectTaskTime.java | 11 + .../com/common/entity/DeviceReceiveLog.java | 65 + .../com/common/entity/DeviceStatsDTO.java | 14 + .../main/java/com/common/entity/DmColumn.java | 131 ++ .../com/common/entity/DmNormalizeRule.java | 131 ++ .../com/common/entity/GroupedSyslogData.java | 35 + .../com/common/entity/RFC3164Message.java | 16 + .../com/common/entity/RFC5424Message.java | 29 + .../common/entity/RuleContent/ActionType.java | 46 + .../entity/RuleContent/CompleteColumn.java | 26 + .../RuleContent/Complete_paramsType.java | 37 + .../RuleContent/Cropper_paramsType.java | 46 + .../entity/RuleContent/FilterParam.java | 22 + .../entity/RuleContent/FiltersType.java | 9 + .../entity/RuleContent/MappersType.java | 91 + .../com/common/entity/RuleContent/Root.java | 140 ++ .../entity/RuleContent/RuleContent.java | 139 ++ .../entity/RuleContent/kv_paramsType.java | 11 + .../common/entity/SecExceptionAlgorithm.java | 27 + .../java/com/common/entity/SyslogMessage.java | 47 + .../common/entity/SyslogNonNormalMessage.java | 162 ++ .../com/common/entity/SyslogNormalAlarm.java | 383 ++++ .../com/common/entity/SyslogNormalData.java | 381 ++++ .../java/com/common/entity/SyslogRequest.java | 90 + .../java/com/common/entity/XdrHoneypot.java | 260 +++ .../java/com/common/mapper/AlarmMapper.java | 80 + .../com/common/mapper/AlarmVisitMapper.java | 84 + .../java/com/common/mapper/AppLogMapper.java | 41 + .../mapper/DeviceCollectTaskMapper.java | 192 ++ .../common/mapper/DeviceReceiveLogMapper.java | 124 ++ .../com/common/mapper/DmColumnMapper.java | 70 + .../common/mapper/DmNormalizeRuleMapper.java | 46 + .../mapper/SecExceptionAlgorithmMapper.java | 18 + .../mapper/SyslogNonNormalMessageMapper.java | 88 + .../mapper/SyslogNormalAlarmMapper.java | 84 + .../common/mapper/SyslogNormalDataMapper.java | 101 + .../com/common/mapper/XdrHoneypotMapper.java | 108 + .../com/common/schedule/ETLOrchestrator.java | 115 ++ .../schedule/PartitionTableSchedule.java | 122 ++ .../com/common/schedule/ScheduledTask.java | 58 + .../common/service/AccessLogAlertService.java | 397 ++++ .../com/common/service/AppLogRepository.java | 27 + .../com/common/service/ApplogService.java | 68 + .../com/common/service/DataExtractor.java | 210 ++ .../java/com/common/service/DataLoader.java | 120 ++ .../com/common/service/DataTransformer.java | 299 +++ .../service/DeviceCollectTaskService.java | 136 ++ .../DeviceCollectTaskUpdateService.java | 251 +++ .../service/DeviceReceiveLogService.java | 35 + .../service/DeviceStatsUpdateService.java | 189 ++ .../com/common/service/DmColumnService.java | 29 + .../service/DmNormalizeRuleService.java | 101 + .../common/service/ElasticsearchService.java | 165 ++ .../com/common/service/EsToDbSyncService.java | 132 ++ .../common/service/InfluxSyslogService.java | 212 ++ .../service/LogDataCompleteService.java | 258 +++ .../common/service/LogDataFilterService.java | 204 ++ .../common/service/PartitionTableService.java | 227 +++ .../SyslogNonNormalMessageService.java | 82 + .../service/SyslogNormalDataService.java | 132 ++ .../com/common/service/SyslogService.java | 183 ++ .../impl/DeviceReceiveLogServiceImpl.java | 161 ++ .../service/impl/DmColumnServiceImpl.java | 94 + .../SyslogNonNormalMessageServiceImpl.java | 219 ++ .../common/util/AlgorithmResultParser.java | 323 +++ .../main/java/com/common/util/JsonParser.java | 351 ++++ .../java/com/common/util/KeyValueParser.java | 135 ++ .../java/com/common/util/KvTextParser.java | 145 ++ .../java/com/common/util/MyBatisUtil.java | 89 + .../com/common/util/NestedJsonParserUtil.java | 510 +++++ .../java/com/common/util/NestedJsonUtils.java | 169 ++ .../java/com/common/util/RegexTextParser.java | 204 ++ .../com/common/util/SpringContextUtil.java | 34 + .../com/common/util/StringExtractorUtil.java | 285 +++ .../java/com/common/util/SyslogParser.java | 355 ++++ .../java/com/common/util/TextParserUtil.java | 115 ++ .../src/main/java/com/config/AppConfig.java | 105 + .../src/main/java/com/config/CacheConfig.java | 120 ++ .../src/main/java/com/config/RedisConfig.java | 59 + .../java/com/config/RestTemplateConfig.java | 74 + .../main/java/com/config/ScheduleConfig.java | 11 + .../java/com/config/ThreadPoolConfig.java | 47 + .../src/main/java/com/config/WebConfig.java | 56 + .../com/controllers/AppLogController.java | 33 + .../java/com/controllers/CacheController.java | 219 ++ .../com/controllers/DmColumnController.java | 77 + .../java/com/controllers/ETLController.java | 57 + .../controllers/GlobalExceptionHandler.java | 49 + .../controllers/PartitionTableController.java | 114 ++ .../com/controllers/SyslogController.java | 390 ++++ .../SyslogNonNormalMessageController.java | 148 ++ .../com/controllers/SyslogPushController.java | 122 ++ .../main/java/com/influx/InfluxDBClient.java | 233 +++ .../main/java/com/influx/InfluxDBConfig.java | 18 + .../java/com/influx/SyslogToInfluxApp.java | 68 + .../java/com/influx/dto/SyslogQueryDto.java | 24 + .../main/java/com/kafka/kafkalogconsumer.java | 158 ++ .../java/com/kafka/kafkalogconsumerThead.java | 156 ++ .../src/main/java/com/syslogApplication.java | 142 ++ .../main/resources/application-dev.properties | 125 ++ .../resources/application-prod-zc.properties | 124 ++ .../resources/application-prod.properties | 126 ++ .../resources/application-test.properties | 85 + .../src/main/resources/application.properties | 125 ++ .../src/main/resources/logback.xml | 39 + .../main/resources/mapper/AppLogMapper.xml | 22 + .../mapper/DeviceCollectTaskMapper.xml | 67 + .../mapper/DeviceReceiveLogMapper.xml | 164 ++ .../main/resources/mapper/DmColumnMapper.xml | 95 + .../mapper/DmNormalizeRuleMapper.xml | 160 ++ .../mapper/SecExceptionAlgorithmMapper.xml | 67 + .../mapper/SyslogNonNormalMessageMapper.xml | 146 ++ .../mapper/SyslogNormalAlarmMapper.xml | 789 ++++++++ .../mapper/SyslogNormalDataMapper.xml | 925 +++++++++ .../resources/mapper/XdrHoneypotMapper.xml | 48 + .../src/main/resources/mybatis-config-dev.xml | 52 + .../src/main/resources/mybatis-config.xml | 57 + .../src/test/java/SyslogParserDemo.java | 78 + .../src/test/java/syslogMainTest.java | 2 + .../syslog-consumer/syslogconsumer.iml | 217 ++ haobang-security-xdr/syslog-serve/.gitignore | 33 + haobang-security-xdr/syslog-serve/Dockerfile | 18 + .../syslog-serve/docker_run.txt | 46 + .../syslog-serve/logs/syslog-consumer.log | 7 + .../logs/syslog-serve-console.log | 4 + .../syslog-serve/logs/syslog-serve.log | 13 + haobang-security-xdr/syslog-serve/mvnw | 316 +++ haobang-security-xdr/syslog-serve/mvnw.cmd | 188 ++ haobang-security-xdr/syslog-serve/pom.xml | 200 ++ .../com/Modules/Device/DeviceProcess.java | 162 ++ .../DeviceCollect/DeviceCollectProcess.java | 4 + .../src/main/java/com/SyslogServeMainApp.java | 39 + .../common/controller/CacheController.java | 22 + .../DeviceCollectTaskController.java | 136 ++ .../controller/DeviceDeviceController.java | 49 + .../controller/DeviceUnknownController.java | 135 ++ .../com/common/entity/DeviceCollectTask.java | 99 + .../java/com/common/entity/DeviceDevice.java | 376 ++++ .../com/common/entity/DeviceReceiveLog.java | 68 + .../java/com/common/entity/DeviceUnknown.java | 70 + .../mapper/DeviceCollectTaskMapper.java | 143 ++ .../com/common/mapper/DeviceDeviceMapper.java | 93 + .../common/mapper/DeviceReceiveLogMapper.java | 78 + .../common/mapper/DeviceUnknownMapper.java | 110 ++ .../service/DeviceCollectTaskService.java | 136 ++ .../common/service/DeviceDeviceService.java | 31 + .../service/DeviceReceiveLogService.java | 35 + .../common/service/DeviceUnknownService.java | 108 + .../service/impl/DeviceDeviceServiceImpl.java | 103 + .../impl/DeviceReceiveLogServiceImpl.java | 159 ++ .../impl/DeviceUnknownServiceImpl.java | 286 +++ .../src/main/java/com/config/CacheConfig.java | 106 + .../src/main/java/com/config/RedisConfig.java | 58 + .../java/com/haobang/config/AppConfig.java | 132 ++ .../java/com/haobang/config/SyslogConfig.java | 63 + .../com/haobang/syslog/MySyslogClient.java | 40 + .../com/haobang/syslog/MySyslogServer.java | 58 + .../com/haobang/syslog/TestSyslogServer.java | 47 + .../java/com/haobang/util/DeviceInfoUtil.java | 118 ++ .../java/com/haobang/util/SafeCacheUtil.java | 108 + .../com/haobang/util/SpringContextUtil.java | 34 + .../main/java/com/haobang/util/TimeUtils.java | 45 + .../main/java/com/kafka/kafkaConsumer.java | 62 + .../main/java/com/kafka/kafkaProducer.java | 170 ++ .../main/java/com/netty/SyslogMessage.java | 75 + .../java/com/netty/SyslogMessageHandler.java | 149 ++ .../src/main/java/com/netty/SyslogServer.java | 84 + .../main/java/com/netty/SyslogServerBoth.java | 202 ++ .../netty/SyslogTcpChannelInitializer.java | 36 + .../netty/SyslogUdpChannelInitializer.java | 25 + .../main/resources/application-dev.properties | 57 + .../resources/application-prod-zc.properties | 56 + .../resources/application-prod.properties | 55 + .../resources/application-test.properties | 59 + .../src/main/resources/application.properties | 57 + .../src/main/resources/logback.xml | 55 + .../mapper/DeviceCollectTaskMapper.xml | 67 + .../resources/mapper/DeviceDeviceMapper.xml | 238 +++ .../mapper/DeviceReceiveLogMapper.xml | 175 ++ .../resources/mapper/DeviceUnknownMapper.xml | 294 +++ .../SysjavacollectApplicationTests.java | 13 + .../syslog-serve/start-syslog-serve.sh | 56 + .../syslog-serve/stop-syslog-serve.sh | 48 + 455 files changed, 32175 insertions(+) create mode 100644 haobang-security-xdr/.idea/compiler.xml create mode 100644 haobang-security-xdr/.idea/encodings.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_11.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_11.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__cn_hutool_hutool_all_5_8_16.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__co_elastic_clients_elasticsearch_java_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_alibaba_fastjson2_fastjson2_2_0_40.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_alibaba_fastjson_1_2_83.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_5_3_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_5_3_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_5_3_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_5_3_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_5_3_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_carrotsearch_hppc_0_8_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_cbor_2_13_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_smile_2_13_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_yaml_2_13_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_4_5.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_github_luben_zstd_jni_1_5_2_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_3_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_4_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_4_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_github_spullara_mustache_java_compiler_0_9_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_google_code_gson_gson_2_9_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_core_6_9_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_java_6_9_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_utils_6_9_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_7_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_mchange_mchange_commons_java_0_2_15.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_squareup_okhttp3_logging_interceptor_4_9_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_4_9_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_squareup_okio_okio_3_3_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_squareup_okio_okio_jvm_3_3_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_adapter_rxjava3_2_9_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_converter_gson_2_9_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_converter_scalars_2_9_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_retrofit_2_9_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_tdunning_t_digest_3_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_typesafe_config_1_4_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_lettuce_lettuce_core_6_1_9_RELEASE.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_all_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_buffer_4_1_82_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_buffer_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_4_1_82_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_haproxy_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_memcache_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_mqtt_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_redis_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_smtp_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_stomp_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_xml_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_common_4_1_82_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_common_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_4_1_82_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_ssl_ocsp_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_4_1_82_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_aarch_64_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_4_1_82_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_aarch_64_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_aarch_64_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_82_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_rxtx_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_sctp_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_udt_4_1_92_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__io_reactivex_rxjava3_rxjava_3_1_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__jakarta_json_jakarta_json_api_1_1_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_12_17.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_12_17.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__net_java_dev_jna_jna_5_10_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__net_sf_jopt_simple_jopt_simple_5_0_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_commons_commons_csv_1_10_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpasyncclient_4_1_5.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_15.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_nio_4_4_15.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_kafka_kafka_clients_3_4_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_analyzers_common_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_backward_codecs_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_core_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_grouping_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_highlighter_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_join_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_memory_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_misc_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_queries_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_queryparser_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_sandbox_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_spatial3d_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_suggest_8_11_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_65.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_65.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_65.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_assertj_assertj_core_3_22_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_checkerframework_checker_qual_3_5_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_eclipse_parsson_parsson_1_0_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_client_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_high_level_client_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_cli_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_core_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_geo_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_lz4_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_plugin_classloader_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_secure_sm_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_x_content_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_aggs_matrix_stats_client_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_lang_mustache_client_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_mapper_extras_client_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_parent_join_client_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_rank_eval_client_7_17_6.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_graylog2_syslog4j_0_9_61.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_2_5_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_3_Final.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_annotations_13_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_1_6_21.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_21.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_21.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_21.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_json_json_20231013.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_9_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_lz4_lz4_java_1_8_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_mockito_mockito_core_4_5_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_5_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_mybatis_mybatis_3_5_10.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_1_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_3_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_3_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_postgresql_postgresql_42_5_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_quartz_scheduler_quartz_2_3_2.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_1.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_slf4j_slf4j_simple_2_0_7.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_elasticsearch_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_quartz_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_7_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_7_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_elasticsearch_4_4_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_7_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_7_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_kafka_spring_kafka_2_8_9.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_3_3.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_aop_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_beans_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_context_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_context_support_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_core_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_expression_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_messaging_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_oxm_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_test_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_tx_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_web_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_23.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_xerial_snappy_snappy_java_1_1_8_4.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_9_0.xml create mode 100644 haobang-security-xdr/.idea/libraries/Maven__org_yaml_snakeyaml_1_30.xml create mode 100644 haobang-security-xdr/.idea/misc.xml create mode 100644 haobang-security-xdr/.idea/modules.xml create mode 100644 haobang-security-xdr/.idea/uiDesigner.xml create mode 100644 haobang-security-xdr/.idea/workspace.xml create mode 100644 haobang-security-xdr/haobang-security-xdr.iml create mode 100644 haobang-security-xdr/hb-security-xdr.iml create mode 100644 haobang-security-xdr/logs/syslog-client.2025-12-01.log create mode 100644 haobang-security-xdr/logs/syslog-client.log create mode 100644 haobang-security-xdr/logs/syslog-consumer.log create mode 100644 haobang-security-xdr/logs/syslog-serve.2026-01-09.log create mode 100644 haobang-security-xdr/logs/syslog-serve.log create mode 100644 haobang-security-xdr/pom.xml create mode 100644 haobang-security-xdr/syslog-client/.gitignore create mode 100644 haobang-security-xdr/syslog-client/logs/syslog-client.2025-12-17.log create mode 100644 haobang-security-xdr/syslog-client/logs/syslog-client.2025-12-22.log create mode 100644 haobang-security-xdr/syslog-client/logs/syslog-client.log create mode 100644 haobang-security-xdr/syslog-client/mvnw create mode 100644 haobang-security-xdr/syslog-client/mvnw.cmd create mode 100644 haobang-security-xdr/syslog-client/pom.xml create mode 100644 haobang-security-xdr/syslog-client/src/main/java/com/haobang/syslog/ClientClass.java create mode 100644 haobang-security-xdr/syslog-client/src/main/java/com/haobang/syslog/MySyslogClient.java create mode 100644 haobang-security-xdr/syslog-client/src/main/java/com/haobang/syslog/syslogClientApplication.java create mode 100644 haobang-security-xdr/syslog-client/src/main/resources/application.properties create mode 100644 haobang-security-xdr/syslog-client/src/main/resources/logback.xml create mode 100644 haobang-security-xdr/syslog-client/src/test/java/com/haobang/syslog/SysjavacollectApplicationTests.java create mode 100644 haobang-security-xdr/syslog-consumer/Dockerfile create mode 100644 haobang-security-xdr/syslog-consumer/doc/程序描述.md create mode 100644 haobang-security-xdr/syslog-consumer/docker_run.txt create mode 100644 haobang-security-xdr/syslog-consumer/pom.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/Modules/Device/deviceInfo.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/Modules/NormalData/LogNormalProcessor.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/Modules/NormalData/SysLogProcessor.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/Modules/NormalData/logNormalData.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/Modules/etl/TimeWindowCalculator.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/Modules/etl/handler/ArrayByteTypeHandler.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/Modules/etl/handler/ArrayIntegerTypeHandler.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/Modules/etl/handler/ArrayStringTypeHandler.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/Modules/etl/handler/ETLRetryHandler.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/Modules/etl/handler/TimestamptzTypeHandler.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/Alarm.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/AlarmVisit.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/ApiResponse.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/AppLog.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/AppLogEntity.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/DeviceCollectTask.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/DeviceCollectTaskTime.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/DeviceReceiveLog.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/DeviceStatsDTO.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/DmColumn.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/DmNormalizeRule.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/GroupedSyslogData.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RFC3164Message.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RFC5424Message.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RuleContent/ActionType.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RuleContent/CompleteColumn.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RuleContent/Complete_paramsType.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RuleContent/Cropper_paramsType.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RuleContent/FilterParam.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RuleContent/FiltersType.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RuleContent/MappersType.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RuleContent/Root.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RuleContent/RuleContent.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/RuleContent/kv_paramsType.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/SecExceptionAlgorithm.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/SyslogMessage.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/SyslogNonNormalMessage.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/SyslogNormalAlarm.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/SyslogNormalData.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/SyslogRequest.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/entity/XdrHoneypot.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/AlarmMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/AlarmVisitMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/AppLogMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/DeviceCollectTaskMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/DeviceReceiveLogMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/DmColumnMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/DmNormalizeRuleMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/SecExceptionAlgorithmMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/SyslogNonNormalMessageMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/SyslogNormalAlarmMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/SyslogNormalDataMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/mapper/XdrHoneypotMapper.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/schedule/ETLOrchestrator.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/schedule/PartitionTableSchedule.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/schedule/ScheduledTask.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/AccessLogAlertService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/AppLogRepository.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/ApplogService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/DataExtractor.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/DataLoader.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/DataTransformer.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/DeviceCollectTaskService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/DeviceCollectTaskUpdateService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/DeviceReceiveLogService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/DeviceStatsUpdateService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/DmColumnService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/DmNormalizeRuleService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/ElasticsearchService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/EsToDbSyncService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/InfluxSyslogService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/LogDataCompleteService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/LogDataFilterService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/PartitionTableService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/SyslogNonNormalMessageService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/SyslogNormalDataService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/SyslogService.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/impl/DeviceReceiveLogServiceImpl.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/impl/DmColumnServiceImpl.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/service/impl/SyslogNonNormalMessageServiceImpl.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/AlgorithmResultParser.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/JsonParser.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/KeyValueParser.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/KvTextParser.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/MyBatisUtil.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/NestedJsonParserUtil.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/NestedJsonUtils.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/RegexTextParser.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/SpringContextUtil.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/StringExtractorUtil.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/SyslogParser.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/common/util/TextParserUtil.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/config/AppConfig.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/config/CacheConfig.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/config/RedisConfig.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/config/RestTemplateConfig.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/config/ScheduleConfig.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/config/ThreadPoolConfig.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/config/WebConfig.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/controllers/AppLogController.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/controllers/CacheController.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/controllers/DmColumnController.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/controllers/ETLController.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/controllers/GlobalExceptionHandler.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/controllers/PartitionTableController.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/controllers/SyslogController.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/controllers/SyslogNonNormalMessageController.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/controllers/SyslogPushController.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/influx/InfluxDBClient.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/influx/InfluxDBConfig.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/influx/SyslogToInfluxApp.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/influx/dto/SyslogQueryDto.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/kafka/kafkalogconsumer.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/kafka/kafkalogconsumerThead.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/java/com/syslogApplication.java create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/application-dev.properties create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/application-prod-zc.properties create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/application-prod.properties create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/application-test.properties create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/application.properties create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/logback.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mapper/AppLogMapper.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DeviceCollectTaskMapper.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DeviceReceiveLogMapper.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DmColumnMapper.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DmNormalizeRuleMapper.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SecExceptionAlgorithmMapper.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNonNormalMessageMapper.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNormalAlarmMapper.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNormalDataMapper.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mapper/XdrHoneypotMapper.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mybatis-config-dev.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/main/resources/mybatis-config.xml create mode 100644 haobang-security-xdr/syslog-consumer/src/test/java/SyslogParserDemo.java create mode 100644 haobang-security-xdr/syslog-consumer/src/test/java/syslogMainTest.java create mode 100644 haobang-security-xdr/syslog-consumer/syslogconsumer.iml create mode 100644 haobang-security-xdr/syslog-serve/.gitignore create mode 100644 haobang-security-xdr/syslog-serve/Dockerfile create mode 100644 haobang-security-xdr/syslog-serve/docker_run.txt create mode 100644 haobang-security-xdr/syslog-serve/logs/syslog-consumer.log create mode 100644 haobang-security-xdr/syslog-serve/logs/syslog-serve-console.log create mode 100644 haobang-security-xdr/syslog-serve/logs/syslog-serve.log create mode 100644 haobang-security-xdr/syslog-serve/mvnw create mode 100644 haobang-security-xdr/syslog-serve/mvnw.cmd create mode 100644 haobang-security-xdr/syslog-serve/pom.xml create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/Modules/Device/DeviceProcess.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/Modules/DeviceCollect/DeviceCollectProcess.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/SyslogServeMainApp.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/CacheController.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceCollectTaskController.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceDeviceController.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceUnknownController.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceCollectTask.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceDevice.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceReceiveLog.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceUnknown.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceCollectTaskMapper.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceDeviceMapper.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceReceiveLogMapper.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceUnknownMapper.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceCollectTaskService.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceDeviceService.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceReceiveLogService.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceUnknownService.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceDeviceServiceImpl.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceReceiveLogServiceImpl.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceUnknownServiceImpl.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/config/CacheConfig.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/config/RedisConfig.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/haobang/config/AppConfig.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/haobang/config/SyslogConfig.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/haobang/syslog/MySyslogClient.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/haobang/syslog/MySyslogServer.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/haobang/syslog/TestSyslogServer.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/DeviceInfoUtil.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/SafeCacheUtil.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/SpringContextUtil.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/TimeUtils.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/kafka/kafkaConsumer.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/kafka/kafkaProducer.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogMessage.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogMessageHandler.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogServer.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogServerBoth.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogTcpChannelInitializer.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogUdpChannelInitializer.java create mode 100644 haobang-security-xdr/syslog-serve/src/main/resources/application-dev.properties create mode 100644 haobang-security-xdr/syslog-serve/src/main/resources/application-prod-zc.properties create mode 100644 haobang-security-xdr/syslog-serve/src/main/resources/application-prod.properties create mode 100644 haobang-security-xdr/syslog-serve/src/main/resources/application-test.properties create mode 100644 haobang-security-xdr/syslog-serve/src/main/resources/application.properties create mode 100644 haobang-security-xdr/syslog-serve/src/main/resources/logback.xml create mode 100644 haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceCollectTaskMapper.xml create mode 100644 haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceDeviceMapper.xml create mode 100644 haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceReceiveLogMapper.xml create mode 100644 haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceUnknownMapper.xml create mode 100644 haobang-security-xdr/syslog-serve/src/test/java/com/haobang/syslog/SysjavacollectApplicationTests.java create mode 100644 haobang-security-xdr/syslog-serve/start-syslog-serve.sh create mode 100644 haobang-security-xdr/syslog-serve/stop-syslog-serve.sh diff --git a/haobang-security-xdr/.idea/compiler.xml b/haobang-security-xdr/.idea/compiler.xml new file mode 100644 index 0000000..12f79bc --- /dev/null +++ b/haobang-security-xdr/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/encodings.xml b/haobang-security-xdr/.idea/encodings.xml new file mode 100644 index 0000000..1a6ca91 --- /dev/null +++ b/haobang-security-xdr/.idea/encodings.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_11.xml b/haobang-security-xdr/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_11.xml new file mode 100644 index 0000000..103c121 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_11.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_11.xml b/haobang-security-xdr/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_11.xml new file mode 100644 index 0000000..1e0339a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_11.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__cn_hutool_hutool_all_5_8_16.xml b/haobang-security-xdr/.idea/libraries/Maven__cn_hutool_hutool_all_5_8_16.xml new file mode 100644 index 0000000..c90a489 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__cn_hutool_hutool_all_5_8_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__co_elastic_clients_elasticsearch_java_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__co_elastic_clients_elasticsearch_java_7_17_6.xml new file mode 100644 index 0000000..549855d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__co_elastic_clients_elasticsearch_java_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_alibaba_fastjson2_fastjson2_2_0_40.xml b/haobang-security-xdr/.idea/libraries/Maven__com_alibaba_fastjson2_fastjson2_2_0_40.xml new file mode 100644 index 0000000..f89acc6 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_alibaba_fastjson2_fastjson2_2_0_40.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_alibaba_fastjson_1_2_83.xml b/haobang-security-xdr/.idea/libraries/Maven__com_alibaba_fastjson_1_2_83.xml new file mode 100644 index 0000000..afb99ee --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_alibaba_fastjson_1_2_83.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_5_3_1.xml b/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_5_3_1.xml new file mode 100644 index 0000000..8836b85 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_5_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_5_3_1.xml b/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_5_3_1.xml new file mode 100644 index 0000000..246a8a9 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_5_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_5_3_1.xml b/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_5_3_1.xml new file mode 100644 index 0000000..130cb8b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_5_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_5_3_1.xml b/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_5_3_1.xml new file mode 100644 index 0000000..2410392 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_5_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_5_3_1.xml b/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_5_3_1.xml new file mode 100644 index 0000000..17daeeb --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_5_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_carrotsearch_hppc_0_8_1.xml b/haobang-security-xdr/.idea/libraries/Maven__com_carrotsearch_hppc_0_8_1.xml new file mode 100644 index 0000000..91b02a5 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_carrotsearch_hppc_0_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml new file mode 100644 index 0000000..9aa1658 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_3.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_3.xml new file mode 100644 index 0000000..d2bc2ff --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_4.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_4.xml new file mode 100644 index 0000000..efe4b7a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_3.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_3.xml new file mode 100644 index 0000000..0b0630a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_4.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_4.xml new file mode 100644 index 0000000..d2fe6c0 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_3.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_3.xml new file mode 100644 index 0000000..3b18a25 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_cbor_2_13_4.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_cbor_2_13_4.xml new file mode 100644 index 0000000..7cf47a7 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_cbor_2_13_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_smile_2_13_4.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_smile_2_13_4.xml new file mode 100644 index 0000000..57d67e1 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_smile_2_13_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_yaml_2_13_4.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_yaml_2_13_4.xml new file mode 100644 index 0000000..4099742 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_yaml_2_13_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_4.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_4.xml new file mode 100644 index 0000000..7d4d840 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_4.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_4.xml new file mode 100644 index 0000000..4058ecd --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_4.xml b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_4.xml new file mode 100644 index 0000000..ddb8a0d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_4_5.xml b/haobang-security-xdr/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_4_5.xml new file mode 100644 index 0000000..798e8f4 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_4_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_github_luben_zstd_jni_1_5_2_1.xml b/haobang-security-xdr/.idea/libraries/Maven__com_github_luben_zstd_jni_1_5_2_1.xml new file mode 100644 index 0000000..ff97670 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_github_luben_zstd_jni_1_5_2_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_3_2.xml b/haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_3_2.xml new file mode 100644 index 0000000..baadefc --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_4_6.xml b/haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_4_6.xml new file mode 100644 index 0000000..17c3b6b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_4_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_4_6.xml b/haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_4_6.xml new file mode 100644 index 0000000..2ec1da7 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_4_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_github_spullara_mustache_java_compiler_0_9_6.xml b/haobang-security-xdr/.idea/libraries/Maven__com_github_spullara_mustache_java_compiler_0_9_6.xml new file mode 100644 index 0000000..fcc6307 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_github_spullara_mustache_java_compiler_0_9_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml b/haobang-security-xdr/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml new file mode 100644 index 0000000..42ab821 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_google_code_gson_gson_2_9_1.xml b/haobang-security-xdr/.idea/libraries/Maven__com_google_code_gson_gson_2_9_1.xml new file mode 100644 index 0000000..af521f2 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_google_code_gson_gson_2_9_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_core_6_9_0.xml b/haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_core_6_9_0.xml new file mode 100644 index 0000000..b5264cd --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_core_6_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_java_6_9_0.xml b/haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_java_6_9_0.xml new file mode 100644 index 0000000..4e49595 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_java_6_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_utils_6_9_0.xml b/haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_utils_6_9_0.xml new file mode 100644 index 0000000..ff63e25 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_influxdb_influxdb_client_utils_6_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_7_0.xml b/haobang-security-xdr/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_7_0.xml new file mode 100644 index 0000000..1f30adb --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_mchange_mchange_commons_java_0_2_15.xml b/haobang-security-xdr/.idea/libraries/Maven__com_mchange_mchange_commons_java_0_2_15.xml new file mode 100644 index 0000000..84e0c93 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_mchange_mchange_commons_java_0_2_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okhttp3_logging_interceptor_4_9_3.xml b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okhttp3_logging_interceptor_4_9_3.xml new file mode 100644 index 0000000..8ae3345 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okhttp3_logging_interceptor_4_9_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_4_9_3.xml b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_4_9_3.xml new file mode 100644 index 0000000..da48dc8 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_4_9_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okio_okio_3_3_0.xml b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okio_okio_3_3_0.xml new file mode 100644 index 0000000..78d5f3a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okio_okio_3_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okio_okio_jvm_3_3_0.xml b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okio_okio_jvm_3_3_0.xml new file mode 100644 index 0000000..0ea4e5c --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_okio_okio_jvm_3_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_adapter_rxjava3_2_9_0.xml b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_adapter_rxjava3_2_9_0.xml new file mode 100644 index 0000000..c0977b2 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_adapter_rxjava3_2_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_converter_gson_2_9_0.xml b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_converter_gson_2_9_0.xml new file mode 100644 index 0000000..2a06d66 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_converter_gson_2_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_converter_scalars_2_9_0.xml b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_converter_scalars_2_9_0.xml new file mode 100644 index 0000000..1f6444d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_converter_scalars_2_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_retrofit_2_9_0.xml b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_retrofit_2_9_0.xml new file mode 100644 index 0000000..bb0a1ca --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_squareup_retrofit2_retrofit_2_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_tdunning_t_digest_3_2.xml b/haobang-security-xdr/.idea/libraries/Maven__com_tdunning_t_digest_3_2.xml new file mode 100644 index 0000000..f024cb0 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_tdunning_t_digest_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_typesafe_config_1_4_2.xml b/haobang-security-xdr/.idea/libraries/Maven__com_typesafe_config_1_4_2.xml new file mode 100644 index 0000000..fb9bfa6 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_typesafe_config_1_4_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml b/haobang-security-xdr/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml new file mode 100644 index 0000000..3899977 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml b/haobang-security-xdr/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml new file mode 100644 index 0000000..b5eceb8 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml b/haobang-security-xdr/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml new file mode 100644 index 0000000..7b02399 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_lettuce_lettuce_core_6_1_9_RELEASE.xml b/haobang-security-xdr/.idea/libraries/Maven__io_lettuce_lettuce_core_6_1_9_RELEASE.xml new file mode 100644 index 0000000..057d829 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_lettuce_lettuce_core_6_1_9_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_all_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_all_4_1_92_Final.xml new file mode 100644 index 0000000..f76f5f5 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_all_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_buffer_4_1_82_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_buffer_4_1_82_Final.xml new file mode 100644 index 0000000..6b9b470 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_buffer_4_1_82_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_buffer_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_buffer_4_1_92_Final.xml new file mode 100644 index 0000000..edea92b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_buffer_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_4_1_82_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_4_1_82_Final.xml new file mode 100644 index 0000000..c56d614 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_4_1_82_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_4_1_92_Final.xml new file mode 100644 index 0000000..8f257d9 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_92_Final.xml new file mode 100644 index 0000000..be9c952 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_haproxy_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_haproxy_4_1_92_Final.xml new file mode 100644 index 0000000..79ed3fa --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_haproxy_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_92_Final.xml new file mode 100644 index 0000000..eef18fa --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_92_Final.xml new file mode 100644 index 0000000..6680363 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_memcache_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_memcache_4_1_92_Final.xml new file mode 100644 index 0000000..559a6cd --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_memcache_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_mqtt_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_mqtt_4_1_92_Final.xml new file mode 100644 index 0000000..3fa6878 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_mqtt_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_redis_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_redis_4_1_92_Final.xml new file mode 100644 index 0000000..6136e00 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_redis_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_smtp_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_smtp_4_1_92_Final.xml new file mode 100644 index 0000000..51dd04d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_smtp_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_92_Final.xml new file mode 100644 index 0000000..e208cae --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_stomp_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_stomp_4_1_92_Final.xml new file mode 100644 index 0000000..c0c0f67 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_stomp_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_xml_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_xml_4_1_92_Final.xml new file mode 100644 index 0000000..f54bed3 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_codec_xml_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_common_4_1_82_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_common_4_1_82_Final.xml new file mode 100644 index 0000000..eb3455a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_common_4_1_82_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_common_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_common_4_1_92_Final.xml new file mode 100644 index 0000000..51e2c8b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_common_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_4_1_82_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_4_1_82_Final.xml new file mode 100644 index 0000000..f669c41 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_4_1_82_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_4_1_92_Final.xml new file mode 100644 index 0000000..1584179 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_92_Final.xml new file mode 100644 index 0000000..58edae4 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_ssl_ocsp_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_ssl_ocsp_4_1_92_Final.xml new file mode 100644 index 0000000..6e11e91 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_handler_ssl_ocsp_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_4_1_82_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_4_1_82_Final.xml new file mode 100644 index 0000000..367dfa6 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_4_1_82_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_4_1_92_Final.xml new file mode 100644 index 0000000..b8f548a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_92_Final.xml new file mode 100644 index 0000000..33b48f9 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_92_Final.xml new file mode 100644 index 0000000..635a97f --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_aarch_64_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_aarch_64_4_1_92_Final.xml new file mode 100644 index 0000000..d321d29 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_aarch_64_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_92_Final.xml new file mode 100644 index 0000000..8728eba --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_4_1_82_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_4_1_82_Final.xml new file mode 100644 index 0000000..fc396f2 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_4_1_82_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_4_1_92_Final.xml new file mode 100644 index 0000000..f637738 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_92_Final.xml new file mode 100644 index 0000000..9455eb0 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_92_Final.xml new file mode 100644 index 0000000..95fd744 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_aarch_64_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_aarch_64_4_1_92_Final.xml new file mode 100644 index 0000000..0338550 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_aarch_64_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_92_Final.xml new file mode 100644 index 0000000..51b4c09 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_aarch_64_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_aarch_64_4_1_92_Final.xml new file mode 100644 index 0000000..bb61321 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_aarch_64_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_92_Final.xml new file mode 100644 index 0000000..ebc3ca2 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_82_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_82_Final.xml new file mode 100644 index 0000000..0797e93 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_82_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_92_Final.xml new file mode 100644 index 0000000..d90e36e --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_rxtx_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_rxtx_4_1_92_Final.xml new file mode 100644 index 0000000..3286404 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_rxtx_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_sctp_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_sctp_4_1_92_Final.xml new file mode 100644 index 0000000..0ffea6c --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_sctp_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_udt_4_1_92_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_udt_4_1_92_Final.xml new file mode 100644 index 0000000..a929d8c --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_netty_netty_transport_udt_4_1_92_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_23.xml b/haobang-security-xdr/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_23.xml new file mode 100644 index 0000000..9f9338d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__io_reactivex_rxjava3_rxjava_3_1_6.xml b/haobang-security-xdr/.idea/libraries/Maven__io_reactivex_rxjava3_rxjava_3_1_6.xml new file mode 100644 index 0000000..30df38e --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__io_reactivex_rxjava3_rxjava_3_1_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml b/haobang-security-xdr/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml new file mode 100644 index 0000000..4b21a76 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml b/haobang-security-xdr/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml new file mode 100644 index 0000000..39760fa --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__jakarta_json_jakarta_json_api_1_1_6.xml b/haobang-security-xdr/.idea/libraries/Maven__jakarta_json_jakarta_json_api_1_1_6.xml new file mode 100644 index 0000000..c1a8cf1 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__jakarta_json_jakarta_json_api_1_1_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml b/haobang-security-xdr/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml new file mode 100644 index 0000000..54f9c8a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml b/haobang-security-xdr/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml new file mode 100644 index 0000000..61d47cf --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml b/haobang-security-xdr/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml new file mode 100644 index 0000000..74405af --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_12_17.xml b/haobang-security-xdr/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_12_17.xml new file mode 100644 index 0000000..f828397 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_12_17.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_12_17.xml b/haobang-security-xdr/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_12_17.xml new file mode 100644 index 0000000..91d230b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_12_17.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__net_java_dev_jna_jna_5_10_0.xml b/haobang-security-xdr/.idea/libraries/Maven__net_java_dev_jna_jna_5_10_0.xml new file mode 100644 index 0000000..a4880d8 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__net_java_dev_jna_jna_5_10_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml b/haobang-security-xdr/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml new file mode 100644 index 0000000..96bdf9f --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml b/haobang-security-xdr/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml new file mode 100644 index 0000000..5ce913d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__net_sf_jopt_simple_jopt_simple_5_0_2.xml b/haobang-security-xdr/.idea/libraries/Maven__net_sf_jopt_simple_jopt_simple_5_0_2.xml new file mode 100644 index 0000000..29d567a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__net_sf_jopt_simple_jopt_simple_5_0_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_commons_commons_csv_1_10_0.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_commons_commons_csv_1_10_0.xml new file mode 100644 index 0000000..48973fa --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_commons_commons_csv_1_10_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml new file mode 100644 index 0000000..0cebf9a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpasyncclient_4_1_5.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpasyncclient_4_1_5.xml new file mode 100644 index 0000000..d4096c9 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpasyncclient_4_1_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml new file mode 100644 index 0000000..5620ea9 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_15.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_15.xml new file mode 100644 index 0000000..d7e3f89 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_nio_4_4_15.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_nio_4_4_15.xml new file mode 100644 index 0000000..80feb92 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_nio_4_4_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_kafka_kafka_clients_3_4_0.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_kafka_kafka_clients_3_4_0.xml new file mode 100644 index 0000000..fc39485 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_kafka_kafka_clients_3_4_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_2.xml new file mode 100644 index 0000000..b6827fc --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_2.xml new file mode 100644 index 0000000..d6d975a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_analyzers_common_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_analyzers_common_8_11_1.xml new file mode 100644 index 0000000..03d098d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_analyzers_common_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_backward_codecs_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_backward_codecs_8_11_1.xml new file mode 100644 index 0000000..a7c155c --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_backward_codecs_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_core_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_core_8_11_1.xml new file mode 100644 index 0000000..839c759 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_core_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_grouping_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_grouping_8_11_1.xml new file mode 100644 index 0000000..f856244 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_grouping_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_highlighter_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_highlighter_8_11_1.xml new file mode 100644 index 0000000..527f2ea --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_highlighter_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_join_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_join_8_11_1.xml new file mode 100644 index 0000000..b659de2 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_join_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_memory_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_memory_8_11_1.xml new file mode 100644 index 0000000..430d31e --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_memory_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_misc_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_misc_8_11_1.xml new file mode 100644 index 0000000..da0d9a3 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_misc_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_queries_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_queries_8_11_1.xml new file mode 100644 index 0000000..affc97a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_queries_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_queryparser_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_queryparser_8_11_1.xml new file mode 100644 index 0000000..d5ca944 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_queryparser_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_sandbox_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_sandbox_8_11_1.xml new file mode 100644 index 0000000..6be77b4 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_sandbox_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_spatial3d_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_spatial3d_8_11_1.xml new file mode 100644 index 0000000..6f49b27 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_spatial3d_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_suggest_8_11_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_suggest_8_11_1.xml new file mode 100644 index 0000000..f8dc08c --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_lucene_lucene_suggest_8_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_65.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_65.xml new file mode 100644 index 0000000..52023ae --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_65.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_65.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_65.xml new file mode 100644 index 0000000..7ebff9a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_65.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_65.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_65.xml new file mode 100644 index 0000000..2b8a545 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_65.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml new file mode 100644 index 0000000..645e245 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_assertj_assertj_core_3_22_0.xml b/haobang-security-xdr/.idea/libraries/Maven__org_assertj_assertj_core_3_22_0.xml new file mode 100644 index 0000000..a50d57f --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_assertj_assertj_core_3_22_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_checkerframework_checker_qual_3_5_0.xml b/haobang-security-xdr/.idea/libraries/Maven__org_checkerframework_checker_qual_3_5_0.xml new file mode 100644 index 0000000..b38b75e --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_checkerframework_checker_qual_3_5_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_eclipse_parsson_parsson_1_0_0.xml b/haobang-security-xdr/.idea/libraries/Maven__org_eclipse_parsson_parsson_1_0_0.xml new file mode 100644 index 0000000..d81fd9a --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_eclipse_parsson_parsson_1_0_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_client_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_client_7_17_6.xml new file mode 100644 index 0000000..f3244df --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_client_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_high_level_client_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_high_level_client_7_17_6.xml new file mode 100644 index 0000000..ac413f3 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_client_elasticsearch_rest_high_level_client_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_7_17_6.xml new file mode 100644 index 0000000..a32e1f0 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_cli_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_cli_7_17_6.xml new file mode 100644 index 0000000..73519e7 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_cli_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_core_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_core_7_17_6.xml new file mode 100644 index 0000000..872dd1e --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_core_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_geo_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_geo_7_17_6.xml new file mode 100644 index 0000000..a11e3f8 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_geo_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_lz4_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_lz4_7_17_6.xml new file mode 100644 index 0000000..0688d3f --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_lz4_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_plugin_classloader_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_plugin_classloader_7_17_6.xml new file mode 100644 index 0000000..f82834d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_plugin_classloader_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_secure_sm_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_secure_sm_7_17_6.xml new file mode 100644 index 0000000..81d1485 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_secure_sm_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_x_content_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_x_content_7_17_6.xml new file mode 100644 index 0000000..6e85560 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_elasticsearch_x_content_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_aggs_matrix_stats_client_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_aggs_matrix_stats_client_7_17_6.xml new file mode 100644 index 0000000..a7fd31b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_aggs_matrix_stats_client_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_lang_mustache_client_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_lang_mustache_client_7_17_6.xml new file mode 100644 index 0000000..d92a931 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_lang_mustache_client_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_mapper_extras_client_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_mapper_extras_client_7_17_6.xml new file mode 100644 index 0000000..fc63a56 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_mapper_extras_client_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_parent_join_client_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_parent_join_client_7_17_6.xml new file mode 100644 index 0000000..da7a7bd --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_parent_join_client_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_rank_eval_client_7_17_6.xml b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_rank_eval_client_7_17_6.xml new file mode 100644 index 0000000..4314dd9 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_elasticsearch_plugin_rank_eval_client_7_17_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_graylog2_syslog4j_0_9_61.xml b/haobang-security-xdr/.idea/libraries/Maven__org_graylog2_syslog4j_0_9_61.xml new file mode 100644 index 0000000..ca213ec --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_graylog2_syslog4j_0_9_61.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml new file mode 100644 index 0000000..ae33eaf --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml b/haobang-security-xdr/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml new file mode 100644 index 0000000..20c8278 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_2_5_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_2_5_Final.xml new file mode 100644 index 0000000..962927f --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_2_5_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_3_Final.xml b/haobang-security-xdr/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_3_Final.xml new file mode 100644 index 0000000..167bd35 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_3_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_annotations_13_0.xml b/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_annotations_13_0.xml new file mode 100644 index 0000000..6523d97 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_annotations_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_1_6_21.xml b/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_1_6_21.xml new file mode 100644 index 0000000..88f0d98 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_1_6_21.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_21.xml b/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_21.xml new file mode 100644 index 0000000..5f7ad7b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_21.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_21.xml b/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_21.xml new file mode 100644 index 0000000..5db0168 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_21.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_21.xml b/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_21.xml new file mode 100644 index 0000000..287adb5 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_21.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_json_json_20231013.xml b/haobang-security-xdr/.idea/libraries/Maven__org_json_json_20231013.xml new file mode 100644 index 0000000..53d6483 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_json_json_20231013.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml new file mode 100644 index 0000000..02dd763 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_9_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_9_2.xml new file mode 100644 index 0000000..f54a127 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml new file mode 100644 index 0000000..11e6f8b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml new file mode 100644 index 0000000..aca8711 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml new file mode 100644 index 0000000..8bae46e --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml new file mode 100644 index 0000000..55fcebc --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml new file mode 100644 index 0000000..4e40324 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_lz4_lz4_java_1_8_0.xml b/haobang-security-xdr/.idea/libraries/Maven__org_lz4_lz4_java_1_8_0.xml new file mode 100644 index 0000000..f4f8b78 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_lz4_lz4_java_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_mockito_mockito_core_4_5_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_mockito_mockito_core_4_5_1.xml new file mode 100644 index 0000000..0a26d3f --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_mockito_mockito_core_4_5_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_5_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_5_1.xml new file mode 100644 index 0000000..e2b19f4 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_5_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_mybatis_3_5_10.xml b/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_mybatis_3_5_10.xml new file mode 100644 index 0000000..c44215f --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_mybatis_3_5_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_1_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_1_1.xml new file mode 100644 index 0000000..8b9c000 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_3_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_3_1.xml new file mode 100644 index 0000000..a032828 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_3_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_3_1.xml new file mode 100644 index 0000000..4781289 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml new file mode 100644 index 0000000..d106a5e --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/haobang-security-xdr/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml new file mode 100644 index 0000000..5b7d0e0 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml new file mode 100644 index 0000000..2c5c126 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_postgresql_postgresql_42_5_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_postgresql_postgresql_42_5_4.xml new file mode 100644 index 0000000..0f68257 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_postgresql_postgresql_42_5_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml b/haobang-security-xdr/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml new file mode 100644 index 0000000..2abc348 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_quartz_scheduler_quartz_2_3_2.xml b/haobang-security-xdr/.idea/libraries/Maven__org_quartz_scheduler_quartz_2_3_2.xml new file mode 100644 index 0000000..3c19b44 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_quartz_scheduler_quartz_2_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_4.xml new file mode 100644 index 0000000..29b7a65 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_1.xml b/haobang-security-xdr/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_1.xml new file mode 100644 index 0000000..73d721f --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml b/haobang-security-xdr/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml new file mode 100644 index 0000000..7dee608 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml b/haobang-security-xdr/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml new file mode 100644 index 0000000..d60f6ed --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_slf4j_slf4j_simple_2_0_7.xml b/haobang-security-xdr/.idea/libraries/Maven__org_slf4j_slf4j_simple_2_0_7.xml new file mode 100644 index 0000000..95803a3 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_slf4j_slf4j_simple_2_0_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_7_4.xml new file mode 100644 index 0000000..e412c08 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_7_4.xml new file mode 100644 index 0000000..89b3b0c --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_7_4.xml new file mode 100644 index 0000000..0b3a9df --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_7_4.xml new file mode 100644 index 0000000..9d1e053 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_elasticsearch_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_elasticsearch_2_7_4.xml new file mode 100644 index 0000000..016e938 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_elasticsearch_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_7_4.xml new file mode 100644 index 0000000..719af21 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_7_4.xml new file mode 100644 index 0000000..e8ce49c --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_7_4.xml new file mode 100644 index 0000000..cdc0851 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_7_4.xml new file mode 100644 index 0000000..2674cdf --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_quartz_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_quartz_2_7_4.xml new file mode 100644 index 0000000..d53377f --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_quartz_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_7_4.xml new file mode 100644 index 0000000..b165b2f --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_7_4.xml new file mode 100644 index 0000000..30a806d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_7_4.xml new file mode 100644 index 0000000..9574e07 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_7_4.xml new file mode 100644 index 0000000..1ae1b67 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_7_4.xml new file mode 100644 index 0000000..ecffc1d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_7_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_7_4.xml new file mode 100644 index 0000000..24e96e5 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_7_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_7_3.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_7_3.xml new file mode 100644 index 0000000..4de9886 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_7_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_elasticsearch_4_4_3.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_elasticsearch_4_4_3.xml new file mode 100644 index 0000000..b1f9e4d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_elasticsearch_4_4_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_7_3.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_7_3.xml new file mode 100644 index 0000000..d512c1b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_7_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_7_3.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_7_3.xml new file mode 100644 index 0000000..71cb323 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_7_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_kafka_spring_kafka_2_8_9.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_kafka_spring_kafka_2_8_9.xml new file mode 100644 index 0000000..d5c6a3e --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_kafka_spring_kafka_2_8_9.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_3_3.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_3_3.xml new file mode 100644 index 0000000..bf84c4b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_aop_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_aop_5_3_23.xml new file mode 100644 index 0000000..5201cf7 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_aop_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_beans_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_beans_5_3_23.xml new file mode 100644 index 0000000..1a4ad19 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_beans_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_context_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_context_5_3_23.xml new file mode 100644 index 0000000..55127d5 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_context_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_context_support_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_context_support_5_3_23.xml new file mode 100644 index 0000000..127bbfd --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_context_support_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_core_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_core_5_3_23.xml new file mode 100644 index 0000000..912deef --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_core_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_expression_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_expression_5_3_23.xml new file mode 100644 index 0000000..f817d88 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_expression_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_23.xml new file mode 100644 index 0000000..70aa190 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_23.xml new file mode 100644 index 0000000..7bd4be0 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_messaging_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_messaging_5_3_23.xml new file mode 100644 index 0000000..2017820 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_messaging_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_oxm_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_oxm_5_3_23.xml new file mode 100644 index 0000000..90e95d3 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_oxm_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_test_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_test_5_3_23.xml new file mode 100644 index 0000000..2c3d0fa --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_test_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_tx_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_tx_5_3_23.xml new file mode 100644 index 0000000..d2a052d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_tx_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_web_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_web_5_3_23.xml new file mode 100644 index 0000000..402ec3d --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_web_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_23.xml b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_23.xml new file mode 100644 index 0000000..a350fc0 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_xerial_snappy_snappy_java_1_1_8_4.xml b/haobang-security-xdr/.idea/libraries/Maven__org_xerial_snappy_snappy_java_1_1_8_4.xml new file mode 100644 index 0000000..91914a7 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_xerial_snappy_snappy_java_1_1_8_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_9_0.xml b/haobang-security-xdr/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_9_0.xml new file mode 100644 index 0000000..4dc9e4b --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/libraries/Maven__org_yaml_snakeyaml_1_30.xml b/haobang-security-xdr/.idea/libraries/Maven__org_yaml_snakeyaml_1_30.xml new file mode 100644 index 0000000..006ddf0 --- /dev/null +++ b/haobang-security-xdr/.idea/libraries/Maven__org_yaml_snakeyaml_1_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/misc.xml b/haobang-security-xdr/.idea/misc.xml new file mode 100644 index 0000000..d30d09e --- /dev/null +++ b/haobang-security-xdr/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/modules.xml b/haobang-security-xdr/.idea/modules.xml new file mode 100644 index 0000000..3b805fa --- /dev/null +++ b/haobang-security-xdr/.idea/modules.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/uiDesigner.xml b/haobang-security-xdr/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/haobang-security-xdr/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/.idea/workspace.xml b/haobang-security-xdr/.idea/workspace.xml new file mode 100644 index 0000000..b876d04 --- /dev/null +++ b/haobang-security-xdr/.idea/workspace.xml @@ -0,0 +1,1496 @@ + + + + + + + + + + + + + + com.haobang.syslog.* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT + FROM device_collect_task + + + AND device_id = #{deviceId} + + + AND method = #{method} + + + AND task_name LIKE CONCAT('%', #{taskName}, '%') + + + AND detail_id = #{detailId} + + + AND process_architecture = #{processArchitecture} + + + AND epm_upper_limit = #{epmUpperLimit} + + + + AND first_time >= #{firstTime} + + + AND last_success_time >= #{lastSuccessTime} + + + ORDER BY updated_at DESC + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DeviceReceiveLogMapper.xml b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DeviceReceiveLogMapper.xml new file mode 100644 index 0000000..e07532e --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DeviceReceiveLogMapper.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO device_receive_log ( + created_at, + device_collect_id, + device_id, + device_ip, + receive_time, + receive_time_str, + syslog_message + ) VALUES ( + COALESCE(#{createdAt}, NOW() AT TIME ZONE 'utc'), + #{deviceCollectId}, + #{deviceId}, + #{deviceIp}::inet, + #{receiveTime}, + #{receiveTimeStr}, + #{syslogMessage} + ) + + + + + INSERT INTO device_receive_log ( + created_at, + device_collect_id, + device_id, + device_ip, + receive_time, + receive_time_str, + syslog_message + ) VALUES + + ( + COALESCE(#{item.createdAt}, NOW() AT TIME ZONE 'utc'), + #{item.deviceCollectId}, + #{item.deviceId}, + #{item.deviceIp}::inet, + #{item.receiveTime}, + #{item.receiveTimeStr}, + #{item.syslogMessage} + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM device_receive_log + WHERE created_at BETWEEN #{startTime} AND #{endTime} + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DmColumnMapper.xml b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DmColumnMapper.xml new file mode 100644 index 0000000..c72ee92 --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DmColumnMapper.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DmNormalizeRuleMapper.xml b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DmNormalizeRuleMapper.xml new file mode 100644 index 0000000..17b945a --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/DmNormalizeRuleMapper.xml @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, created_at, updated_at, deleted_at, name, display_name, description, + is_built_in, is_running, first_data_saved_at, data_type, field_cate_id, + log_parsed, sample_logs, is_data_merge_enabled, data_merge_interval, + data_merge_time_unit, data_merge_row_limit, data_merge_columns, + data_storage_medium, created_by_id, group_id, rule_content, + built_in_version, tenant_id, create_time, update_time, create_by, + update_by, del_flag, create_dept + + + + + + + + + + + + + + + + UPDATE dm_normalize_rule + + updated_at = #{updatedAt}, + name = #{name}, + display_name = #{displayName}, + description = #{description}, + is_built_in = #{isBuiltIn}, + is_running = #{isRunning}, + first_data_saved_at = #{firstDataSavedAt}, + data_type = #{dataType}, + field_cate_id = #{fieldCateId}, + log_parsed = #{logParsed}, + sample_logs = #{sampleLogs, typeHandler=org.apache.ibatis.type.ArrayTypeHandler}, + is_data_merge_enabled = #{isDataMergeEnabled}, + data_merge_interval = #{dataMergeInterval}, + data_merge_time_unit = #{dataMergeTimeUnit}, + data_merge_row_limit = #{dataMergeRowLimit}, + data_merge_columns = #{dataMergeColumns}, + data_storage_medium = #{dataStorageMedium}, + rule_content = #{ruleContent}, + built_in_version = #{builtInVersion}, + update_time = #{updateTime}, + update_by = #{updateBy}, + + WHERE id = #{id} AND del_flag = '0' + + + + + UPDATE dm_normalize_rule + + updated_at = #{updatedAt}, + name = #{name}, + display_name = #{displayName}, + description = #{description}, + is_built_in = #{isBuiltIn}, + is_running = #{isRunning}, + first_data_saved_at = #{firstDataSavedAt}, + data_type = #{dataType}, + field_cate_id = #{fieldCateId}, + log_parsed = #{logParsed}, + sample_logs = #{sampleLogs, typeHandler=org.apache.ibatis.type.ArrayTypeHandler}, + is_data_merge_enabled = #{isDataMergeEnabled}, + data_merge_interval = #{dataMergeInterval}, + data_merge_time_unit = #{dataMergeTimeUnit}, + data_merge_row_limit = #{dataMergeRowLimit}, + data_merge_columns = #{dataMergeColumns}, + data_storage_medium = #{dataStorageMedium}, + rule_content = #{ruleContent}, + built_in_version = #{builtInVersion}, + update_time = #{updateTime}, + update_by = #{updateBy}, + + WHERE id = #{id} AND tenant_id = #{tenantId} AND del_flag = '0' + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SecExceptionAlgorithmMapper.xml b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SecExceptionAlgorithmMapper.xml new file mode 100644 index 0000000..57deac6 --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SecExceptionAlgorithmMapper.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNonNormalMessageMapper.xml b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNonNormalMessageMapper.xml new file mode 100644 index 0000000..510de01 --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNonNormalMessageMapper.xml @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO syslog_non_normal_message ( + id, created_at, log_time, device_id, syslog_message, + syslog_uuid, syslog_topic, tenant_id, create_time, + update_time, create_by, update_by, create_dept, + header_message, receive_time, rule_time, device_name, + etl_node, collect_task_id, collect_task_name, reason, + reason_detail, rule_result, del_flag + ) VALUES + + ( + #{item.id}, + #{item.createdAt}, + #{item.logTime}, + #{item.deviceId}, + #{item.syslogMessage}, + #{item.syslogUuid}, + #{item.syslogTopic}, + #{item.tenantId}, + #{item.createTime}, + #{item.updateTime}, + #{item.createBy}, + #{item.updateBy}, + #{item.createDept}, + #{item.headerMessage}, + #{item.receiveTime}, + #{item.ruleTime}, + #{item.deviceName}, + #{item.etlNode}, + #{item.collectTaskId}, + #{item.collectTaskName}, + #{item.reason}, + #{item.reasonDetail}, + #{item.ruleResult}, + #{item.delFlag} + ) + + + + + + UPDATE syslog_non_normal_message + + log_time = #{logTime}, + device_id = #{deviceId}, + syslog_message = #{syslogMessage}, + syslog_uuid = #{syslogUuid}, + syslog_topic = #{syslogTopic}, + tenant_id = #{tenantId}, + update_time = #{updateTime}, + update_by = #{updateBy}, + header_message = #{headerMessage}, + receive_time = #{receiveTime}, + rule_time = #{ruleTime}, + device_name = #{deviceName}, + etl_node = #{etlNode}, + collect_task_id = #{collectTaskId}, + collect_task_name = #{collectTaskName}, + reason = #{reason}, + reason_detail = #{reasonDetail}, + rule_result = #{ruleResult}, + del_flag = #{delFlag}, + + WHERE id = #{id} AND del_flag = '0' + + + + + + + + + + + + + + + UPDATE syslog_non_normal_message + SET del_flag = '1', + update_time = NOW() + WHERE id IN + + #{item.id} + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNormalAlarmMapper.xml b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNormalAlarmMapper.xml new file mode 100644 index 0000000..d20226a --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNormalAlarmMapper.xml @@ -0,0 +1,789 @@ + + + + + + INSERT INTO syslog_normal_alarm + + id, + created_at, + log_time, + device_id, + webshell_type, + vuirs_type, + vuirs_url, + class_filename, + class_path, + parent_class, + jar_path, + class_md5, + class_loader, + class_hashcode, + class_loader_hashcode, + tc_nameip, + perform_sql, + tc_account, + tc_appname, + process_uname, + p_process_uname, + container_name, + container_id, + http_resp_server, + srcip_id, + cdnip, + natip, + mail_sender, + mail_receiver, + vpn_mac, + vpn_os, + vpn_user, + vpn_groupname, + vpn_access_ip, + dest_ip_apt, + origin_attack_result, + description, + solution, + attack_cause, + username, + tc_flow_id, + login_result, + cmdline, + origin_attack_action, + victim_domain, + vpn_deviceid, + vpn_access_action, + file_access_time, + file_name, + tc_class, + tc_name2, + login_lasttime, + origin_permissions, + begin_permissions, + print_time, + printer, + printer_type, + print_pages, + print_copies, + src_device, + dst_device, + src_file, + src_file_type, + src_file_path, + dst_file, + dst_file_type, + dst_file_path, + dlp_policy_name, + dlp_policy_type, + dst_upload_url, + process_uuid, + p_process_uuid, + env, + brute_force_service, + vuirs_name, + http_req_length, + http_req_content_type, + tc_scan_port, + tc_labels, + http_resp_content_type, + dns_msg_type, + dns_answer_length, + dns_ioc, + tx_bytes, + rx_bytes, + all_bytes, + duration_time, + mail_attach_name, + mail_subject, + mail_message, + mail_send_server, + mail_agent, + tls_version, + tls_server_cert, + tls_server_suite, + tls_client_suites_len, + tls_ja3, + tls_ja3s, + vpn_access_port, + log_topic, + collect_time, + src_is_intranetip, + src_ip_ioc, + src_ip_apt, + srcip_name, + tc_client, + srcip_organization_id, + dest_ip_intranetip, + dest_ip_ioc, + desip_id, + desip_name, + tc_hostip, + desip_organization_id, + origin_confidence, + origin_malscore, + attacker_icampaign, + attacker_host_asset_id, + attacker_organization_id, + victim_host_asset_id, + victim_organization_id, + logout_time, + http_req_line, + desip_security_scope_id, + srcip_security_scope_id, + http_resp_length, + tc_attack_type, + tc_realip, + attacker_ip_lists, + login_password, + detail, + attacker_country_code, + attacker_region_code, + victim_region_code, + payload, + http_referer, + http_user_agent, + http_session, + http_query_string, + file_path, + file_permission, + login_abnormal_type, + file_tag, + file_platform, + target_ip, + collect_date, + tc_client_ip, + tc_server_ip, + tc_externalip, + http_status_code, + device_domian, + src_ip_str, + src_port_str, + dest_ip_str, + dest_port_str, + pcap, + ioc, + malicious_family, + vuln_cve, + aliyun_type, + attacker_host_asset_name, + attacker_organization_name, + ct_id, + cve_list, + desip_organization_name, + dest_ip_group, + file_gid, + file_owner, + file_ownergroup, + file_uid, + http_resp_cookie, + origin_rule_id, + origin_rule_name, + service_name, + src_ip_asset_group, + srcip_organization_name, + victim_host_asset_name, + http_resp_codes, + victim_organization_name, + tc_type, + direction, + http_req_cookie, + http_req_protocol, + http_req_header_raw, + http_url, + uname, + origin_hostname, + origin_os, + origin_agent_mac, + origin_host_id, + origin_agent_version, + origin_agent_id, + origin_agent_name, + origin_work_group, + origin_asset_group, + origin_local_port, + origin_agent_ip, + origin_internal_ip, + origin_external_ip, + origin_local_addr, + agent_id, + agent_name, + tc_title, + log_id, + event_date, + event_time_ts, + event_level, + src_ip , + src_port, + dest_ip, + dest_port, + event_time, + attacker_country, + src_mac, + dest_mac, + proto, + dev_id, + created_time, + src_country, + src_country_code, + src_region, + src_region_code, + src_city, + src_lon, + http_method, + http_host, + http_req_header, + http_req_body, + http_resp_header, + http_resp_body, + file_type, + file_md5, + file_size, + process, + start_time, + action, + attacker_region, + end_time, + file_created_time, + file_modified_time, + tc_miguan_scan_port, + process_path, + parent_process_path, + gname, + exe_name, + exe_path, + login_time, + login_times, + check_item, + check_type, + attacker_ip, + attacker_port, + victim_ip, + victim_port, + attacker_city, + attacker_lon, + attacker_lat, + victim_country, + victim_region, + victim_city, + victim_lon, + victim_lat, + origin_event_id, + origin_event_name, + origin_event_category, + origin_event_level, + origin_attack_chain, + engine_type, + evil_payload, + http_resp_status, + dns_query, + dns_query_type, + dns_ttl, + dns_answer, + dns_subdomains, + file_sha256, + file_ssdeep, + victim_country_code, + http_xff_ip, + tc_miguan_class, + pid, + ppid, + process_name, + backdoor_type, + tty, + sudo_user, + sudo_group, + origin_event_type, + dest_domain, + shell_cmdline, + parent_cmdline, + attack_chain, + process_tree, + host_file_sha256, + host_file_md5, + host_file_size, + host_file_type, + dest_country, + dest_country_code, + log_origin, + dest_region, + src_lat, + dest_region_code, + dest_city, + dest_lon, + dest_lat, + event_category, + attack_result, + probe_ip, + device_ip, + device_manufacturer, + device_name, + product_name, + __id, + __count, + __count_reason, + event_type, + protocol, + shell_cmd, + parent_name, + host_file_path, + uid, + fall, + tc_miguan_server_ip, + dev_type, + collect_method, + field_cate_id, + device_type, + tc_miguan_client_ip, + tc_miguan_name, + origin_total_packages, + origin_total_bytes, + origin_peak_packages_rate, + origin_peak_bytes_rate, + origin_peak_flows_rate, + apt_orgname, + apt_orgmsg, + mail_message_id, + mail_bcc, + mail_size, + mail_attach_hashcode, + mail_url, + mail_cc, + algorithm, + miningpool_ip, + process_md5, + pprocess_md5, + source_servername, + origin_source_servername, + mail_filename, + dst_upload_appname, + target_port, + gid, + origin_uid, + origin_gid, + target_ports, + tc_miguan_name1, + tc_miguan_class1, + etl_time, + tc_miguan_scan_port2, + desip_security_scope, + srcip_security_scope, + collect_time_ts, + tc_miguan_scan_port1, + src_dev_name, + collect_protocol, + destination_system_type, + destination_system, + etl_host, + normalize_rule_id, + normalize_rule_name, + syslog_uuid, + syslog_topic, + + VALUES + + #{dataMap.id}, + #{dataMap.created_at}, + #{dataMap.log_time}, + #{dataMap.device_id}, + #{dataMap.webshell_type}, + #{dataMap.vuirs_type}, + #{dataMap.vuirs_url}, + #{dataMap.class_filename}, + #{dataMap.class_path}, + #{dataMap.parent_class}, + #{dataMap.jar_path}, + #{dataMap.class_md5}, + #{dataMap.class_loader}, + #{dataMap.class_hashcode}, + #{dataMap.class_loader_hashcode}, + #{dataMap.tc_nameip}, + #{dataMap.perform_sql}, + #{dataMap.tc_account}, + #{dataMap.tc_appname}, + #{dataMap.process_uname}, + #{dataMap.p_process_uname}, + #{dataMap.container_name}, + #{dataMap.container_id}, + #{dataMap.http_resp_server}, + #{dataMap.srcip_id}, + #{dataMap.cdnip}::inet, + #{dataMap.natip}::inet, + #{dataMap.mail_sender}, + #{dataMap.mail_receiver}, + #{dataMap.vpn_mac}, + #{dataMap.vpn_os}, + #{dataMap.vpn_user}, + #{dataMap.vpn_groupname}, + #{dataMap.vpn_access_ip}, + #{dataMap.dest_ip_apt}, + #{dataMap.origin_attack_result}, + #{dataMap.description}, + #{dataMap.solution}, + #{dataMap.attack_cause}, + #{dataMap.username}, + #{dataMap.tc_flow_id}, + #{dataMap.login_result}, + #{dataMap.cmdline}, + #{dataMap.origin_attack_action}, + #{dataMap.victim_domain}, + #{dataMap.vpn_deviceid}, + #{dataMap.vpn_access_action}, + #{dataMap.file_access_time}, + #{dataMap.file_name}, + #{dataMap.tc_class}, + #{dataMap.tc_name2}, + #{dataMap.login_lasttime}, + #{dataMap.origin_permissions}, + #{dataMap.begin_permissions}, + #{dataMap.print_time}, + #{dataMap.printer}, + #{dataMap.printer_type}, + #{dataMap.print_pages}, + #{dataMap.print_copies}, + #{dataMap.src_device}, + #{dataMap.dst_device}, + #{dataMap.src_file}, + #{dataMap.src_file_type}, + #{dataMap.src_file_path}, + #{dataMap.dst_file}, + #{dataMap.dst_file_type}, + #{dataMap.dst_file_path}, + #{dataMap.dlp_policy_name}, + #{dataMap.dlp_policy_type}, + #{dataMap.dst_upload_url}, + #{dataMap.process_uuid}, + #{dataMap.p_process_uuid}, + #{dataMap.env}, + #{dataMap.brute_force_service}, + #{dataMap.vuirs_name}, + #{dataMap.http_req_length}, + #{dataMap.http_req_content_type}, + #{dataMap.tc_scan_port}::inet, + #{dataMap.tc_labels}::inet, + #{dataMap.http_resp_content_type}, + #{dataMap.dns_msg_type}, + #{dataMap.dns_answer_length}, + #{dataMap.dns_ioc}, + #{dataMap.tx_bytes}::double precision, + #{dataMap.rx_bytes}::double precision, + #{dataMap.all_bytes}::double precision, + #{dataMap.duration_time}, + #{dataMap.mail_attach_name}, + #{dataMap.mail_subject}, + #{dataMap.mail_message}, + #{dataMap.mail_send_server}, + #{dataMap.mail_agent}, + #{dataMap.tls_version}, + #{dataMap.tls_server_cert}, + #{dataMap.tls_server_suite}, + #{dataMap.tls_client_suites_len}, + #{dataMap.tls_ja3}, + #{dataMap.tls_ja3s}, + #{dataMap.vpn_access_port}, + #{dataMap.log_topic}, + #{dataMap.collect_time}, + #{dataMap.src_is_intranetip}, + #{dataMap.src_ip_ioc}, + #{dataMap.src_ip_apt}, + #{dataMap.srcip_name}, + #{dataMap.tc_client}, + #{dataMap.srcip_organization_id}, + #{dataMap.dest_ip_intranetip}, + #{dataMap.dest_ip_ioc}, + #{dataMap.desip_id}, + #{dataMap.desip_name}, + #{dataMap.tc_hostip}::inet, + #{dataMap.desip_organization_id}, + #{dataMap.origin_confidence}, + #{dataMap.origin_malscore}, + #{dataMap.attacker_icampaign}, + #{dataMap.attacker_host_asset_id}, + #{dataMap.attacker_organization_id}, + #{dataMap.victim_host_asset_id}, + #{dataMap.victim_organization_id}, + #{dataMap.logout_time}, + #{dataMap.http_req_line}, + #{dataMap.desip_security_scope_id}, + #{dataMap.srcip_security_scope_id}, + #{dataMap.http_resp_length}, + #{dataMap.tc_attack_type}, + #{dataMap.tc_realip}::inet, + #{dataMap.attacker_ip_lists}, + #{dataMap.login_password}, + #{dataMap.detail}, + #{dataMap.attacker_country_code}, + #{dataMap.attacker_region_code}, + #{dataMap.victim_region_code}, + #{dataMap.payload}, + #{dataMap.http_referer}, + #{dataMap.http_user_agent}, + #{dataMap.http_session}, + #{dataMap.http_query_string}, + #{dataMap.file_path}, + #{dataMap.file_permission}, + #{dataMap.login_abnormal_type}, + #{dataMap.file_tag}, + #{dataMap.file_platform}, + #{dataMap.target_ip}::inet, + #{dataMap.collect_date}, + #{dataMap.tc_client_ip}::inet, + #{dataMap.tc_server_ip}::inet, + #{dataMap.tc_externalip}::inet, + #{dataMap.http_status_code}, + #{dataMap.device_domian}, + #{dataMap.src_ip_str}, + #{dataMap.src_port_str}, + #{dataMap.dest_ip_str} , + CAST(#{dataMap.dest_port_str} AS text), + #{dataMap.pcap}, + #{dataMap.ioc}, + #{dataMap.malicious_family}, + #{dataMap.vuln_cve}, + #{dataMap.aliyun_type}, + #{dataMap.attacker_host_asset_name}, + #{dataMap.attacker_organization_name}, + #{dataMap.ct_id}, + #{dataMap.cve_list}, + #{dataMap.desip_organization_name}, + #{dataMap.dest_ip_group}, + #{dataMap.file_gid}, + #{dataMap.file_owner}, + #{dataMap.file_ownergroup}, + #{dataMap.file_uid}, + #{dataMap.http_resp_cookie}, + #{dataMap.origin_rule_id}, + #{dataMap.origin_rule_name}, + #{dataMap.service_name}, + #{dataMap.src_ip_asset_group}, + #{dataMap.srcip_organization_name}, + #{dataMap.victim_host_asset_name}, + #{dataMap.http_resp_codes}::bigint, + #{dataMap.victim_organization_name}, + #{dataMap.tc_type}, + #{dataMap.direction}, + #{dataMap.http_req_cookie}, + #{dataMap.http_req_protocol}, + #{dataMap.http_req_header_raw}, + #{dataMap.http_url}, + #{dataMap.uname}, + #{dataMap.origin_hostname}, + #{dataMap.origin_os}, + #{dataMap.origin_agent_mac}, + #{dataMap.origin_host_id}, + #{dataMap.origin_agent_version}, + #{dataMap.origin_agent_id}, + #{dataMap.origin_agent_name}, + #{dataMap.origin_work_group}, + #{dataMap.origin_asset_group}, + #{dataMap.origin_local_port}, + #{dataMap.origin_agent_ip}::inet, + #{dataMap.origin_internal_ip}::inet, + #{dataMap.origin_external_ip}::inet, + #{dataMap.origin_local_addr}::inet, + #{dataMap.agent_id}, + #{dataMap.agent_name}, + #{dataMap.tc_title}, + #{dataMap.log_id}, + #{dataMap.event_date}, + #{dataMap.event_time_ts}, + #{dataMap.event_level}::int , + #{dataMap.src_ip}::inet, + #{dataMap.src_port}::BIGINT , + #{dataMap.dest_ip}::inet, + #{dataMap.dest_port}::BIGINT, + #{dataMap.event_time}, + #{dataMap.attacker_country}, + #{dataMap.src_mac}, + #{dataMap.dest_mac}, + #{dataMap.proto}, + #{dataMap.dev_id}, + #{dataMap.created_time}, + #{dataMap.src_country}, + #{dataMap.src_country_code}, + #{dataMap.src_region}, + #{dataMap.src_region_code}, + #{dataMap.src_city}, + #{dataMap.src_lon}, + #{dataMap.http_method}, + #{dataMap.http_host}, + #{dataMap.http_req_header}, + #{dataMap.http_req_body}, + #{dataMap.http_resp_header}, + #{dataMap.http_resp_body}, + #{dataMap.file_type}, + #{dataMap.file_md5}, + #{dataMap.file_size}, + #{dataMap.process}, + #{dataMap.start_time}, + #{dataMap.action}, + #{dataMap.attacker_region}, + #{dataMap.end_time}, + #{dataMap.file_created_time}, + #{dataMap.file_modified_time}, + #{dataMap.tc_miguan_scan_port}::inet, + #{dataMap.process_path}, + #{dataMap.parent_process_path}, + #{dataMap.gname}, + #{dataMap.exe_name}, + #{dataMap.exe_path}, + #{dataMap.login_time}, + #{dataMap.login_times}, + #{dataMap.check_item}, + #{dataMap.check_type}, + #{dataMap.attacker_ip}::inet, + #{dataMap.attacker_port}, + #{dataMap.victim_ip}::inet, + #{dataMap.victim_port}, + #{dataMap.attacker_city}, + #{dataMap.attacker_lon}, + #{dataMap.attacker_lat}, + #{dataMap.victim_country}, + #{dataMap.victim_region}, + #{dataMap.victim_city}, + #{dataMap.victim_lon}, + #{dataMap.victim_lat}, + #{dataMap.origin_event_id}, + #{dataMap.origin_event_name}, + #{dataMap.origin_event_category}, + #{dataMap.origin_event_level}, + #{dataMap.origin_attack_chain}, + #{dataMap.engine_type}, + #{dataMap.evil_payload}, + #{dataMap.http_resp_status}, + #{dataMap.dns_query}, + #{dataMap.dns_query_type}, + #{dataMap.dns_ttl}, + #{dataMap.dns_answer}, + #{dataMap.dns_subdomains}, + #{dataMap.file_sha256}, + #{dataMap.file_ssdeep}, + #{dataMap.victim_country_code}, + #{dataMap.http_xff_ip}, + #{dataMap.tc_miguan_class}::inet, + #{dataMap.pid}, + #{dataMap.ppid}, + #{dataMap.process_name}, + #{dataMap.backdoor_type}, + #{dataMap.tty}, + #{dataMap.sudo_user}, + #{dataMap.sudo_group}, + #{dataMap.origin_event_type}, + #{dataMap.dest_domain}, + #{dataMap.shell_cmdline}, + #{dataMap.parent_cmdline}, + #{dataMap.attack_chain}, + #{dataMap.process_tree}, + #{dataMap.host_file_sha256}, + #{dataMap.host_file_md5}, + #{dataMap.host_file_size}, + #{dataMap.host_file_type}, + #{dataMap.dest_country}, + #{dataMap.dest_country_code}, + #{dataMap.log_origin}, + #{dataMap.dest_region}, + #{dataMap.src_lat}, + #{dataMap.dest_region_code}, + #{dataMap.dest_city}, + #{dataMap.dest_lon}, + #{dataMap.dest_lat}, + #{dataMap.event_category}, + #{dataMap.attack_result}, + #{dataMap.probe_ip}::inet, + #{dataMap.device_ip}::inet, + #{dataMap.device_manufacturer}, + #{dataMap.device_name}, + #{dataMap.product_name}, + #{dataMap.__id}, + #{dataMap.__count}, + #{dataMap.__count_reason}, + #{dataMap.event_type}::int, + #{dataMap.protocol}, + #{dataMap.shell_cmd}, + #{dataMap.parent_name}, + #{dataMap.host_file_path}, + #{dataMap.uid}, + #{dataMap.fall}, + #{dataMap.tc_miguan_server_ip}::inet, + #{dataMap.dev_type}, + #{dataMap.collect_method}, + #{dataMap.field_cate_id}, + #{dataMap.device_type}, + #{dataMap.tc_miguan_client_ip}::inet, + #{dataMap.tc_miguan_name}::inet, + #{dataMap.origin_total_packages}, + #{dataMap.origin_total_bytes}, + #{dataMap.origin_peak_packages_rate}, + #{dataMap.origin_peak_bytes_rate}, + #{dataMap.origin_peak_flows_rate}, + #{dataMap.apt_orgname}, + #{dataMap.apt_orgmsg}, + #{dataMap.mail_message_id}, + #{dataMap.mail_bcc}, + #{dataMap.mail_size}, + #{dataMap.mail_attach_hashcode}, + #{dataMap.mail_url}, + #{dataMap.mail_cc}, + #{dataMap.algorithm}, + #{dataMap.miningpool_ip}::inet, + #{dataMap.process_md5}, + #{dataMap.pprocess_md5}, + #{dataMap.source_servername}, + #{dataMap.origin_source_servername}, + #{dataMap.mail_filename}, + #{dataMap.dst_upload_appname}, + #{dataMap.target_port}, + #{dataMap.gid}, + #{dataMap.origin_uid}, + #{dataMap.origin_gid}, + #{dataMap.target_ports}, + #{dataMap.tc_miguan_name1}, + #{dataMap.tc_miguan_class1}, + #{dataMap.etl_time}, + #{dataMap.tc_miguan_scan_port2}, + #{dataMap.desip_security_scope}, + #{dataMap.srcip_security_scope}, + #{dataMap.collect_time_ts}, + #{dataMap.tc_miguan_scan_port1}::inet, + #{dataMap.src_dev_name}, + #{dataMap.collect_protocol}, + #{dataMap.destination_system_type}, + #{dataMap.destination_system}, + #{dataMap.etl_host}, + #{dataMap.normalize_rule_id}, + #{dataMap.normalize_rule_name}, + #{dataMap.syslog_uuid}, + #{dataMap.syslog_topic}, + + + + + + INSERT INTO syslog_normal_alarm + + id, + created_at, + log_time, + device_id, + + + VALUES + + #{id}, + #{createdAt}, + #{logTime}, + #{deviceId}, + + + + + + + INSERT INTO syslog_normal_alarm + (id, log_time, src_ip, dest_ip, event_level) + VALUES + + (#{item.id}, #{item.log_time}, #{item.src_ip}, #{item.dest_ip}, #{item.event_level}) + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNormalDataMapper.xml b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNormalDataMapper.xml new file mode 100644 index 0000000..f0af541 --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/SyslogNormalDataMapper.xml @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO syslog_normal_data + + id, + created_at, + log_time, + device_id, + webshell_type, + vuirs_type, + vuirs_url, + class_filename, + class_path, + parent_class, + jar_path, + class_md5, + class_loader, + class_hashcode, + class_loader_hashcode, + tc_nameip, + perform_sql, + tc_account, + tc_appname, + process_uname, + p_process_uname, + container_name, + container_id, + http_resp_server, + srcip_id, + cdnip, + natip, + mail_sender, + mail_receiver, + vpn_mac, + vpn_os, + vpn_user, + vpn_groupname, + vpn_access_ip, + dest_ip_apt, + origin_attack_result, + description, + solution, + attack_cause, + username, + tc_flow_id, + login_result, + cmdline, + origin_attack_action, + victim_domain, + vpn_deviceid, + vpn_access_action, + file_access_time, + file_name, + tc_class, + tc_name2, + login_lasttime, + origin_permissions, + begin_permissions, + print_time, + printer, + printer_type, + print_pages, + print_copies, + src_device, + dst_device, + src_file, + src_file_type, + src_file_path, + dst_file, + dst_file_type, + dst_file_path, + dlp_policy_name, + dlp_policy_type, + dst_upload_url, + process_uuid, + p_process_uuid, + env, + brute_force_service, + vuirs_name, + http_req_length, + http_req_content_type, + tc_scan_port, + tc_labels, + http_resp_content_type, + dns_msg_type, + dns_answer_length, + dns_ioc, + tx_bytes, + rx_bytes, + all_bytes, + duration_time, + mail_attach_name, + mail_subject, + mail_message, + mail_send_server, + mail_agent, + tls_version, + tls_server_cert, + tls_server_suite, + tls_client_suites_len, + tls_ja3, + tls_ja3s, + vpn_access_port, + log_topic, + collect_time, + src_is_intranetip, + src_ip_ioc, + src_ip_apt, + srcip_name, + tc_client, + srcip_organization_id, + dest_ip_intranetip, + dest_ip_ioc, + desip_id, + desip_name, + tc_hostip, + desip_organization_id, + origin_confidence, + origin_malscore, + attacker_icampaign, + attacker_host_asset_id, + attacker_organization_id, + victim_host_asset_id, + victim_organization_id, + logout_time, + http_req_line, + desip_security_scope_id, + srcip_security_scope_id, + http_resp_length, + tc_attack_type, + tc_realip, + attacker_ip_lists, + login_password, + detail, + attacker_country_code, + attacker_region_code, + victim_region_code, + payload, + http_referer, + http_user_agent, + http_session, + http_query_string, + file_path, + file_permission, + login_abnormal_type, + file_tag, + file_platform, + target_ip, + collect_date, + tc_client_ip, + tc_server_ip, + tc_externalip, + http_status_code, + device_domian, + src_ip_str, + src_port_str, + dest_ip_str, + dest_port_str, + pcap, + ioc, + malicious_family, + vuln_cve, + aliyun_type, + attacker_host_asset_name, + attacker_organization_name, + ct_id, + cve_list, + desip_organization_name, + dest_ip_group, + file_gid, + file_owner, + file_ownergroup, + file_uid, + http_resp_cookie, + origin_rule_id, + origin_rule_name, + service_name, + src_ip_asset_group, + srcip_organization_name, + victim_host_asset_name, + http_resp_codes, + victim_organization_name, + tc_type, + direction, + http_req_cookie, + http_req_protocol, + http_req_header_raw, + http_url, + uname, + origin_hostname, + origin_os, + origin_agent_mac, + origin_host_id, + origin_agent_version, + origin_agent_id, + origin_agent_name, + origin_work_group, + origin_asset_group, + origin_local_port, + origin_agent_ip, + origin_internal_ip, + origin_external_ip, + origin_local_addr, + agent_id, + agent_name, + tc_title, + log_id, + event_date, + event_time_ts, + event_level, + src_ip , + src_port, + dest_ip, + dest_port, + event_time, + attacker_country, + src_mac, + dest_mac, + proto, + dev_id, + created_time, + src_country, + src_country_code, + src_region, + src_region_code, + src_city, + src_lon, + http_method, + http_host, + http_req_header, + http_req_body, + http_resp_header, + http_resp_body, + file_type, + file_md5, + file_size, + process, + start_time, + action, + attacker_region, + end_time, + file_created_time, + file_modified_time, + tc_miguan_scan_port, + process_path, + parent_process_path, + gname, + exe_name, + exe_path, + login_time, + login_times, + check_item, + check_type, + attacker_ip, + attacker_port, + victim_ip, + victim_port, + attacker_city, + attacker_lon, + attacker_lat, + victim_country, + victim_region, + victim_city, + victim_lon, + victim_lat, + origin_event_id, + origin_event_name, + origin_event_category, + origin_event_level, + origin_attack_chain, + engine_type, + evil_payload, + http_resp_status, + dns_query, + dns_query_type, + dns_ttl, + dns_answer, + dns_subdomains, + file_sha256, + file_ssdeep, + victim_country_code, + http_xff_ip, + tc_miguan_class, + pid, + ppid, + process_name, + backdoor_type, + tty, + sudo_user, + sudo_group, + origin_event_type, + dest_domain, + shell_cmdline, + parent_cmdline, + attack_chain, + process_tree, + host_file_sha256, + host_file_md5, + host_file_size, + host_file_type, + dest_country, + dest_country_code, + log_origin, + dest_region, + src_lat, + dest_region_code, + dest_city, + dest_lon, + dest_lat, + event_category, + attack_result, + probe_ip, + device_ip, + device_manufacturer, + device_name, + product_name, + __id, + __count, + __count_reason, + event_type, + protocol, + shell_cmd, + parent_name, + host_file_path, + uid, + fall, + tc_miguan_server_ip, + dev_type, + collect_method, + field_cate_id, + device_type, + tc_miguan_client_ip, + tc_miguan_name, + origin_total_packages, + origin_total_bytes, + origin_peak_packages_rate, + origin_peak_bytes_rate, + origin_peak_flows_rate, + apt_orgname, + apt_orgmsg, + mail_message_id, + mail_bcc, + mail_size, + mail_attach_hashcode, + mail_url, + mail_cc, + algorithm, + miningpool_ip, + process_md5, + pprocess_md5, + source_servername, + origin_source_servername, + mail_filename, + dst_upload_appname, + target_port, + gid, + origin_uid, + origin_gid, + target_ports, + tc_miguan_name1, + tc_miguan_class1, + etl_time, + tc_miguan_scan_port2, + desip_security_scope, + srcip_security_scope, + collect_time_ts, + tc_miguan_scan_port1, + src_dev_name, + collect_protocol, + destination_system_type, + destination_system, + etl_host, + normalize_rule_id, + normalize_rule_name, + syslog_uuid, + syslog_topic, + + VALUES + + #{dataMap.id}, + #{dataMap.created_at}, + #{dataMap.log_time}, + #{dataMap.device_id}, + #{dataMap.webshell_type}, + #{dataMap.vuirs_type}, + #{dataMap.vuirs_url}, + #{dataMap.class_filename}, + #{dataMap.class_path}, + #{dataMap.parent_class}, + #{dataMap.jar_path}, + #{dataMap.class_md5}, + #{dataMap.class_loader}, + #{dataMap.class_hashcode}, + #{dataMap.class_loader_hashcode}, + #{dataMap.tc_nameip}, + #{dataMap.perform_sql}, + #{dataMap.tc_account}, + #{dataMap.tc_appname}, + #{dataMap.process_uname}, + #{dataMap.p_process_uname}, + #{dataMap.container_name}, + #{dataMap.container_id}, + #{dataMap.http_resp_server}, + #{dataMap.srcip_id}, + #{dataMap.cdnip}::inet, + #{dataMap.natip}::inet, + #{dataMap.mail_sender}, + #{dataMap.mail_receiver}, + #{dataMap.vpn_mac}, + #{dataMap.vpn_os}, + #{dataMap.vpn_user}, + #{dataMap.vpn_groupname}, + #{dataMap.vpn_access_ip}, + #{dataMap.dest_ip_apt}, + #{dataMap.origin_attack_result}, + #{dataMap.description}, + #{dataMap.solution}, + #{dataMap.attack_cause}, + #{dataMap.username}, + #{dataMap.tc_flow_id}, + #{dataMap.login_result}, + #{dataMap.cmdline}, + #{dataMap.origin_attack_action}, + #{dataMap.victim_domain}, + #{dataMap.vpn_deviceid}, + #{dataMap.vpn_access_action}, + #{dataMap.file_access_time}, + #{dataMap.file_name}, + #{dataMap.tc_class}, + #{dataMap.tc_name2}, + #{dataMap.login_lasttime}, + #{dataMap.origin_permissions}, + #{dataMap.begin_permissions}, + #{dataMap.print_time}, + #{dataMap.printer}, + #{dataMap.printer_type}, + #{dataMap.print_pages}, + #{dataMap.print_copies}, + #{dataMap.src_device}, + #{dataMap.dst_device}, + #{dataMap.src_file}, + #{dataMap.src_file_type}, + #{dataMap.src_file_path}, + #{dataMap.dst_file}, + #{dataMap.dst_file_type}, + #{dataMap.dst_file_path}, + #{dataMap.dlp_policy_name}, + #{dataMap.dlp_policy_type}, + #{dataMap.dst_upload_url}, + #{dataMap.process_uuid}, + #{dataMap.p_process_uuid}, + #{dataMap.env}, + #{dataMap.brute_force_service}, + #{dataMap.vuirs_name}, + #{dataMap.http_req_length}, + #{dataMap.http_req_content_type}, + #{dataMap.tc_scan_port}::inet, + #{dataMap.tc_labels}::inet, + #{dataMap.http_resp_content_type}, + #{dataMap.dns_msg_type}, + #{dataMap.dns_answer_length}, + #{dataMap.dns_ioc}, + #{dataMap.tx_bytes}::double precision, + #{dataMap.rx_bytes}::double precision, + #{dataMap.all_bytes}::double precision, + #{dataMap.duration_time}, + #{dataMap.mail_attach_name}, + #{dataMap.mail_subject}, + #{dataMap.mail_message}, + #{dataMap.mail_send_server}, + #{dataMap.mail_agent}, + #{dataMap.tls_version}, + #{dataMap.tls_server_cert}, + #{dataMap.tls_server_suite}, + #{dataMap.tls_client_suites_len}, + #{dataMap.tls_ja3}, + #{dataMap.tls_ja3s}, + #{dataMap.vpn_access_port}, + #{dataMap.log_topic}, + #{dataMap.collect_time}, + #{dataMap.src_is_intranetip}, + #{dataMap.src_ip_ioc}, + #{dataMap.src_ip_apt}, + #{dataMap.srcip_name}, + #{dataMap.tc_client}, + #{dataMap.srcip_organization_id}, + #{dataMap.dest_ip_intranetip}, + #{dataMap.dest_ip_ioc}, + #{dataMap.desip_id}, + #{dataMap.desip_name}, + #{dataMap.tc_hostip}::inet, + #{dataMap.desip_organization_id}, + #{dataMap.origin_confidence}, + #{dataMap.origin_malscore}, + #{dataMap.attacker_icampaign}, + #{dataMap.attacker_host_asset_id}, + #{dataMap.attacker_organization_id}, + #{dataMap.victim_host_asset_id}, + #{dataMap.victim_organization_id}, + #{dataMap.logout_time}, + #{dataMap.http_req_line}, + #{dataMap.desip_security_scope_id}, + #{dataMap.srcip_security_scope_id}, + #{dataMap.http_resp_length}, + #{dataMap.tc_attack_type}, + #{dataMap.tc_realip}::inet, + #{dataMap.attacker_ip_lists}, + #{dataMap.login_password}, + #{dataMap.detail}, + #{dataMap.attacker_country_code}, + #{dataMap.attacker_region_code}, + #{dataMap.victim_region_code}, + #{dataMap.payload}, + #{dataMap.http_referer}, + #{dataMap.http_user_agent}, + #{dataMap.http_session}, + #{dataMap.http_query_string}, + #{dataMap.file_path}, + #{dataMap.file_permission}, + #{dataMap.login_abnormal_type}, + #{dataMap.file_tag}, + #{dataMap.file_platform}, + #{dataMap.target_ip}::inet, + #{dataMap.collect_date}, + #{dataMap.tc_client_ip}::inet, + #{dataMap.tc_server_ip}::inet, + #{dataMap.tc_externalip}::inet, + #{dataMap.http_status_code}, + #{dataMap.device_domian}, + #{dataMap.src_ip_str}, + #{dataMap.src_port_str}, + #{dataMap.dest_ip_str} , + CAST(#{dataMap.dest_port_str} AS text), + #{dataMap.pcap}, + #{dataMap.ioc}, + #{dataMap.malicious_family}, + #{dataMap.vuln_cve}, + #{dataMap.aliyun_type}, + #{dataMap.attacker_host_asset_name}, + #{dataMap.attacker_organization_name}, + #{dataMap.ct_id}, + #{dataMap.cve_list}, + #{dataMap.desip_organization_name}, + #{dataMap.dest_ip_group}, + #{dataMap.file_gid}, + #{dataMap.file_owner}, + #{dataMap.file_ownergroup}, + #{dataMap.file_uid}, + #{dataMap.http_resp_cookie}, + #{dataMap.origin_rule_id}, + #{dataMap.origin_rule_name}, + #{dataMap.service_name}, + #{dataMap.src_ip_asset_group}, + #{dataMap.srcip_organization_name}, + #{dataMap.victim_host_asset_name}, + #{dataMap.http_resp_codes}::bigint, + #{dataMap.victim_organization_name}, + #{dataMap.tc_type}, + #{dataMap.direction}, + #{dataMap.http_req_cookie}, + #{dataMap.http_req_protocol}, + #{dataMap.http_req_header_raw}, + #{dataMap.http_url}, + #{dataMap.uname}, + #{dataMap.origin_hostname}, + #{dataMap.origin_os}, + #{dataMap.origin_agent_mac}, + #{dataMap.origin_host_id}, + #{dataMap.origin_agent_version}, + #{dataMap.origin_agent_id}, + #{dataMap.origin_agent_name}, + #{dataMap.origin_work_group}, + #{dataMap.origin_asset_group}, + #{dataMap.origin_local_port}, + #{dataMap.origin_agent_ip}::inet, + #{dataMap.origin_internal_ip}::inet, + #{dataMap.origin_external_ip}::inet, + #{dataMap.origin_local_addr}::inet, + #{dataMap.agent_id}, + #{dataMap.agent_name}, + #{dataMap.tc_title}, + #{dataMap.log_id}, + #{dataMap.event_date}, + #{dataMap.event_time_ts}, + #{dataMap.event_level}::int , + #{dataMap.src_ip}::inet, + #{dataMap.src_port}::BIGINT , + #{dataMap.dest_ip}::inet, + #{dataMap.dest_port}::BIGINT, + #{dataMap.event_time}, + #{dataMap.attacker_country}, + #{dataMap.src_mac}, + #{dataMap.dest_mac}, + #{dataMap.proto}, + #{dataMap.dev_id}, + #{dataMap.created_time}, + #{dataMap.src_country}, + #{dataMap.src_country_code}, + #{dataMap.src_region}, + #{dataMap.src_region_code}, + #{dataMap.src_city}, + #{dataMap.src_lon}, + #{dataMap.http_method}, + #{dataMap.http_host}, + #{dataMap.http_req_header}, + #{dataMap.http_req_body}, + #{dataMap.http_resp_header}, + #{dataMap.http_resp_body}, + #{dataMap.file_type}, + #{dataMap.file_md5}, + #{dataMap.file_size}, + #{dataMap.process}, + #{dataMap.start_time}, + #{dataMap.action}, + #{dataMap.attacker_region}, + #{dataMap.end_time}, + #{dataMap.file_created_time}, + #{dataMap.file_modified_time}, + #{dataMap.tc_miguan_scan_port}::inet, + #{dataMap.process_path}, + #{dataMap.parent_process_path}, + #{dataMap.gname}, + #{dataMap.exe_name}, + #{dataMap.exe_path}, + #{dataMap.login_time}, + #{dataMap.login_times}, + #{dataMap.check_item}, + #{dataMap.check_type}, + #{dataMap.attacker_ip}::inet, + #{dataMap.attacker_port}, + #{dataMap.victim_ip}::inet, + #{dataMap.victim_port}, + #{dataMap.attacker_city}, + #{dataMap.attacker_lon}, + #{dataMap.attacker_lat}, + #{dataMap.victim_country}, + #{dataMap.victim_region}, + #{dataMap.victim_city}, + #{dataMap.victim_lon}, + #{dataMap.victim_lat}, + #{dataMap.origin_event_id}, + #{dataMap.origin_event_name}, + #{dataMap.origin_event_category}, + #{dataMap.origin_event_level}, + #{dataMap.origin_attack_chain}, + #{dataMap.engine_type}, + #{dataMap.evil_payload}, + #{dataMap.http_resp_status}, + #{dataMap.dns_query}, + #{dataMap.dns_query_type}, + #{dataMap.dns_ttl}, + #{dataMap.dns_answer}, + #{dataMap.dns_subdomains}, + #{dataMap.file_sha256}, + #{dataMap.file_ssdeep}, + #{dataMap.victim_country_code}, + #{dataMap.http_xff_ip}, + #{dataMap.tc_miguan_class}::inet, + #{dataMap.pid}, + #{dataMap.ppid}, + #{dataMap.process_name}, + #{dataMap.backdoor_type}, + #{dataMap.tty}, + #{dataMap.sudo_user}, + #{dataMap.sudo_group}, + #{dataMap.origin_event_type}, + #{dataMap.dest_domain}, + #{dataMap.shell_cmdline}, + #{dataMap.parent_cmdline}, + #{dataMap.attack_chain}, + #{dataMap.process_tree}, + #{dataMap.host_file_sha256}, + #{dataMap.host_file_md5}, + #{dataMap.host_file_size}, + #{dataMap.host_file_type}, + #{dataMap.dest_country}, + #{dataMap.dest_country_code}, + #{dataMap.log_origin}, + #{dataMap.dest_region}, + #{dataMap.src_lat}, + #{dataMap.dest_region_code}, + #{dataMap.dest_city}, + #{dataMap.dest_lon}, + #{dataMap.dest_lat}, + #{dataMap.event_category}, + #{dataMap.attack_result}, + #{dataMap.probe_ip}::inet, + #{dataMap.device_ip}::inet, + #{dataMap.device_manufacturer}, + #{dataMap.device_name}, + #{dataMap.product_name}, + #{dataMap.__id}, + #{dataMap.__count}, + #{dataMap.__count_reason}, + #{dataMap.event_type}::int, + #{dataMap.protocol}, + #{dataMap.shell_cmd}, + #{dataMap.parent_name}, + #{dataMap.host_file_path}, + #{dataMap.uid}, + #{dataMap.fall}, + #{dataMap.tc_miguan_server_ip}::inet, + #{dataMap.dev_type}, + #{dataMap.collect_method}, + #{dataMap.field_cate_id}, + #{dataMap.device_type}, + #{dataMap.tc_miguan_client_ip}::inet, + #{dataMap.tc_miguan_name}::inet, + #{dataMap.origin_total_packages}, + #{dataMap.origin_total_bytes}, + #{dataMap.origin_peak_packages_rate}, + #{dataMap.origin_peak_bytes_rate}, + #{dataMap.origin_peak_flows_rate}, + #{dataMap.apt_orgname}, + #{dataMap.apt_orgmsg}, + #{dataMap.mail_message_id}, + #{dataMap.mail_bcc}, + #{dataMap.mail_size}, + #{dataMap.mail_attach_hashcode}, + #{dataMap.mail_url}, + #{dataMap.mail_cc}, + #{dataMap.algorithm}, + #{dataMap.miningpool_ip}::inet, + #{dataMap.process_md5}, + #{dataMap.pprocess_md5}, + #{dataMap.source_servername}, + #{dataMap.origin_source_servername}, + #{dataMap.mail_filename}, + #{dataMap.dst_upload_appname}, + #{dataMap.target_port}, + #{dataMap.gid}, + #{dataMap.origin_uid}, + #{dataMap.origin_gid}, + #{dataMap.target_ports}, + #{dataMap.tc_miguan_name1}, + #{dataMap.tc_miguan_class1}, + #{dataMap.etl_time}, + #{dataMap.tc_miguan_scan_port2}, + #{dataMap.desip_security_scope}, + #{dataMap.srcip_security_scope}, + #{dataMap.collect_time_ts}, + #{dataMap.tc_miguan_scan_port1}::inet, + #{dataMap.src_dev_name}, + #{dataMap.collect_protocol}, + #{dataMap.destination_system_type}, + #{dataMap.destination_system}, + #{dataMap.etl_host}, + #{dataMap.normalize_rule_id}, + #{dataMap.normalize_rule_name}, + #{dataMap.syslog_uuid}, + #{dataMap.syslog_topic}, + + + + + + INSERT INTO syslog_normal_data + + id, + created_at, + log_time, + device_id, + + + VALUES + + #{id}, + #{createdAt}, + #{logTime}, + #{deviceId}, + + + + + + + INSERT INTO syslog_normal_data + (id, log_time, src_ip, dest_ip, event_level) + VALUES + + (#{item.id}, #{item.log_time}, #{item.src_ip}, #{item.dest_ip}, #{item.event_level}) + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/XdrHoneypotMapper.xml b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/XdrHoneypotMapper.xml new file mode 100644 index 0000000..ab123b9 --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/main/resources/mapper/XdrHoneypotMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO xdr_honeypot ( + vcsource, dstart_time, dtime, risk_level, vcconnection, + file_info, extra, vctype, agent_sn, agent_name, + honeypot_id, honeypot_name, src_ip, src_port, src_mac, + dest_ip, dest_port, proxy_ip, node + ) VALUES + + ( + #{item.vcsource}, #{item.dstartTime}, #{item.dtime}, #{item.riskLevel}, #{item.vcconnection}, + #{item.fileInfo}, #{item.extra}, #{item.vctype}, #{item.agentSn}, #{item.agentName}, + #{item.honeypotId}, #{item.honeypotName}, #{item.srcIp}, #{item.srcPort}, #{item.srcMac}, + #{item.destIp}, #{item.destPort}, #{item.proxyIp}, #{item.node} + ) + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/main/resources/mybatis-config-dev.xml b/haobang-security-xdr/syslog-consumer/src/main/resources/mybatis-config-dev.xml new file mode 100644 index 0000000..2959192 --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/main/resources/mybatis-config-dev.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/main/resources/mybatis-config.xml b/haobang-security-xdr/syslog-consumer/src/main/resources/mybatis-config.xml new file mode 100644 index 0000000..e1b8281 --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/main/resources/mybatis-config.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/test/java/SyslogParserDemo.java b/haobang-security-xdr/syslog-consumer/src/test/java/SyslogParserDemo.java new file mode 100644 index 0000000..1da7334 --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/test/java/SyslogParserDemo.java @@ -0,0 +1,78 @@ +import com.common.entity.*; +import com.common.util.SyslogParser; +import java.util.Locale; +import java.util.Optional; + +public class SyslogParserDemo { + public static void main(String[] args) { + // RFC 5424 测试用例 + String[] rfc5424Logs = { + "<4>2025-09-14T16:27:09+08:00 hcss-ecs-9dc5 HFish[2946163]: {\"title\":\"HFish Threat Alert\",\"client\":\"内置节点\"}", + "<34>1 2023-10-27T14:30:15.123Z web-server-01 myapp 1234 ID47 - This is a test message", + "<165>1 2023-10-27T15:45:30.000+08:00 firewall01 sshd 5678 - [event source=\"auth\" result=\"failure\"] Failed password for user", + "<14>1 2023-10-27T16:20:45.789Z db-server-01 postgres 9012 DB01 [metrics query_time=\"150ms\" rows=100] SELECT completed", + "<14>1 2025-09-24T11:52:26Z 5f46d3be75e1 supermario 128 honeypot_event - {\"source\":\"honeypot1\",\"id\":\"f6a13c35-bf9d-4da6-a181-50ce23e7ef6a\",\"start_time\":\"2023-09-03T11:07:02.50167643Z\",\"time\":\"2023-09-03T11:16:18.883885281Z\",\"risk_level\":4,\"connection\":\"b18f3fbe-3fbf-4495-815f-ff26f6fb0bdf\",\"file_info\":null,\"extra\":{\"payload\":{\"format\":\"line\",\"name\":{\"cn\":\"攻击载荷\",\"en\":\"payload\"},\"value\":\"\"},\"uid\":{\"format\":\"line\",\"name\":{\"cn\":\"\",\"en\":\"\"},\"uid\":\"b4cbc73c-25d0-4429-ae1b-a856cdf1a651\",\"value\":\"\"}},\"type\":\"WEB_ATTACK_SCANNER\",\"agent_sn\":\"caa7da42-0cca-4cb1-b501-1f1eb2b588d5\",\"agent_name\":\" 教育局蜜罐探针\",\"honeypot_id\":\"11a9ac6bdf38ae2aaa49ec4f1b4a921bff71952cb9f175bdd8ee1f0497057bc6\",\"honeypot_name\":\"茂名市中小学管理平台管理后台\",\"src_ip\":\"117.50.189.7\",\"src_port\":58512,\"src_mac\":\"\",\"dest_ip\":\"192.168.222.2\",\"dest_port\":9200,\"proxy_ip\":null,\"node\":\"WRx3\"}", + "<4>2025-09-14T16:27:09+08:00 hcss-ecs-9dc5 HFish[2946163]: {\"title\":\"HFish Threat Alert\",\"client\":\"内置节点\",\"client_ip\":\"192.168.11.133\",\"attack_type\":\"attack\",\"scan_type\":\"\",\"scan_port\":\"\",\"class\":\"端口监听\",\"type\":\"TCP\",\"name\":\"TCP端口监听\",\"account\":\"\",\"src_ip\":\"36.154.189.226\",\"src_port\":\"29604\",\"dst_ip\":\"192.168.11.133\",\"dst_port\":\"445\",\"geo\":\"中国-江苏\",\"time\":\"2025-09-14 16:27:09\",\"threat_name\":\"\",\"threat_level\":\"other\",\"info\":\"36.154.189.226:29604 already connected.\",\"labels\":\"\",\"labels_cn\":\"\",\"AuthInfo\":null}" + }; + + // RFC 3164 测试用例 + String[] rfc3164Logs = { + "<15>Oct 9 21:15:55 LAPTOP-ARDUR3N0 alan: honeypot_event", + "<34>Oct 27 14:30:15 web01 sshd[1234]: Failed password for root", + "<13>Oct 27 15:45:30 firewall01 %ASA-6-302013: Built outbound TCP connection", + "<7>Oct 27 16:20:45 appserver kernel: USB device disconnected" + }; + + + System.out.println("=== RFC 5424 格式解析 ==="); + for (String log : rfc5424Logs) { + + try { + SyslogMessage msg = SyslogParser.parse(log); + System.out.println("原始日志: " + log); + System.out.println("解析结果: " + msg); + + System.out.println("---"); + + + } catch (Exception e) { + System.err.println("解析失败: " + log); + System.err.println("错误: " + e.getMessage()); + //Optional msg1=SyslogParser.extractJsonString(log); + // System.err.println("内容解析结果: " + msg1.toString()); + } + } + + System.out.println("\n=== RFC 3164 格式解析 ==="); + for (String log : rfc3164Logs) { + try { + SyslogMessage msg = SyslogParser.parse(log); + System.out.println("原始日志: " + log); + System.out.println("解析结果: " + msg); + System.out.println("---"); + } catch (Exception e) { + System.err.println("解析失败: " + log); + System.err.println("错误: " + e.getMessage()); + } + } + + // 测试自动检测 + System.out.println("\n=== 混合格式自动检测 ==="); + String[] mixedLogs = { + "<34>1 2023-10-27T14:30:15.123Z web01 myapp 1234 - - Test RFC5424", + "<13>Oct 27 15:45:30 web02 kernel: Test RFC3164" + }; + + for (String log : mixedLogs) { + try { + SyslogMessage msg = SyslogParser.parse(log); + System.out.println("检测到格式: " + msg.getClass().getSimpleName()); + System.out.println("解析结果: " + msg); + System.out.println("---"); + } catch (Exception e) { + System.err.println("解析失败: " + log); + System.err.println("错误: " + e.getMessage()); + } + } + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-consumer/src/test/java/syslogMainTest.java b/haobang-security-xdr/syslog-consumer/src/test/java/syslogMainTest.java new file mode 100644 index 0000000..adf964e --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/src/test/java/syslogMainTest.java @@ -0,0 +1,2 @@ +public class syslogMainTest { +} diff --git a/haobang-security-xdr/syslog-consumer/syslogconsumer.iml b/haobang-security-xdr/syslog-consumer/syslogconsumer.iml new file mode 100644 index 0000000..51d3ca8 --- /dev/null +++ b/haobang-security-xdr/syslog-consumer/syslogconsumer.iml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/.gitignore b/haobang-security-xdr/syslog-serve/.gitignore new file mode 100644 index 0000000..549e00a --- /dev/null +++ b/haobang-security-xdr/syslog-serve/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/haobang-security-xdr/syslog-serve/Dockerfile b/haobang-security-xdr/syslog-serve/Dockerfile new file mode 100644 index 0000000..69856a3 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/Dockerfile @@ -0,0 +1,18 @@ +FROM openjdk:8 + +MAINTAINER chenchunan@139.com + +# 创建程序运行和日志目录 +RUN mkdir -p /app +RUN mkdir -p /app/logs +WORKDIR /app +# 挂载日志运行目录 +VOLUME /app/logs + +ADD syslog-serve-1.0.0.jar syslog-serve.jar +EXPOSE 8089 +EXPOSE 514 + +CMD java -jar syslog-serve.jar + + diff --git a/haobang-security-xdr/syslog-serve/docker_run.txt b/haobang-security-xdr/syslog-serve/docker_run.txt new file mode 100644 index 0000000..caabee0 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/docker_run.txt @@ -0,0 +1,46 @@ + + + +--0.л˴Ŀ¼ +cd /opt/syslog/docker/serve + +--0.ͨDockerfileļ +--docker build -f /opt/syslog/docker/serve/Dockerfile -t syslog-serve:v1.0 +--docker imageļ (Dockerfile ǰĿ¼ +docker build -t syslog-serve:v1.X.X . + +--1.鿴 +docker ps -a + +--2.ֹͣ ɾ +docker stop ct-syslog-serve && docker rm ct-syslog-serve +docker rmi ID(XXXXX) + +--3.docker imageļ (Dockerfile ǰĿ¼ +docker build -t syslog-serve:v1.X.X . + +--4.docker ļ +docker run --restart unless-stopped -e TZ=Asia/Shanghai -d --name ct-syslog-serve -p 514:514 -p 8189:8189 -v /home/syslog/logs:/app/logs --privileged=true syslog-serve:v1.X.X +docker run --restart unless-stopped -e TZ=Asia/Shanghai -d --name ct-syslog-serve -p 514:514/udp -p 514:514/tcp -p 8189:8189 -v /home/syslog/logs:/app/logs --privileged=true syslog-serve:v1.X.X + +ZC CMD +docker run --restart unless-stopped -e TZ=Asia/Shanghai -d --name ct-syslog-serve -p 514:514 -p 8189:8189 -v /data/syslog/logs:/app/logs --privileged=true syslog-serve:v1.X.X + +docker run --restart unless-stopped -e TZ=Asia/Shanghai -d --name ct-syslog-serve -p 514:514/udp -p 514:514/tcp -p 8189:8189 -v /data/syslog/logs:/app/logs --privileged=true syslog-serve:v1.X.X +-- +docker run -d --name ct-syslog-serve -p 514:514 --privileged=true syslog-serve:v1.0 + + +-----jar +--cmd +nohup java -server -Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai -jar syslog-serve-1.0.0.jar > /data/syslog/logs/syslog-serve-console.log 2>&1 & +--cmd 鿴 +ps -ef | grep 'syslog-serve-1.0.0.jar' | grep -v grep +# Java +ps -ef | grep java | grep -v grep + +# ʾ PID 12345 +kill 12345 +# ֹͨͣ +# ǿֹͣ +pkill -9 -f "syslog-serve-1.0.0.jar" \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/logs/syslog-consumer.log b/haobang-security-xdr/syslog-serve/logs/syslog-consumer.log new file mode 100644 index 0000000..fcb8168 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/logs/syslog-consumer.log @@ -0,0 +1,7 @@ +2025-12-03 02:00:00.002 [scheduling-2] INFO c.c.schedule.PartitionTableSchedule - 开始检查第二天的分区表状态... +2025-12-03 02:00:00.002 [scheduling-1] INFO c.c.schedule.PartitionTableSchedule - 开始检查分区表状态... +2025-12-03 02:00:00.004 [scheduling-1] INFO c.c.schedule.PartitionTableSchedule - 分区表状态检查完成 +2025-12-03 02:00:00.016 [scheduling-2] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-12-03 02:00:00.249 [scheduling-2] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-12-03 02:00:00.283 [scheduling-2] INFO c.c.service.PartitionTableService - 第二天分区表检查完成: PartitionTableStatus{date=2025年12月04日, table=syslog_normal_data_20251204, exists=true, created=false, message='分区表已存在'} +2025-12-03 02:00:00.284 [scheduling-2] INFO c.c.schedule.PartitionTableSchedule - 第二天分区表已存在: syslog_normal_data_20251204 diff --git a/haobang-security-xdr/syslog-serve/logs/syslog-serve-console.log b/haobang-security-xdr/syslog-serve/logs/syslog-serve-console.log new file mode 100644 index 0000000..9cfe145 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/logs/syslog-serve-console.log @@ -0,0 +1,4 @@ +nohup: 忽略输入 +Unrecognized option: -syslog-serve-1.0.0.jar +Error: Could not create the Java Virtual Machine. +Error: A fatal exception has occurred. Program will exit. diff --git a/haobang-security-xdr/syslog-serve/logs/syslog-serve.log b/haobang-security-xdr/syslog-serve/logs/syslog-serve.log new file mode 100644 index 0000000..ea15e05 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/logs/syslog-serve.log @@ -0,0 +1,13 @@ +2025-12-29 15:11:48.634 [main] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.haobang.syslog.SysjavacollectApplicationTests], using SpringBootContextLoader +2025-12-29 15:11:48.635 [main] INFO o.s.t.c.s.AbstractContextLoader - Could not detect default resource locations for test class [com.haobang.syslog.SysjavacollectApplicationTests]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-29 15:11:48.635 [main] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [com.haobang.syslog.SysjavacollectApplicationTests]: SysjavacollectApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-29 15:11:48.785 [main] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration com.SyslogServeMainApp for test class com.haobang.syslog.SysjavacollectApplicationTests +2025-12-29 15:11:48.918 [main] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener] +2025-12-29 15:11:48.938 [main] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@479ceda0, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@6d07a63d, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@571c5681, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@488d1cd7, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@68dc098b, org.springframework.test.context.support.DirtiesContextTestExecutionListener@38ba6ce3, org.springframework.test.context.transaction.TransactionalTestExecutionListener@d278d2b, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@2d6c53fc, org.springframework.test.context.event.EventPublishingTestExecutionListener@25f4878b, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@4e423aa2, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@7fbdb894, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@3081f72c, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@3148f668, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@6e005dc9, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@7ceb3185] +2025-12-29 15:11:49.275 [main] INFO c.h.s.SysjavacollectApplicationTests - Starting SysjavacollectApplicationTests using Java 1.8.0_121 on LAPTOP-ARDUR3N0 with PID 18832 (started by chenc in E:\GIT_GOSAME\haobang-security-xdr\syslog-serve) +2025-12-29 15:11:49.275 [main] INFO c.h.s.SysjavacollectApplicationTests - No active profile set, falling back to 1 default profile: "default" +2025-12-29 15:11:49.301 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.2.5.Final +2025-12-29 15:11:50.763 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-12-29 15:11:50.766 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-12-29 15:11:50.890 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 110 ms. Found 0 Redis repository interfaces. +2025-12-29 15:11:58.435 [main] INFO c.h.s.SysjavacollectApplicationTests - Started SysjavacollectApplicationTests in 9.452 seconds (JVM running for 10.738) diff --git a/haobang-security-xdr/syslog-serve/mvnw b/haobang-security-xdr/syslog-serve/mvnw new file mode 100644 index 0000000..8a8fb22 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/mvnw @@ -0,0 +1,316 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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 +# +# https://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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`\\unset -f command; \\command -v java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/haobang-security-xdr/syslog-serve/mvnw.cmd b/haobang-security-xdr/syslog-serve/mvnw.cmd new file mode 100644 index 0000000..1d8ab01 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/mvnw.cmd @@ -0,0 +1,188 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/haobang-security-xdr/syslog-serve/pom.xml b/haobang-security-xdr/syslog-serve/pom.xml new file mode 100644 index 0000000..7467e0e --- /dev/null +++ b/haobang-security-xdr/syslog-serve/pom.xml @@ -0,0 +1,200 @@ + + + 4.0.0 + + security-xdr + com.haobang + 1.0.0 + + com.haobang + syslog-serve + 1.0.0 + syslog-serve + hb-security-xdr project for Spring Boot + + 1.8 + UTF-8 + 4.1.92.Final + 1.7.36 + 3.5.10 + 42.5.4 + 1.4.6 + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-web + + + + org.graylog2 + syslog4j + 0.9.61 + + + + + + com.alibaba.fastjson2 + fastjson2 + 2.0.40 + + + + cn.hutool + hutool-all + 5.8.16 + + + org.apache.kafka + kafka-clients + 3.4.0 + + + + + + + io.netty + netty-all + 4.1.92.Final + + + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + org.slf4j + slf4j-simple + 2.0.7 + + + + org.springframework.boot + spring-boot-starter + + + com.typesafe + config + 1.4.2 + + + + + + com.fasterxml.jackson.core + jackson-core + 2.13.3 + + + com.fasterxml.jackson.core + jackson-annotations + 2.13.3 + + + com.fasterxml.jackson.core + jackson-databind + 2.13.3 + + + + ch.qos.logback + logback-classic + 1.2.11 + + + + + + org.mybatis + mybatis + ${mybatis.version} + + + + + org.postgresql + postgresql + ${postgresql.version} + + + + com.fasterxml.jackson.core + jackson-databind + 2.13.3 + + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.3.1 + + + + + org.springframework.boot + spring-boot-starter-cache + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + + + + org.projectlombok + lombok + true + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper.version} + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + src/main/resources + false + + + + + diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/Modules/Device/DeviceProcess.java b/haobang-security-xdr/syslog-serve/src/main/java/com/Modules/Device/DeviceProcess.java new file mode 100644 index 0000000..c07f90f --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/Modules/Device/DeviceProcess.java @@ -0,0 +1,162 @@ +package com.Modules.Device; + + +import com.common.entity.DeviceDevice; +import com.haobang.config.AppConfig; +import com.kafka.kafkaProducer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import com.common.service.DeviceDeviceService; +import com.common.service.DeviceUnknownService; +import com.common.service.DeviceCollectTaskService; +import com.haobang.util.SpringContextUtil; + +import java.time.format.DateTimeFormatter; +import java.util.List; +import com.common.entity.DeviceUnknown; +import com.common.entity.DeviceCollectTask; +import org.springframework.stereotype.Service; +import java.time.LocalDateTime; +import com.common.service.DeviceReceiveLogService; +import com.common.entity.DeviceReceiveLog; + +import org.springframework.cache.CacheManager; + +public class DeviceProcess { + + private static final Logger logger = LoggerFactory.getLogger(DeviceProcess.class); + + @Autowired + public static DeviceDeviceService deviceDeviceService =SpringContextUtil.getBean(DeviceDeviceService.class); + @Autowired + public static DeviceUnknownService deviceUnknownService =SpringContextUtil.getBean(DeviceUnknownService.class); + @Autowired + public static DeviceCollectTaskService deviceCollectTaskService =SpringContextUtil.getBean(DeviceCollectTaskService.class); + + @Autowired + public static DeviceReceiveLogService deviceReceiveLogService =SpringContextUtil.getBean(DeviceReceiveLogService.class); + + + @Autowired + private DeviceDevice deviceDevice ; + @Autowired + private DeviceReceiveLog devicelog; + private String sourceIP; + + public DeviceProcess(String source_ip) { + sourceIP=source_ip; + List deviceList = deviceDeviceService.getByIpSafely(source_ip); + if (deviceList.size() >0) + { + deviceDevice= deviceList.get(0); + } + } + public DeviceDevice getDeviceDevice() + { + if(deviceDevice!=null) return this.deviceDevice; + return null; + } + + public DeviceReceiveLog getDeviceReceiveLog() + { + if(devicelog!=null) return this.devicelog; + return null; + } + public int getDeviceID(String source_ip) + { + //默认deviceId =-1 + int deviceId=-1 ; + List deviceList= deviceDeviceService.getByIpSafely(source_ip); + if(deviceList.isEmpty()) { + logger.error("设备请求的Host IP非系统注册,请联系管理员添加设备信息!"); + return deviceId; + } + if(deviceList.size()>1) + { + logger.error("设备请求的Host IP注册超过一条记录,请联系管理员处理!"); + return deviceId; + } + return deviceList.get(0).getId(); + } + + public boolean IsBelongDeviceCollectTask( ) + { + //当前判断是否归属 + if(deviceDevice!=null ) + { + int deviceCollectId =AppConfig.getDeviceCollectId(); + if(deviceDevice.getDeviceCollectId()!=deviceCollectId) + { + logger.error("设备请求的Host IP不属于当前采集探针任务,请联系管理员核实!"); + return false; + } + } + return true; + } + public boolean saveDeviceUnknow(String networkProtocol) + { + DeviceUnknown deviceUnknown =new DeviceUnknown() ; + List deviceList =deviceUnknownService.getDevicesByIp(this.sourceIP); + // 获取当前时间 + LocalDateTime currentTime = LocalDateTime.now(); + try + { + //已有deviceUnknow记录则更新最后发现时间 + if(deviceList.size()>0) + { + deviceUnknownService.updateLastTime( deviceList.get(0).getId(),currentTime ); + System.out.println("更新未知设备的最后发现时间,IP:"+this.sourceIP); + } + else { + //创建未知设备记录 + DeviceCollectTask deviceCollectTask= deviceCollectTaskService.getById(AppConfig.getDeviceCollectId()); + deviceUnknown.setDeviceCollectId( AppConfig.getDeviceCollectId()); + deviceUnknown.setDeviceIp( this.sourceIP); + deviceUnknown.setFirstTime(currentTime); + if(deviceCollectTask!=null) deviceUnknown.setDeviceCollectName(deviceCollectTask.getTaskName()); + deviceUnknown.setNetworkProtocol( networkProtocol ); + deviceUnknown.setOrganizationId(0); + deviceUnknownService.createDevice(deviceUnknown); + logger.info("请求的Host IP :{}为未知,已创建记录 ",this.sourceIP); + } + } + catch(Exception e) { + logger.error("saveDeviceUnknow exception", e); + } + + + return true; + } + + + public boolean saveDeviceReceiveLog(String syslog ,boolean isSuccess ) { + + // 获取当前时间 + LocalDateTime now = LocalDateTime.now(); + // 定义格式化器,包含毫秒 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"); + // 转换为字符串 + String timeString = now.format(formatter); + + try { + // 创建设备接收日志对象 + devicelog= DeviceReceiveLog.builder() + .deviceId(deviceDevice.getId()) + .deviceCollectId(AppConfig.getDeviceCollectId()) + .deviceIp(deviceDevice.getIp()) + .receiveTime(now) + .receiveTimeStr(timeString) + .syslogMessage(syslog) + .pushSuccess(isSuccess) + .build(); + deviceReceiveLogService.insertLog(devicelog); + } catch (Exception e) { + logger.error("saveDeviceReceiveLog exception", e); + return false; + } + return true; + } + + +} diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/Modules/DeviceCollect/DeviceCollectProcess.java b/haobang-security-xdr/syslog-serve/src/main/java/com/Modules/DeviceCollect/DeviceCollectProcess.java new file mode 100644 index 0000000..3ba2fa4 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/Modules/DeviceCollect/DeviceCollectProcess.java @@ -0,0 +1,4 @@ +package com.Modules.DeviceCollect; + +public class DeviceCollectProcess { +} diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/SyslogServeMainApp.java b/haobang-security-xdr/syslog-serve/src/main/java/com/SyslogServeMainApp.java new file mode 100644 index 0000000..503886e --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/SyslogServeMainApp.java @@ -0,0 +1,39 @@ +package com; +import com.haobang.config.SyslogConfig; +import com.kafka.kafkaProducer; +import org.mybatis.spring.annotation.MapperScan; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import com.netty.SyslogServer; +import com.haobang.config.AppConfig; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Configuration; +import com.netty.SyslogServerBoth; + +@MapperScan("com.common.mapper") +@SpringBootApplication +public class SyslogServeMainApp { + + private static final Logger logger = LoggerFactory.getLogger(SyslogServeMainApp.class); + + public static void main(String[] args) { + SpringApplication.run(SyslogServeMainApp.class, args); + try { + //System.out.println("syslogConfig TcpPort: "+ AppConfig.getSyslogTcpPort()); + int tcpPort = args.length > 0 ? Integer.parseInt(args[0]) : AppConfig.getSyslogTcpPort() ; + int udpPort = args.length > 1 ? Integer.parseInt(args[1]) : AppConfig.getSyslogUdpPort(); + //SyslogServer server = new SyslogServer(tcpPort, udpPort); + SyslogServerBoth server = new SyslogServerBoth(tcpPort, udpPort); + logger.info("Application SyslogServer start !"); + server.start(); + + }catch ( Exception ex) + { + System.out.println("Application Catch Error message: "+ex.getMessage()); + logger.error("Application Catch Error message: "+ex.getMessage()); + } + } +} diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/CacheController.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/CacheController.java new file mode 100644 index 0000000..2d1d1fb --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/CacheController.java @@ -0,0 +1,22 @@ +package com.common.controller; +import com.common.entity.DeviceDevice; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.data.redis.core.RedisTemplate; + +@RestController +@RequestMapping("/api/cache") +public class CacheController { + + @Autowired + private RedisTemplate redisTemplate; + + @GetMapping("/key/{key}") + public DeviceDevice getCacheValue(@PathVariable String key) { + + // 这里先尝试作为字符串键获取 + System.out.println("key:" +key); + //System.out.println(redisTemplate.opsForHash().entries(key).toString()); + return (DeviceDevice) redisTemplate.opsForValue().get(key); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceCollectTaskController.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceCollectTaskController.java new file mode 100644 index 0000000..eaffb62 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceCollectTaskController.java @@ -0,0 +1,136 @@ +package com.common.controller; + +import com.common.entity.DeviceCollectTask; +import com.common.service.DeviceCollectTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import java.util.List; + +@RestController +@RequestMapping("/api/collect-tasks") +public class DeviceCollectTaskController { + + @Autowired + private DeviceCollectTaskService deviceCollectTaskService; + + /** + * 根据ID查询采集任务 + */ + @GetMapping("/{id}") + public ResponseEntity getById(@PathVariable Integer id) { + DeviceCollectTask task = deviceCollectTaskService.getById(id); + return ResponseEntity.ok(task); + } + + /** + * 查询所有采集任务 + */ + @GetMapping + public ResponseEntity> getAll() { + List tasks = deviceCollectTaskService.getAll(); + return ResponseEntity.ok(tasks); + } + + /** + * 根据设备ID查询采集任务 + */ + @GetMapping("/device/{deviceId}") + public ResponseEntity> getByDeviceId(@PathVariable Integer deviceId) { + List tasks = deviceCollectTaskService.getByDeviceId(deviceId); + return ResponseEntity.ok(tasks); + } + + /** + * 多条件查询采集任务 + */ + @PostMapping("/search") + public ResponseEntity> search(@RequestBody DeviceCollectTask condition) { + List tasks = deviceCollectTaskService.getByCondition(condition); + return ResponseEntity.ok(tasks); + } + + /** + * 新增采集任务 + */ + @PostMapping + public ResponseEntity create(@RequestBody DeviceCollectTask task) { + deviceCollectTaskService.create(task); + return ResponseEntity.ok(task); + } + + /** + * 更新采集任务 + */ + @PutMapping("/{id}") + public ResponseEntity update(@PathVariable Integer id, + @RequestBody DeviceCollectTask task) { + task.setId(id); + DeviceCollectTask updatedTask = deviceCollectTaskService.update(task); + return ResponseEntity.ok(updatedTask); + } + + /** + * 删除采集任务 + */ + @DeleteMapping("/{id}") + public ResponseEntity delete(@PathVariable Integer id) { + deviceCollectTaskService.delete(id); + return ResponseEntity.noContent().build(); + } + + /** + * 标记任务成功 + */ + @PostMapping("/{id}/success") + public ResponseEntity markSuccess(@PathVariable Integer id) { + deviceCollectTaskService.markSuccess(id); + return ResponseEntity.ok().build(); + } + + /** + * 标记任务失败 + */ + @PostMapping("/{id}/failed") + public ResponseEntity markFailed(@PathVariable Integer id) { + deviceCollectTaskService.markFailed(id); + return ResponseEntity.ok().build(); + } + + /** + * 更新EPM指标 + */ + @PutMapping("/{id}/epm") + public ResponseEntity updateEpm(@PathVariable Integer id, + @RequestParam Integer epm) { + deviceCollectTaskService.updateEpm(id, epm); + return ResponseEntity.ok().build(); + } + + /** + * 查询成功的任务 + */ + @GetMapping("/success") + public ResponseEntity> getSuccessTasks() { + List tasks = deviceCollectTaskService.getSuccessTasks(); + return ResponseEntity.ok(tasks); + } + + /** + * 查询失败的任务 + */ + @GetMapping("/failed") + public ResponseEntity> getFailedTasks() { + List tasks = deviceCollectTaskService.getFailedTasks(); + return ResponseEntity.ok(tasks); + } + + /** + * 获取设备最新任务 + */ + @GetMapping("/device/{deviceId}/latest") + public ResponseEntity getLatestByDeviceId(@PathVariable Integer deviceId) { + DeviceCollectTask task = deviceCollectTaskService.getLatestByDeviceId(deviceId); + return ResponseEntity.ok(task); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceDeviceController.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceDeviceController.java new file mode 100644 index 0000000..8601e9c --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceDeviceController.java @@ -0,0 +1,49 @@ +package com.common.controller; + + +import com.common.entity.DeviceDevice; +import com.common.service.DeviceDeviceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/api/devices") +public class DeviceDeviceController { + + @Autowired + private DeviceDeviceService deviceDeviceService; + + @GetMapping("/{id}") + public DeviceDevice getById(@PathVariable Integer id) { + System.out.println("device_id:"+id.toString()); + DeviceDevice deviceDevice=deviceDeviceService.getById(id); + System.out.println("deviceDeviceService:"+deviceDevice.toString()); + return deviceDeviceService.getById(id); + } + + @GetMapping + public List getAll() { + return deviceDeviceService.getAll(); + } + + @GetMapping("/search") + public List searchByName(@RequestParam String name) { + return deviceDeviceService.getByNameLike(name); + } + + @GetMapping("/ip/{ip}") + public List getByIp(@PathVariable String ip) { + + List deviceDevicelist =deviceDeviceService.getByIpSafely(ip); + System.out.println("deviceDeviceService:"+deviceDevicelist.get(0).toString()); + + return deviceDeviceService.getByIpSafely(ip); + } + + @GetMapping("/monitoring") + public List getMonitoringDevices() { + return deviceDeviceService.getMonitoringDevices(); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceUnknownController.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceUnknownController.java new file mode 100644 index 0000000..afcbd36 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/controller/DeviceUnknownController.java @@ -0,0 +1,135 @@ +package com.common.controller; + + +import com.common.entity.DeviceUnknown; +import com.common.service.DeviceUnknownService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/api/device-unknown") +@RequiredArgsConstructor +@Validated +public class DeviceUnknownController { + + private final DeviceUnknownService deviceUnknownService; + + /** + * 创建设备记录 + */ + @PostMapping + public ResponseEntity> createDevice(@Valid @RequestBody DeviceUnknown device) { + Long id = deviceUnknownService.createDevice(device); + Map result = new HashMap<>(); + result.put("success", true); + result.put("id", id); + result.put("message", "设备记录创建成功"); + return ResponseEntity.ok(result); + } + + /** + * 批量创建设备记录 + */ + @PostMapping("/batch") + public ResponseEntity> batchCreateDevices(@Valid @RequestBody List devices) { + int count = deviceUnknownService.batchCreateDevices(devices); + Map result = new HashMap<>(); + result.put("success", true); + result.put("count", count); + result.put("message", "批量创建设备记录成功"); + return ResponseEntity.ok(result); + } + + /** + * 根据ID获取设备信息 + */ + @GetMapping("/{id}") + public ResponseEntity> getDeviceById(@PathVariable Long id) { + DeviceUnknown device = deviceUnknownService.getDeviceById(id); + Map result = new HashMap<>(); + result.put("success", true); + result.put("data", device); + return ResponseEntity.ok(result); + } + + /** + * 根据IP查询设备 + */ + @GetMapping("/ip/{deviceIp}") + public ResponseEntity> getDevicesByIp(@PathVariable String deviceIp) { + List devices = deviceUnknownService.getDevicesByIp(deviceIp); + Map result = new HashMap<>(); + result.put("success", true); + result.put("data", devices); + result.put("total", devices.size()); + return ResponseEntity.ok(result); + } + + /** + * 根据组织ID查询设备 + */ + @GetMapping("/organization/{organizationId}") + public ResponseEntity> getDevicesByOrganizationId(@PathVariable Integer organizationId) { + List devices = deviceUnknownService.getDevicesByOrganizationId(organizationId); + Map result = new HashMap<>(); + result.put("success", true); + result.put("data", devices); + result.put("total", devices.size()); + return ResponseEntity.ok(result); + } + + /** + * 分页查询设备 + */ + @GetMapping("/page") + public ResponseEntity> getDevicesByPage( + @RequestParam(defaultValue = "1") int pageNum, + @RequestParam(defaultValue = "10") int pageSize) { + List devices = deviceUnknownService.getDevicesByPage(pageNum, pageSize); + long total = deviceUnknownService.getTotalCount(); + + Map result = new HashMap<>(); + result.put("success", true); + result.put("data", devices); + result.put("pageNum", pageNum); + result.put("pageSize", pageSize); + result.put("total", total); + result.put("pages", (int) Math.ceil((double) total / pageSize)); + return ResponseEntity.ok(result); + } + + /** + * 更新设备信息 + */ + @PutMapping("/{id}") + public ResponseEntity> updateDevice( + @PathVariable Long id, + @Valid @RequestBody DeviceUnknown device) { + device.setId(id); + boolean success = deviceUnknownService.updateDevice(device); + + Map result = new HashMap<>(); + result.put("success", success); + result.put("message", success ? "设备更新成功" : "设备更新失败"); + return ResponseEntity.ok(result); + } + + /** + * 删除设备 + */ + @DeleteMapping("/{id}") + public ResponseEntity> deleteDevice(@PathVariable Long id) { + boolean success = deviceUnknownService.deleteDevice(id); + Map result = new HashMap<>(); + result.put("success", success); + result.put("message", success ? "设备删除成功" : "设备删除失败"); + return ResponseEntity.ok(result); + } +} diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceCollectTask.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceCollectTask.java new file mode 100644 index 0000000..9d28b64 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceCollectTask.java @@ -0,0 +1,99 @@ +package com.common.entity; + + +import java.time.OffsetDateTime; + +public class DeviceCollectTask { + private Integer id; + private OffsetDateTime createdAt; + private OffsetDateTime updatedAt; + private OffsetDateTime deletedAt; + private Integer deviceId; + private Integer method; + private String taskName; + private OffsetDateTime firstTime; + private OffsetDateTime lastSuccessTime; + private OffsetDateTime lastFailedTime; + private Integer detailId; + private Integer epm; + private Integer epmPeak; + private Integer processArchitecture; + private Integer taskCount; + private OffsetDateTime recentDiscoverTime; + private Integer epmUpperLimit; + + // Getter and Setter 方法 + public Integer getId() { return id; } + public void setId(Integer id) { this.id = id; } + + public OffsetDateTime getCreatedAt() { return createdAt; } + public void setCreatedAt(OffsetDateTime createdAt) { this.createdAt = createdAt; } + + public OffsetDateTime getUpdatedAt() { return updatedAt; } + public void setUpdatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; } + + public OffsetDateTime getDeletedAt() { return deletedAt; } + public void setDeletedAt(OffsetDateTime deletedAt) { this.deletedAt = deletedAt; } + + public Integer getDeviceId() { return deviceId; } + public void setDeviceId(Integer deviceId) { this.deviceId = deviceId; } + + public Integer getMethod() { return method; } + public void setMethod(Integer method) { this.method = method; } + + public String getTaskName() { return taskName; } + public void setTaskName(String taskName) { this.taskName = taskName; } + + public OffsetDateTime getFirstTime() { return firstTime; } + public void setFirstTime(OffsetDateTime firstTime) { this.firstTime = firstTime; } + + public OffsetDateTime getLastSuccessTime() { return lastSuccessTime; } + public void setLastSuccessTime(OffsetDateTime lastSuccessTime) { this.lastSuccessTime = lastSuccessTime; } + + public OffsetDateTime getLastFailedTime() { return lastFailedTime; } + public void setLastFailedTime(OffsetDateTime lastFailedTime) { this.lastFailedTime = lastFailedTime; } + + public Integer getDetailId() { return detailId; } + public void setDetailId(Integer detailId) { this.detailId = detailId; } + + public Integer getEpm() { return epm; } + public void setEpm(Integer epm) { this.epm = epm; } + + public Integer getEpmPeak() { return epmPeak; } + public void setEpmPeak(Integer epmPeak) { this.epmPeak = epmPeak; } + + public Integer getProcessArchitecture() { return processArchitecture; } + public void setProcessArchitecture(Integer processArchitecture) { this.processArchitecture = processArchitecture; } + + public Integer getTaskCount() { return taskCount; } + public void setTaskCount(Integer taskCount) { this.taskCount = taskCount; } + + public OffsetDateTime getRecentDiscoverTime() { return recentDiscoverTime; } + public void setRecentDiscoverTime(OffsetDateTime recentDiscoverTime) { this.recentDiscoverTime = recentDiscoverTime; } + + public Integer getEpmUpperLimit() { return epmUpperLimit; } + public void setEpmUpperLimit(Integer epmUpperLimit) { this.epmUpperLimit = epmUpperLimit; } + + @Override + public String toString() { + return "DeviceCollectTask{" + + "id=" + id + + ", createdAt=" + createdAt + + ", updatedAt=" + updatedAt + + ", deletedAt=" + deletedAt + + ", deviceId=" + deviceId + + ", method=" + method + + ", taskName='" + taskName + '\'' + + ", firstTime=" + firstTime + + ", lastSuccessTime=" + lastSuccessTime + + ", lastFailedTime=" + lastFailedTime + + ", detailId=" + detailId + + ", epm=" + epm + + ", epmPeak=" + epmPeak + + ", processArchitecture=" + processArchitecture + + ", taskCount=" + taskCount + + ", recentDiscoverTime=" + recentDiscoverTime + + ", epmUpperLimit=" + epmUpperLimit + + '}'; + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceDevice.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceDevice.java new file mode 100644 index 0000000..4025256 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceDevice.java @@ -0,0 +1,376 @@ +package com.common.entity; + + +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +public class DeviceDevice { + public Integer id; + public LocalDateTime createdAt; + public LocalDateTime updatedAt; + public LocalDateTime deletedAt; + public String name; + public String ip; + public Integer deviceGroup; + public Integer deviceType; + public String vendor; + public String productName; + public Integer organizationId; + public LocalDateTime lastReceiveTime; + public Integer agentId; + public Integer detailId; + public Integer controlAgentId; + public LocalDateTime licenseStartTime; + public LocalDateTime licenseEndTime; + public Boolean isMonitoring; + public Long securityScopeId; + public Long ownerId; + public Long sshConfigId; + public Short status; + public Long createdById; + public Integer decodeType; + public Integer missPolicy; + public String tenantId; + public LocalDateTime createTime; + public LocalDateTime updateTime; + public Long createBy; + public Long updateBy; + public String delFlag; + public String managerName; + public Integer todayParseCount; + public Integer todayNonLogCount; + public Long createDept; + public Integer deviceCollectId; + + + // Getter and Setter methods + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public LocalDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(LocalDateTime createdAt) { + this.createdAt = createdAt; + } + + public LocalDateTime getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(LocalDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + public LocalDateTime getDeletedAt() { + return deletedAt; + } + + public void setDeletedAt(LocalDateTime deletedAt) { + this.deletedAt = deletedAt; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getDeviceGroup() { + return deviceGroup; + } + + public void setDeviceGroup(Integer deviceGroup) { + this.deviceGroup = deviceGroup; + } + + public Integer getDeviceType() { + return deviceType; + } + + public void setDeviceType(Integer deviceType) { + this.deviceType = deviceType; + } + + public String getVendor() { + return vendor; + } + + public void setVendor(String vendor) { + this.vendor = vendor; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public Integer getOrganizationId() { + return organizationId; + } + + public void setOrganizationId(Integer organizationId) { + this.organizationId = organizationId; + } + + public LocalDateTime getLastReceiveTime() { + return lastReceiveTime; + } + + public void setLastReceiveTime(LocalDateTime lastReceiveTime) { + this.lastReceiveTime = lastReceiveTime; + } + + public Integer getAgentId() { + return agentId; + } + + public void setAgentId(Integer agentId) { + this.agentId = agentId; + } + + public Integer getDetailId() { + return detailId; + } + + public void setDetailId(Integer detailId) { + this.detailId = detailId; + } + + public Integer getControlAgentId() { + return controlAgentId; + } + + public void setControlAgentId(Integer controlAgentId) { + this.controlAgentId = controlAgentId; + } + + public LocalDateTime getLicenseStartTime() { + return licenseStartTime; + } + + public void setLicenseStartTime(LocalDateTime licenseStartTime) { + this.licenseStartTime = licenseStartTime; + } + + public LocalDateTime getLicenseEndTime() { + return licenseEndTime; + } + + public void setLicenseEndTime(LocalDateTime licenseEndTime) { + this.licenseEndTime = licenseEndTime; + } + + public Boolean getIsMonitoring() { + return isMonitoring; + } + + public void setIsMonitoring(Boolean isMonitoring) { + this.isMonitoring = isMonitoring; + } + + public Long getSecurityScopeId() { + return securityScopeId; + } + + public void setSecurityScopeId(Long securityScopeId) { + this.securityScopeId = securityScopeId; + } + + public Long getOwnerId() { + return ownerId; + } + + public void setOwnerId(Long ownerId) { + this.ownerId = ownerId; + } + + public Long getSshConfigId() { + return sshConfigId; + } + + public void setSshConfigId(Long sshConfigId) { + this.sshConfigId = sshConfigId; + } + + public Short getStatus() { + return status; + } + + public void setStatus(Short status) { + this.status = status; + } + + public Long getCreatedById() { + return createdById; + } + + public void setCreatedById(Long createdById) { + this.createdById = createdById; + } + + public Integer getDecodeType() { + return decodeType; + } + + public void setDecodeType(Integer decodeType) { + this.decodeType = decodeType; + } + + public Integer getMissPolicy() { + return missPolicy; + } + + public void setMissPolicy(Integer missPolicy) { + this.missPolicy = missPolicy; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public LocalDateTime getCreateTime() { + return createTime; + } + + public void setCreateTime(LocalDateTime createTime) { + this.createTime = createTime; + } + + public LocalDateTime getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(LocalDateTime updateTime) { + this.updateTime = updateTime; + } + + public Long getCreateBy() { + return createBy; + } + + public void setCreateBy(Long createBy) { + this.createBy = createBy; + } + + public Long getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(Long updateBy) { + this.updateBy = updateBy; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getManagerName() { + return managerName; + } + + public void setManagerName(String managerName) { + this.managerName = managerName; + } + + public Integer getTodayParseCount() { + return todayParseCount; + } + + public void setTodayParseCount(Integer todayParseCount) { + this.todayParseCount = todayParseCount; + } + + public Integer getTodayNonLogCount() { + return todayNonLogCount; + } + + public void setTodayNonLogCount(Integer todayNonLogCount) { + this.todayNonLogCount = todayNonLogCount; + } + + public Long getCreateDept() { + return createDept; + } + + public void setCreateDept(Long createDept) { + this.createDept = createDept; + } + + public Integer getDeviceCollectId() { + return deviceCollectId; + } + + public void setDeviceCollectId(Integer deviceCollectId) { + this.deviceCollectId = deviceCollectId; + } + + @Override + public String toString() { + return "DeviceDevice{" + + "id=" + id + + ", createdAt=" + createdAt + + ", updatedAt=" + updatedAt + + ", deletedAt=" + deletedAt + + ", name='" + name + '\'' + + ", ip='" + ip + '\'' + + ", deviceGroup=" + deviceGroup + + ", deviceType=" + deviceType + + ", vendor='" + vendor + '\'' + + ", productName='" + productName + '\'' + + ", organizationId=" + organizationId + + ", lastReceiveTime=" + lastReceiveTime + + ", agentId=" + agentId + + ", detailId=" + detailId + + ", controlAgentId=" + controlAgentId + + ", licenseStartTime=" + licenseStartTime + + ", licenseEndTime=" + licenseEndTime + + ", isMonitoring=" + isMonitoring + + ", securityScopeId=" + securityScopeId + + ", ownerId=" + ownerId + + ", sshConfigId=" + sshConfigId + + ", status=" + status + + ", createdById=" + createdById + + ", decodeType=" + decodeType + + ", missPolicy=" + missPolicy + + ", tenantId='" + tenantId + '\'' + + ", createTime=" + createTime + + ", updateTime=" + updateTime + + ", createBy=" + createBy + + ", updateBy=" + updateBy + + ", delFlag='" + delFlag + '\'' + + ", managerName='" + managerName + '\'' + + ", todayParseCount=" + todayParseCount + + ", todayNonLogCount=" + todayNonLogCount + + ", createDept=" + createDept + + ", deviceCollectId=" + deviceCollectId + + '}'; + } + +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceReceiveLog.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceReceiveLog.java new file mode 100644 index 0000000..f6e4529 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceReceiveLog.java @@ -0,0 +1,68 @@ +package com.common.entity; + +import lombok.Data; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import lombok.Builder; + +import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DeviceReceiveLog { + /** + * 主键ID + */ + private Long id; + + /** + * 记录创建时间(UTC时间) + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createdAt; + + /** + * 采集探针ID + */ + private Integer deviceCollectId; + + /** + * 设备ID + */ + private Integer deviceId; + + /** + * 设备IP(PostgreSQL inet类型,用String处理) + */ + private String deviceIp; + + /** + * 日志收到时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime receiveTime; + + /** + * 接收时间字符串(冗余字段) + */ + private String receiveTimeStr; + + /** + * 原始syslog消息 + */ + private String syslogMessage; + + /** + * 是否推送成功 + */ + private boolean pushSuccess; + + /** + * 分页参数(非表字段) + */ + private Integer pageNum; + private Integer pageSize; +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceUnknown.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceUnknown.java new file mode 100644 index 0000000..c6deab1 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/entity/DeviceUnknown.java @@ -0,0 +1,70 @@ +package com.common.entity; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +@Data +public class DeviceUnknown { + /** + * 主键ID + */ + private Long id; + + /** + * 记录创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createdAt; + + /** + * 采集探针ID + */ + @NotNull(message = "采集探针ID不能为空") + private Integer deviceCollectId; + + /** + * 采集探针名称 + */ + @NotBlank(message = "采集探针名称不能为空") + private String deviceCollectName; + + /** + * 设备IP + */ + @NotBlank(message = "设备IP不能为空") + private String deviceIp; + + /** + * 首次发现时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @NotNull(message = "首次发现时间不能为空") + private LocalDateTime firstTime; + + /** + * 最后发现时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @NotNull(message = "最后发现时间不能为空") + private LocalDateTime lastTime; + + /** + * 组织ID + */ + //@NotNull(message = "组织ID不能为空") + private Integer organizationId; + + /** + * 网络协议 (TCP|UDP) + */ + private String networkProtocol = "TCP"; + + /** + * 来源方式 (SYSTEM|USER) + */ + private String sourceMethod = "SYSTEM"; +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceCollectTaskMapper.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceCollectTaskMapper.java new file mode 100644 index 0000000..e7bf3c6 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceCollectTaskMapper.java @@ -0,0 +1,143 @@ +package com.common.mapper; + +import com.common.entity.DeviceCollectTask; +import org.apache.ibatis.annotations.*; +import java.util.List; +import java.util.Map; + +@Mapper +public interface DeviceCollectTaskMapper { + + /** + * 根据ID查询采集任务 + */ + @Select("SELECT * FROM device_collect_task WHERE id = #{id}") + DeviceCollectTask selectById(Integer id); + + /** + * 查询所有采集任务 + */ + @Select("SELECT * FROM device_collect_task") + List selectAll(); + + /** + * 根据设备ID查询采集任务 + */ + @Select("SELECT * FROM device_collect_task WHERE device_id = #{deviceId}") + List selectByDeviceId(Integer deviceId); + + /** + * 根据方法类型查询采集任务 + */ + @Select("SELECT * FROM device_collect_task WHERE method = #{method}") + List selectByMethod(Integer method); + + /** + * 根据任务名称模糊查询 + */ + @Select("SELECT * FROM device_collect_task WHERE task_name LIKE CONCAT('%', #{taskName}, '%')") + List selectByTaskNameLike(String taskName); + + /** + * 查询成功的采集任务 + */ + @Select("SELECT * FROM device_collect_task WHERE last_success_time IS NOT NULL") + List selectSuccessTasks(); + + /** + * 查询失败的采集任务 + */ + @Select("SELECT * FROM device_collect_task WHERE last_failed_time IS NOT NULL") + List selectFailedTasks(); + + /** + * 多条件组合查询 + */ + List selectByCondition(DeviceCollectTask condition); + + /** + * 插入采集任务 + */ + @Insert("INSERT INTO device_collect_task (created_at, updated_at, device_id, method, task_name, " + + "first_time, last_success_time, last_failed_time, detail_id, epm, epm_peak, " + + "process_architecture, task_count, recent_discover_time, epm_upper_limit) " + + "VALUES (NOW(), NOW(), #{deviceId}, #{method}, #{taskName}, #{firstTime}, " + + "#{lastSuccessTime}, #{lastFailedTime}, #{detailId}, #{epm}, #{epmPeak}, " + + "#{processArchitecture}, #{taskCount}, #{recentDiscoverTime}, #{epmUpperLimit})") + @Options(useGeneratedKeys = true, keyProperty = "id") + int insert(DeviceCollectTask task); + + /** + * 更新采集任务 + */ + @Update("UPDATE device_collect_task SET " + + "updated_at = NOW(), " + + "device_id = #{deviceId}, " + + "method = #{method}, " + + "task_name = #{taskName}, " + + "first_time = #{firstTime}, " + + "last_success_time = #{lastSuccessTime}, " + + "last_failed_time = #{lastFailedTime}, " + + "detail_id = #{detailId}, " + + "epm = #{epm}, " + + "epm_peak = #{epmPeak}, " + + "process_architecture = #{processArchitecture}, " + + "task_count = #{taskCount}, " + + "recent_discover_time = #{recentDiscoverTime}, " + + "epm_upper_limit = #{epmUpperLimit} " + + "WHERE id = #{id}") + int update(DeviceCollectTask task); + + /** + * 删除采集任务 + */ + @Delete("DELETE FROM device_collect_task WHERE id = #{id}") + int deleteById(Integer id); + + /** + * 根据设备ID删除采集任务 + */ + @Delete("DELETE FROM device_collect_task WHERE device_id = #{deviceId}") + int deleteByDeviceId(Integer deviceId); + + /** + * 更新任务成功状态 + */ + @Update("UPDATE device_collect_task SET " + + "last_success_time = NOW(), " + + "updated_at = NOW(), " + + "task_count = COALESCE(task_count, 0) + 1 " + + "WHERE id = #{id}") + int updateSuccessStatus(Integer id); + + /** + * 更新任务失败状态 + */ + @Update("UPDATE device_collect_task SET " + + "last_failed_time = NOW(), " + + "updated_at = NOW() " + + "WHERE id = #{id}") + int updateFailedStatus(Integer id); + + /** + * 更新EPM指标 + */ + @Update("UPDATE device_collect_task SET " + + "epm = #{epm}, " + + "epm_peak = GREATEST(COALESCE(epm_peak, 0), #{epm}), " + + "updated_at = NOW() " + + "WHERE id = #{id}") + int updateEpm(@Param("id") Integer id, @Param("epm") Integer epm); + + /** + * 统计设备采集任务数量 + */ + @Select("SELECT COUNT(*) FROM device_collect_task WHERE device_id = #{deviceId}") + int countByDeviceId(Integer deviceId); + + /** + * 获取设备的最新采集任务 + */ + @Select("SELECT * FROM device_collect_task WHERE device_id = #{deviceId} ORDER BY updated_at DESC LIMIT 1") + DeviceCollectTask selectLatestByDeviceId(Integer deviceId); +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceDeviceMapper.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceDeviceMapper.java new file mode 100644 index 0000000..dfe4373 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceDeviceMapper.java @@ -0,0 +1,93 @@ +package com.common.mapper; + + +import com.common.entity.DeviceDevice; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface DeviceDeviceMapper { + + /** + * 根据ID查询设备 + */ + DeviceDevice selectById(Integer id); + + /** + * 查询所有设备 + */ + List selectAll(); + + /** + * 根据IP地址查询设备 + */ + List selectByIp(String ip); + + /** + * 根据设备名称模糊查询 + */ + List selectByNameLike(String name); + + /** + * 根据设备组查询 + */ + List selectByDeviceGroup(Integer deviceGroup); + + /** + * 根据设备类型查询 + */ + List selectByDeviceType(Integer deviceType); + + /** + * 根据组织ID查询 + */ + List selectByOrganizationId(Integer organizationId); + + /** + * 根据状态查询设备 + */ + List selectByStatus(Short status); + + /** + * 多条件组合查询 + */ + List selectByCondition(DeviceDevice condition); + + /** + * 动态条件查询 + */ + List selectByMap(Map params); + + /** + * 分页查询 + */ + List selectByPage(@Param("offset") int offset, @Param("limit") int limit); + + /** + * 统计设备数量 + */ + Long count(); + + /** + * 根据条件统计数量 + */ + Long countByCondition(DeviceDevice condition); + + /** + * 查询监控中的设备 + */ + List selectMonitoringDevices(); + + /** + * 查询未删除的设备(del_flag = '0') + */ + List selectActiveDevices(); + + /** + * 根据厂商查询设备 + */ + List selectByVendor(String vendor); +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceReceiveLogMapper.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceReceiveLogMapper.java new file mode 100644 index 0000000..5d24400 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceReceiveLogMapper.java @@ -0,0 +1,78 @@ +package com.common.mapper; + + +import com.common.entity.DeviceReceiveLog; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +@Mapper +public interface DeviceReceiveLogMapper { + + /** + * 插入单条记录 + */ + int insert(DeviceReceiveLog log); + + /** + * 批量插入记录 + */ + int batchInsert(@Param("list") List logs); + + /** + * 根据ID查询 + */ + DeviceReceiveLog selectById(@Param("id") Long id); + + /** + * 根据设备ID查询 + */ + List selectByDeviceId(@Param("deviceId") Integer deviceId); + + /** + * 根据采集探针ID查询 + */ + List selectByCollectId(@Param("collectId") Integer collectId); + + /** + * 根据IP地址查询 + */ + List selectByDeviceIp(@Param("deviceIp") String deviceIp); + + /** + * 根据时间范围查询 + */ + List selectByTimeRange( + @Param("startTime") LocalDateTime startTime, + @Param("endTime") LocalDateTime endTime); + + /** + * 多条件组合查询 + */ + List selectByCondition(DeviceReceiveLog condition); + + /** + * 统计设备接收日志数量 + */ + Long countByCondition(DeviceReceiveLog condition); + + /** + * 根据时间范围删除旧数据 + */ + int deleteByTimeRange( + @Param("startTime") LocalDateTime startTime, + @Param("endTime") LocalDateTime endTime); + + /** + * 获取最近N条记录 + */ + List selectRecent(@Param("limit") Integer limit); + + /** + * 按设备分组统计日志数量 + */ + List> countByDeviceGroup(); +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceUnknownMapper.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceUnknownMapper.java new file mode 100644 index 0000000..837827b --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/mapper/DeviceUnknownMapper.java @@ -0,0 +1,110 @@ +package com.common.mapper; + + +import com.common.entity.DeviceUnknown; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.time.LocalDateTime; + +@Mapper +public interface DeviceUnknownMapper { + + /** + * 插入设备记录 + * @param device 设备对象 + * @return 影响行数 + */ + int insert(DeviceUnknown device); + + /** + * 批量插入设备记录 + * @param devices 设备列表 + * @return 影响行数 + */ + int batchInsert(@Param("devices") List devices); + + /** + * 根据ID查询设备 + * @param id 设备ID + * @return 设备对象 + */ + DeviceUnknown selectById(@Param("id") Long id); + + /** + * 根据IP查询设备 + * @param deviceIp 设备IP + * @return 设备列表 + */ + List selectByIp(@Param("deviceIp") String deviceIp); + + /** + * 根据组织ID查询设备 + * @param organizationId 组织ID + * @return 设备列表 + */ + List selectByOrganizationId(@Param("organizationId") Integer organizationId); + + /** + * 查询所有设备 + * @return 设备列表 + */ + List selectAll(); + + /** + * 分页查询设备 + * @param offset 偏移量 + * @param limit 每页数量 + * @return 设备列表 + */ + List selectPage(@Param("offset") int offset, @Param("limit") int limit); + + /** + * 根据条件查询设备 + * @param device 查询条件 + * @return 设备列表 + */ + List selectByCondition(DeviceUnknown device); + + /** + * 根据ID更新设备信息 + * @param device 设备对象 + * @return 影响行数 + */ + int updateById(DeviceUnknown device); + + /** + * 更新最后发现时间 + * @param id 设备ID + * @param lastTime 最后发现时间 + * @return 影响行数 + */ + int updateLastTime(@Param("id") Long id, @Param("lastTime") LocalDateTime lastTime); + + /** + * 根据ID删除设备 + * @param id 设备ID + * @return 影响行数 + */ + int deleteById(@Param("id") Long id); + + /** + * 根据组织ID删除设备 + * @param organizationId 组织ID + * @return 影响行数 + */ + int deleteByOrganizationId(@Param("organizationId") Integer organizationId); + + /** + * 统计设备数量 + * @return 设备总数 + */ + Long count(); + + /** + * 根据条件统计设备数量 + * @param device 查询条件 + * @return 设备数量 + */ + Long countByCondition(DeviceUnknown device); +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceCollectTaskService.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceCollectTaskService.java new file mode 100644 index 0000000..b77e8f4 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceCollectTaskService.java @@ -0,0 +1,136 @@ +package com.common.service; + +import com.common.entity.DeviceCollectTask; +import com.common.mapper.DeviceCollectTaskMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cache.annotation.CachePut; +import org.springframework.stereotype.Service; +import java.util.List; + +@Service +@CacheConfig(cacheNames = "collectTask") +public class DeviceCollectTaskService { + + @Autowired + private DeviceCollectTaskMapper deviceCollectTaskMapper; + + /** + * 根据ID查询采集任务 - 缓存 + */ + @Cacheable(key = "'id:' + #id") + public DeviceCollectTask getById(Integer id) { + return deviceCollectTaskMapper.selectById(id); + } + + /** + * 查询所有采集任务 - 缓存 + */ + @Cacheable(key = "'all'") + public List getAll() { + return deviceCollectTaskMapper.selectAll(); + } + + /** + * 根据设备ID查询采集任务 - 缓存 + */ + @Cacheable(key = "'device:' + #deviceId") + public List getByDeviceId(Integer deviceId) { + return deviceCollectTaskMapper.selectByDeviceId(deviceId); + } + + /** + * 根据方法类型查询采集任务 + */ + public List getByMethod(Integer method) { + return deviceCollectTaskMapper.selectByMethod(method); + } + + /** + * 多条件组合查询 + */ + public List getByCondition(DeviceCollectTask condition) { + return deviceCollectTaskMapper.selectByCondition(condition); + } + + /** + * 新增采集任务 - 清除相关缓存 + */ + @CacheEvict(allEntries = true) + public int create(DeviceCollectTask task) { + return deviceCollectTaskMapper.insert(task); + } + + /** + * 更新采集任务 - 更新缓存 + */ + @CachePut(key = "'id:' + #task.id") + @CacheEvict(key = "'device:' + #task.deviceId") + public DeviceCollectTask update(DeviceCollectTask task) { + deviceCollectTaskMapper.update(task); + return deviceCollectTaskMapper.selectById(task.getId()); + } + + /** + * 删除采集任务 - 清除缓存 + */ + @CacheEvict(key = "'id:' + #id") + public int delete(Integer id) { + return deviceCollectTaskMapper.deleteById(id); + } + + /** + * 标记任务成功 - 更新缓存 + */ + @CacheEvict(key = "'id:' + #id") + public int markSuccess(Integer id) { + return deviceCollectTaskMapper.updateSuccessStatus(id); + } + + /** + * 标记任务失败 - 更新缓存 + */ + @CacheEvict(key = "'id:' + #id") + public int markFailed(Integer id) { + return deviceCollectTaskMapper.updateFailedStatus(id); + } + + /** + * 更新EPM指标 - 更新缓存 + */ + @CacheEvict(key = "'id:' + #id") + public int updateEpm(Integer id, Integer epm) { + return deviceCollectTaskMapper.updateEpm(id, epm); + } + + /** + * 查询成功的任务 + */ + public List getSuccessTasks() { + return deviceCollectTaskMapper.selectSuccessTasks(); + } + + /** + * 查询失败的任务 + */ + public List getFailedTasks() { + return deviceCollectTaskMapper.selectFailedTasks(); + } + + /** + * 获取设备的最新采集任务 + */ + @Cacheable(key = "'latest:device:' + #deviceId") + public DeviceCollectTask getLatestByDeviceId(Integer deviceId) { + return deviceCollectTaskMapper.selectLatestByDeviceId(deviceId); + } + + /** + * 统计设备任务数量 + */ + public int countByDeviceId(Integer deviceId) { + return deviceCollectTaskMapper.countByDeviceId(deviceId); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceDeviceService.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceDeviceService.java new file mode 100644 index 0000000..c9deb58 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceDeviceService.java @@ -0,0 +1,31 @@ +package com.common.service; + +import com.common.entity.DeviceDevice; +import java.util.List; +import java.util.Map; + +public interface DeviceDeviceService { + + DeviceDevice getByIdSafely(Integer id); + List getByIpSafely(String ip); + + DeviceDevice getById(Integer id); + + List getAll(); + + List getByIp(String ip); + + List getByNameLike(String name); + + List getByCondition(DeviceDevice condition); + + List getByMap(Map params); + + List getByPage(int pageNum, int pageSize); + + Long getCount(); + + List getMonitoringDevices(); + + List getActiveDevices(); +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceReceiveLogService.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceReceiveLogService.java new file mode 100644 index 0000000..de1765b --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceReceiveLogService.java @@ -0,0 +1,35 @@ +package com.common.service; + + + +import com.common.entity.DeviceReceiveLog; +import com.github.pagehelper.PageInfo; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +public interface DeviceReceiveLogService { + + // 插入操作 + Long insertLog(DeviceReceiveLog log); + int batchInsertLogs(List logs); + + // 查询操作 + DeviceReceiveLog getById(Long id); + List getByDeviceId(Integer deviceId); + List getByCollectId(Integer collectId); + List getByTimeRange(LocalDateTime startTime, LocalDateTime endTime); + List getByCondition(DeviceReceiveLog condition); + PageInfo getByConditionPage(DeviceReceiveLog condition, Integer pageNum, Integer pageSize); + + // 统计操作 + Long countByCondition(DeviceReceiveLog condition); + List> getDeviceLogStatistics(); + + // 删除操作 + int deleteOldLogs(LocalDateTime beforeTime); + + // 获取最近日志 + List getRecentLogs(Integer limit); +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceUnknownService.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceUnknownService.java new file mode 100644 index 0000000..47c9f28 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/DeviceUnknownService.java @@ -0,0 +1,108 @@ +package com.common.service; + + + +import com.common.entity.DeviceUnknown; +import java.util.List; +import java.time.LocalDateTime; + +public interface DeviceUnknownService { + + /** + * 创建设备记录 + * @param device 设备信息 + * @return 创建的设备ID + */ + Long createDevice(DeviceUnknown device); + + /** + * 批量创建设备记录 + * @param devices 设备列表 + * @return 成功创建的记录数 + */ + int batchCreateDevices(List devices); + + /** + * 根据ID获取设备信息 + * @param id 设备ID + * @return 设备信息 + */ + DeviceUnknown getDeviceById(Long id); + + /** + * 根据IP获取设备列表 + * @param deviceIp 设备IP + * @return 设备列表 + */ + List getDevicesByIp(String deviceIp); + + /** + * 根据组织ID获取设备列表 + * @param organizationId 组织ID + * @return 设备列表 + */ + List getDevicesByOrganizationId(Integer organizationId); + + /** + * 获取所有设备列表 + * @return 设备列表 + */ + List getAllDevices(); + + /** + * 分页查询设备列表 + * @param pageNum 页码 + * @param pageSize 每页大小 + * @return 设备列表 + */ + List getDevicesByPage(int pageNum, int pageSize); + + /** + * 根据条件查询设备列表 + * @param device 查询条件 + * @return 设备列表 + */ + List searchDevices(DeviceUnknown device); + + /** + * 更新设备信息 + * @param device 设备信息 + * @return 是否成功 + */ + boolean updateDevice(DeviceUnknown device); + + /** + * 更新设备的最后发现时间 + * @param id 设备ID + * @param lastTime 最后发现时间 + * @return 是否成功 + */ + boolean updateLastTime(Long id, LocalDateTime lastTime); + + /** + * 删除设备 + * @param id 设备ID + * @return 是否成功 + */ + boolean deleteDevice(Long id); + + /** + * 根据组织ID删除设备 + * @param organizationId 组织ID + * @return 删除的记录数 + */ + int deleteDevicesByOrganizationId(Integer organizationId); + + /** + * 获取设备总数 + * @return 设备总数 + */ + long getTotalCount(); + + /** + * 根据条件获取设备数量 + * @param device 查询条件 + * @return 设备数量 + */ + long getCountByCondition(DeviceUnknown device); +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceDeviceServiceImpl.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceDeviceServiceImpl.java new file mode 100644 index 0000000..c79521a --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceDeviceServiceImpl.java @@ -0,0 +1,103 @@ +package com.common.service.impl; + + +import com.common.entity.DeviceDevice; +import com.common.mapper.DeviceDeviceMapper; +import com.common.service.DeviceDeviceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.Cacheable; +import com.haobang.util.SafeCacheUtil; + +@CacheConfig(cacheNames = "device") +@Service +public class DeviceDeviceServiceImpl implements DeviceDeviceService { + + @Autowired + private DeviceDeviceMapper deviceDeviceMapper; + + + @Autowired + private SafeCacheUtil safeCacheUtil; + + /** + * 使用安全的缓存方法 + */ + @Cacheable( key = "'device:id:' +#id") + @Override + public DeviceDevice getByIdSafely(Integer id) { + String cacheKey = "device:id:" + id; + return safeCacheUtil.getSafe(cacheKey, DeviceDevice.class, + () -> deviceDeviceMapper.selectById(id)); + } + + /** + * 使用安全的列表缓存方法 + */ + @Cacheable( key = "'device:ip:' + #ip") + @Override + public List getByIpSafely(String ip) { + String cacheKey = "device:ip:" + ip; + return safeCacheUtil.getSafeList(cacheKey, DeviceDevice.class, + () -> deviceDeviceMapper.selectByIp(ip)); + } + + @Cacheable( key = "'device:id:' +#id") + @Override + public DeviceDevice getById(Integer id) { + System.out.println("exec deviceDeviceMapper.selectById :" + id.toString()); + return deviceDeviceMapper.selectById(id); + } + + @Override + public List getAll() { + return deviceDeviceMapper.selectAll(); + } + + @Cacheable( key = "'device:ip:' + #ip") + @Override + public List getByIp(String ip) { + + return deviceDeviceMapper.selectByIp(ip); + } + + @Override + public List getByNameLike(String name) { + return deviceDeviceMapper.selectByNameLike(name); + } + + @Override + public List getByCondition(DeviceDevice condition) { + return deviceDeviceMapper.selectByCondition(condition); + } + + @Override + public List getByMap(Map params) { + return deviceDeviceMapper.selectByMap(params); + } + + @Override + public List getByPage(int pageNum, int pageSize) { + int offset = (pageNum - 1) * pageSize; + return deviceDeviceMapper.selectByPage(offset, pageSize); + } + + @Override + public Long getCount() { + return deviceDeviceMapper.count(); + } + + @Override + public List getMonitoringDevices() { + return deviceDeviceMapper.selectMonitoringDevices(); + } + + @Override + public List getActiveDevices() { + return deviceDeviceMapper.selectActiveDevices(); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceReceiveLogServiceImpl.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceReceiveLogServiceImpl.java new file mode 100644 index 0000000..d0766be --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceReceiveLogServiceImpl.java @@ -0,0 +1,159 @@ +package com.common.service.impl; + + +import com.common.entity.DeviceReceiveLog; +import com.common.mapper.DeviceReceiveLogMapper; +import com.common.service.DeviceReceiveLogService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +@RequiredArgsConstructor +public class DeviceReceiveLogServiceImpl implements DeviceReceiveLogService { + + private final DeviceReceiveLogMapper deviceReceiveLogMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long insertLog(DeviceReceiveLog log) { + // 设置默认时间 + if (log.getCreatedAt() == null) { + log.setCreatedAt(LocalDateTime.now()); + } + + if (log.getReceiveTimeStr() == null && log.getReceiveTime() != null) { + log.setReceiveTimeStr(log.getReceiveTime().toString()); + } + + deviceReceiveLogMapper.insert(log); + // log.info("插入设备接收日志成功,ID: {}", log.getId()); + return log.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int batchInsertLogs(List logs) { + if (logs == null || logs.isEmpty()) { + return 0; + } + + // 批量处理,每1000条提交一次 + int batchSize = 1000; + int totalInserted = 0; + + for (int i = 0; i < logs.size(); i += batchSize) { + int end = Math.min(i + batchSize, logs.size()); + List batchList = logs.subList(i, end); + + // 设置默认值 + batchList.forEach(log -> { + if (log.getCreatedAt() == null) { + log.setCreatedAt(LocalDateTime.now()); + } + if (log.getReceiveTimeStr() == null && log.getReceiveTime() != null) { + log.setReceiveTimeStr(log.getReceiveTime().toString()); + } + }); + + int inserted = deviceReceiveLogMapper.batchInsert(batchList); + totalInserted += inserted; + log.info("批量插入进度: {}/{}", end, logs.size()); + } + + return totalInserted; + } + + @Override + public DeviceReceiveLog getById(Long id) { + return deviceReceiveLogMapper.selectById(id); + } + + @Override + public List getByDeviceId(Integer deviceId) { + return deviceReceiveLogMapper.selectByDeviceId(deviceId); + } + + @Override + public List getByCollectId(Integer collectId) { + return deviceReceiveLogMapper.selectByCollectId(collectId); + } + + @Override + public List getByTimeRange(LocalDateTime startTime, LocalDateTime endTime) { + if (startTime == null || endTime == null) { + throw new IllegalArgumentException("时间范围不能为空"); + } + if (startTime.isAfter(endTime)) { + throw new IllegalArgumentException("开始时间不能晚于结束时间"); + } + return deviceReceiveLogMapper.selectByTimeRange(startTime, endTime); + } + + @Override + public List getByCondition(DeviceReceiveLog condition) { + return deviceReceiveLogMapper.selectByCondition(condition); + } + + @Override + public PageInfo getByConditionPage(DeviceReceiveLog condition, Integer pageNum, Integer pageSize) { + if (pageNum == null || pageNum < 1) { + pageNum = 1; + } + if (pageSize == null || pageSize < 1) { + pageSize = 10; + } + + PageHelper.startPage(pageNum, pageSize); + List list = deviceReceiveLogMapper.selectByCondition(condition); + return new PageInfo<>(list); + } + + @Override + public Long countByCondition(DeviceReceiveLog condition) { + return deviceReceiveLogMapper.countByCondition(condition); + } + + @Override + public List> getDeviceLogStatistics() { + return deviceReceiveLogMapper.countByDeviceGroup(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteOldLogs(LocalDateTime beforeTime) { + if (beforeTime == null) { + throw new IllegalArgumentException("删除时间点不能为空"); + } + + LocalDateTime endTime = LocalDateTime.now().minusDays(30); // 默认保留30天 + if (beforeTime.isAfter(endTime)) { + log.warn("删除时间点{}晚于默认保留时间{},使用默认时间", beforeTime, endTime); + beforeTime = endTime; + } + + int deleted = deviceReceiveLogMapper.deleteByTimeRange( + LocalDateTime.of(2000, 1, 1, 0, 0), // 很早的时间 + beforeTime + ); + + log.info("删除{}天前的日志,共删除{}条", beforeTime, deleted); + return deleted; + } + + @Override + public List getRecentLogs(Integer limit) { + if (limit == null || limit < 1) { + limit = 50; // 默认返回50条 + } + return deviceReceiveLogMapper.selectRecent(limit); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceUnknownServiceImpl.java b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceUnknownServiceImpl.java new file mode 100644 index 0000000..c75896a --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/common/service/impl/DeviceUnknownServiceImpl.java @@ -0,0 +1,286 @@ +package com.common.service.impl; + + + +import com.common.entity.DeviceUnknown; +import com.common.mapper.DeviceUnknownMapper; +import com.common.service.DeviceUnknownService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cache.annotation.CachePut; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.cache.CacheManager; +import org.springframework.cache.Cache; +import org.springframework.cache.annotation.Cacheable; +import java.time.LocalDateTime; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; + +@Slf4j +@Service +@RequiredArgsConstructor +@CacheConfig(cacheNames = "deviceunknown") +public class DeviceUnknownServiceImpl implements DeviceUnknownService { + + private final DeviceUnknownMapper deviceUnknownMapper; + @Autowired + private CacheManager cacheManager; + + @Override + @Transactional + public Long createDevice(DeviceUnknown device) { + // 设置默认值 + if (device.getCreatedAt() == null) { + device.setCreatedAt(LocalDateTime.now()); + } + if (device.getNetworkProtocol() == null) { + device.setNetworkProtocol("TCP"); + } + if (device.getSourceMethod() == null) { + device.setSourceMethod("SYSTEM"); + } + + try { + int result = deviceUnknownMapper.insert(device); + if (result > 0) { + log.info("设备记录创建成功,ID: {}", device.getId()); + //清除缓存IP:XXXX + clearDeviceCache(device.getDeviceIp()); + List devlist=this.getDevicesByIp(device.getDeviceIp()); + return device.getId(); + } + return null; + } catch (Exception e) { + log.error("创建设备记录失败: {}", e.getMessage(), e); + throw new RuntimeException("创建设备记录失败", e); + } + } + /** + * 清除缓存 + */ + public void clearDeviceCache(String deviceIp) { + Cache cache = cacheManager.getCache("deviceunknown"); + if (cache != null) { + System.out.println("清除缓存"+"ip:" + deviceIp); + cache.evict("ip:" + deviceIp); + } + } + + @Override + @Transactional + public int batchCreateDevices(List devices) { + if (CollectionUtils.isEmpty(devices)) { + return 0; + } + + // 设置默认值 + devices.forEach(device -> { + if (device.getCreatedAt() == null) { + device.setCreatedAt(LocalDateTime.now()); + } + if (device.getNetworkProtocol() == null) { + device.setNetworkProtocol("TCP"); + } + if (device.getSourceMethod() == null) { + device.setSourceMethod("SYSTEM"); + } + }); + + try { + int result = deviceUnknownMapper.batchInsert(devices); + log.info("批量插入设备记录成功,数量: {}", result); + return result; + } catch (Exception e) { + log.error("批量插入设备记录失败: {}", e.getMessage(), e); + throw new RuntimeException("批量插入设备记录失败", e); + } + } + + @Override + public DeviceUnknown getDeviceById(Long id) { + if (id == null || id <= 0) { + throw new IllegalArgumentException("设备ID不能为空"); + } + + try { + return deviceUnknownMapper.selectById(id); + } catch (Exception e) { + log.error("查询设备记录失败,ID: {}, 错误: {}", id, e.getMessage(), e); + throw new RuntimeException("查询设备记录失败", e); + } + } + @Cacheable( key = "'ip:' +#deviceIp") + @Override + public List getDevicesByIp(String deviceIp) { + if (deviceIp == null || deviceIp.trim().isEmpty()) { + throw new IllegalArgumentException("设备IP不能为空"); + } + try { + return deviceUnknownMapper.selectByIp(deviceIp); + } catch (Exception e) { + log.error("根据IP查询设备记录失败,IP: {}, 错误: {}", deviceIp, e.getMessage(), e); + throw new RuntimeException("根据IP查询设备记录失败", e); + } + } + + @Override + public List getDevicesByOrganizationId(Integer organizationId) { + if (organizationId == null || organizationId <= 0) { + throw new IllegalArgumentException("组织ID不能为空"); + } + + try { + return deviceUnknownMapper.selectByOrganizationId(organizationId); + } catch (Exception e) { + log.error("根据组织ID查询设备记录失败,组织ID: {}, 错误: {}", organizationId, e.getMessage(), e); + throw new RuntimeException("根据组织ID查询设备记录失败", e); + } + } + + @Override + public List getAllDevices() { + try { + return deviceUnknownMapper.selectAll(); + } catch (Exception e) { + log.error("查询所有设备记录失败: {}", e.getMessage(), e); + throw new RuntimeException("查询所有设备记录失败", e); + } + } + + @Override + public List getDevicesByPage(int pageNum, int pageSize) { + if (pageNum <= 0) { + pageNum = 1; + } + if (pageSize <= 0) { + pageSize = 10; + } + + int offset = (pageNum - 1) * pageSize; + + try { + return deviceUnknownMapper.selectPage(offset, pageSize); + } catch (Exception e) { + log.error("分页查询设备记录失败,页码: {}, 页大小: {}, 错误: {}", + pageNum, pageSize, e.getMessage(), e); + throw new RuntimeException("分页查询设备记录失败", e); + } + } + + @Override + public List searchDevices(DeviceUnknown device) { + try { + return deviceUnknownMapper.selectByCondition(device); + } catch (Exception e) { + log.error("条件查询设备记录失败: {}", e.getMessage(), e); + throw new RuntimeException("条件查询设备记录失败", e); + } + } + + @Override + @Transactional + public boolean updateDevice(DeviceUnknown device) { + if (device == null || device.getId() == null) { + throw new IllegalArgumentException("设备信息或ID不能为空"); + } + try { + int result = deviceUnknownMapper.updateById(device); + if (result > 0) { + log.info("更新设备记录成功,ID: {}", device.getId()); + return true; + } + log.warn("未找到要更新的设备记录,ID: {}", device.getId()); + return false; + } catch (Exception e) { + log.error("更新设备记录失败,ID: {}, 错误: {}", device.getId(), e.getMessage(), e); + throw new RuntimeException("更新设备记录失败", e); + } + } + + @Override + @Transactional + public boolean updateLastTime(Long id, LocalDateTime lastTime) { + if (id == null || lastTime == null) { + throw new IllegalArgumentException("设备ID和最后发现时间不能为空"); + } + + try { + int result = deviceUnknownMapper.updateLastTime(id, lastTime); + if (result > 0) { + log.info("更新设备最后发现时间成功,ID: {}", id); + return true; + } + log.warn("未找到要更新最后发现时间的设备记录,ID: {}", id); + return false; + } catch (Exception e) { + log.error("更新设备最后发现时间失败,ID: {}, 错误: {}", id, e.getMessage(), e); + throw new RuntimeException("更新设备最后发现时间失败", e); + } + } + + @Override + @Transactional + public boolean deleteDevice(Long id) { + if (id == null || id <= 0) { + throw new IllegalArgumentException("设备ID不能为空"); + } + + try { + int result = deviceUnknownMapper.deleteById(id); + if (result > 0) { + log.info("删除设备记录成功,ID: {}", id); + return true; + } + log.warn("未找到要删除的设备记录,ID: {}", id); + return false; + } catch (Exception e) { + log.error("删除设备记录失败,ID: {}, 错误: {}", id, e.getMessage(), e); + throw new RuntimeException("删除设备记录失败", e); + } + } + + @Override + @Transactional + public int deleteDevicesByOrganizationId(Integer organizationId) { + if (organizationId == null || organizationId <= 0) { + throw new IllegalArgumentException("组织ID不能为空"); + } + + try { + int result = deviceUnknownMapper.deleteByOrganizationId(organizationId); + log.info("根据组织ID删除设备记录成功,组织ID: {}, 删除数量: {}", organizationId, result); + return result; + } catch (Exception e) { + log.error("根据组织ID删除设备记录失败,组织ID: {}, 错误: {}", + organizationId, e.getMessage(), e); + throw new RuntimeException("根据组织ID删除设备记录失败", e); + } + } + + @Override + public long getTotalCount() { + try { + Long count = deviceUnknownMapper.count(); + return count != null ? count : 0L; + } catch (Exception e) { + log.error("统计设备总数失败: {}", e.getMessage(), e); + throw new RuntimeException("统计设备总数失败", e); + } + } + + @Override + public long getCountByCondition(DeviceUnknown device) { + try { + Long count = deviceUnknownMapper.countByCondition(device); + return count != null ? count : 0L; + } catch (Exception e) { + log.error("条件统计设备数量失败: {}", e.getMessage(), e); + throw new RuntimeException("条件统计设备数量失败", e); + } + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/config/CacheConfig.java b/haobang-security-xdr/syslog-serve/src/main/java/com/config/CacheConfig.java new file mode 100644 index 0000000..7599012 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/config/CacheConfig.java @@ -0,0 +1,106 @@ +package com.config; + +import org.springframework.cache.CacheManager; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.StringRedisSerializer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.time.Duration; +import java.util.Collections; +import org.springframework.cache.annotation.EnableCaching; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.databind.jsontype.BasicPolymorphicTypeValidator; +import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator; + +@Configuration +@EnableCaching // 启用缓存 +public class CacheConfig { + + /** + * 配置支持类型信息的 ObjectMapper + */ + @Bean + public ObjectMapper objectMapper() { + ObjectMapper mapper = new ObjectMapper(); + + // 注册 Java 8 日期时间支持 + mapper.registerModule(new JavaTimeModule()); + + // 禁用将日期序列化为时间戳 + mapper.disable(com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + + // 启用类型信息,解决 LinkedHashMap 转换问题 + PolymorphicTypeValidator ptv = BasicPolymorphicTypeValidator.builder() + .allowIfSubType("com.common.entity.") // 允许你的实体类包 + .allowIfSubType("java.util.ArrayList") // 允许 ArrayList + .allowIfSubType("java.util.LinkedList") // 允许 LinkedList + .allowIfBaseType("java.util.List") // 允许 List 接口 + .allowIfBaseType("java.lang.Object") // 允许 Object 类型 + .build(); + + // 激活默认类型信息 + mapper.activateDefaultTyping( + ptv, + ObjectMapper.DefaultTyping.NON_FINAL, + com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY + ); + + return mapper; + } + + + /** + * Redis 缓存配置 + */ + @Bean + public RedisCacheConfiguration redisCacheConfiguration() { + ObjectMapper mapper = objectMapper(); + GenericJackson2JsonRedisSerializer serializer = new GenericJackson2JsonRedisSerializer(mapper); + + return RedisCacheConfiguration.defaultCacheConfig() + .entryTtl(Duration.ofMinutes(30)) + .disableCachingNullValues() + .serializeKeysWith(RedisSerializationContext.SerializationPair + .fromSerializer(new StringRedisSerializer())) + .serializeValuesWith(RedisSerializationContext.SerializationPair + .fromSerializer(serializer)); + } + + @Bean + public CacheManager cacheManager(RedisConnectionFactory factory) { + ObjectMapper mapper = objectMapper(); + GenericJackson2JsonRedisSerializer serializer = new GenericJackson2JsonRedisSerializer(mapper); + + RedisCacheConfiguration deviceConfig = RedisCacheConfiguration.defaultCacheConfig() + .entryTtl(Duration.ofHours(1)) + .serializeKeysWith(RedisSerializationContext.SerializationPair + .fromSerializer(new StringRedisSerializer())) + .serializeValuesWith(RedisSerializationContext.SerializationPair + .fromSerializer(serializer)); + + RedisCacheConfiguration collectTaskConfig = RedisCacheConfiguration.defaultCacheConfig() + .entryTtl(Duration.ofHours(1)) + .serializeKeysWith(RedisSerializationContext.SerializationPair + .fromSerializer(new StringRedisSerializer())) + .serializeValuesWith(RedisSerializationContext.SerializationPair + .fromSerializer(serializer)); + + return RedisCacheManager.builder(factory) + .cacheDefaults(redisCacheConfiguration()) + .withInitialCacheConfigurations(Collections.singletonMap( + "device", deviceConfig + )) + .withInitialCacheConfigurations(Collections.singletonMap( + + "collectTask",collectTaskConfig + )) + .transactionAware() + .build(); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/config/RedisConfig.java b/haobang-security-xdr/syslog-serve/src/main/java/com/config/RedisConfig.java new file mode 100644 index 0000000..fb208c1 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/config/RedisConfig.java @@ -0,0 +1,58 @@ +package com.config; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +import com.fasterxml.jackson.databind.ObjectMapper; + @Configuration +public class RedisConfig { + + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(factory); + + // 使用 Jackson2JsonRedisSerializer 并指定类型 + Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(Object.class); + + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + mapper.activateDefaultTyping( + mapper.getPolymorphicTypeValidator(), + ObjectMapper.DefaultTyping.NON_FINAL + ); + serializer.setObjectMapper(mapper); + + template.setKeySerializer(new StringRedisSerializer()); + template.setValueSerializer(serializer); + template.setHashKeySerializer(new StringRedisSerializer()); + template.setHashValueSerializer(serializer); + template.afterPropertiesSet(); + + return template; + } +/** + public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(connectionFactory); + + // 使用StringRedisSerializer来序列化和反序列化redis的key值 + template.setKeySerializer(new StringRedisSerializer()); + // 使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值 + Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(Object.class); + template.setValueSerializer(serializer); + + // Hash的key和value也分别设置序列化器 + template.setHashKeySerializer(new StringRedisSerializer()); + template.setHashValueSerializer(serializer); + + template.afterPropertiesSet(); + return template; + } + **/ +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/config/AppConfig.java b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/config/AppConfig.java new file mode 100644 index 0000000..86b28e9 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/config/AppConfig.java @@ -0,0 +1,132 @@ +package com.haobang.config; + +import com.typesafe.config.Config; +import com.typesafe.config.ConfigFactory; +import java.io.File; +import com.typesafe.config.ConfigValueFactory; + +import java.util.Map; +public class AppConfig { + + private static final Config config; + + static { + // 加载配置文件 + File configFile = new File("application.properties"); + Config loadedConfig; + + if (configFile.exists()) { + loadedConfig = ConfigFactory.parseFile(configFile); + } else { + loadedConfig = ConfigFactory.load("application.properties"); + } + + // 解析环境变量占位符 + config = resolveEnvironmentVariables(loadedConfig); + } + + + /** + * 解析环境变量占位符 + */ + private static Config resolveEnvironmentVariables(Config originalConfig) { + Config resolvedConfig = originalConfig; + + // 遍历所有配置项,查找需要解析的占位符 + for (Map.Entry entry : originalConfig.entrySet()) { + String key = entry.getKey(); + String value = originalConfig.getString(key); + + if (value.contains("${")) { + String resolvedValue = resolvePlaceholder(value); + resolvedConfig = resolvedConfig.withValue( + key, + ConfigValueFactory.fromAnyRef(resolvedValue) + ); + } + } + + return resolvedConfig; + } + + /** + * 解析单个占位符值 + * 格式: ${ENV_VAR:default_value} + */ + private static String resolvePlaceholder(String value) { + if (!value.startsWith("${") || !value.endsWith("}")) { + return value; + } + + String placeholder = value.substring(2, value.length() - 1); + String[] parts = placeholder.split(":"); + + if (parts.length == 0) { + return value; // 无效格式,返回原值 + } + + String envVarName = parts[0].trim(); + String defaultValue = parts.length > 1 ? parts[1].trim() : ""; + + // 1. 从系统环境变量获取 + String envValue = System.getenv(envVarName); + if (envValue != null && !envValue.trim().isEmpty()) { + return envValue.trim(); + } + + // 2. 从系统属性获取 (java -D参数) + String sysValue = System.getProperty(envVarName); + if (sysValue != null && !sysValue.trim().isEmpty()) { + return sysValue.trim(); + } + + // 3. 返回默认值 + return defaultValue; + } + + // Syslog 配置 + public static int getSyslogTcpPort() { + return config.getInt("syslog.tcp.port"); + } + + public static int getSyslogUdpPort() { + return config.getInt("syslog.udp.port"); + } + + public static int getSyslogMaxFrameLength() { + return config.getInt("syslog.max.frame.length"); + } + + public static int getSyslogBufferSize() { + return config.getInt("syslog.buffer.size"); + } + + // app service 配置 + public static String getAppServieDeviceId() { + return config.getString("app.service.device_id"); + } + public static String getAppServieDeviceName() { return config.getString("app.service.device_name"); + } + public static String getAppServieVendor() { + return config.getString("app.service.vendor"); + } + public static String getAppServieProductName() { + return config.getString("app.service.product_name"); + } + public static String getAppServieDataType() { + return config.getString("app.service.data_type"); + } + // kafka 配置 + public static String getKafkaProducerBootstrap() { + return config.getString("spring.kafka.producer.bootstrap-servers"); + } + public static String getKafkaProducerTopic() { + return config.getString("spring.kafka.producer.topic"); + } + + public static int getDeviceCollectId() { + return config.getInt("app.service.device_collect_id"); + } + + +} diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/config/SyslogConfig.java b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/config/SyslogConfig.java new file mode 100644 index 0000000..e125fac --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/config/SyslogConfig.java @@ -0,0 +1,63 @@ +package com.haobang.config; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.PropertySource; + + +@ConfigurationProperties(prefix = "syslog") +public class SyslogConfig { + + // 读取字符串属性 + @Value("${syslog.tcp.port}") + private int tcpPort; + // 读取字符串属性 + @Value("${syslog.udp.port}") + private int udpPort; + // 读取字符串属性 + @Value("${syslog.max.frame.length}") + private int maxFrameLength; + // 读取字符串属性 + @Value("${syslog.buffer.size}") + private int bufferSize; + + // Getter 和 Setter 方法 + public int getTcpPort() { + return tcpPort; + } + + public void setTcpPort(int tcpPort) { + this.tcpPort = tcpPort; + } + + public int getUdpPort() { + return udpPort; + } + + public void setUdpPort(int udpPort) { + this.udpPort = udpPort; + } + + public int getMaxFrameLength() { + return maxFrameLength; + } + + public void setMaxFrameLength(int maxFrameLength) { + this.maxFrameLength = maxFrameLength; + } + + public int getBufferSize() { + return bufferSize; + } + + public void setBufferSize(int bufferSize) { + this.bufferSize = bufferSize; + } + + @Override + public String toString() { + return String.format("SyslogConfig[tcpPort=%d, udpPort=%d, maxFrameLength=%d, bufferSize=%d]", + tcpPort, udpPort, maxFrameLength, bufferSize); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/syslog/MySyslogClient.java b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/syslog/MySyslogClient.java new file mode 100644 index 0000000..aea5801 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/syslog/MySyslogClient.java @@ -0,0 +1,40 @@ +package com.haobang.syslog; + +import org.graylog2.syslog4j.Syslog; +import org.graylog2.syslog4j.SyslogIF; + +import java.net.URLDecoder; +import java.util.Date; + +public class MySyslogClient { + public static void main(String[] args) { + try { + // 获取syslog的操作类,使用udp协议。syslog支持"udp", "tcp", "unix_syslog", "unix_socket"协议 + SyslogIF syslog = Syslog.getInstance("udp"); + // 设置syslog服务器端地址 + syslog.getConfig().setHost("127.0.0.1"); + // 设置syslog接收端口,默认514 + syslog.getConfig().setPort(514); + // 拼接syslog日志,这个日志是自己定义的,通常我们定义成符合公司规范的格式就行,方便查询。例如 操作时间:2014年8月1日 操作者ID:张三 + // 等。信息就是一个字符串。 + StringBuffer buffer = new StringBuffer(); + buffer.append("操作时间:" + new Date().toString().substring(4, 20) + ";"); + buffer.append("操作者ID:" + "张三" + ";"); + buffer.append("操作时间:" + new Date() + ";"); + buffer.append("日志类别:" + "22" + ";"); + buffer.append("执行动作:" + "动作" + ";"); + buffer.append("备注:" + "<14>2023-06-15 18:30:00|!alarm|!192.168.10.85|!{\"attack_classify_id\": 20000, \"attack_state\": 1, \"dev_id\": \"2D45B4CC\", \"module_type_name\": \"访问恶意文件\", \"status_code\": [206], \"event_desc\": \"发现BITSAdmin下载行为\", \"updated_at\": 1686824955, \"brief\": \"通用文件包含攻击\", \"suffer_branch_id\": 0, \"suffer_country\": \"中国\", \"alert_id\": 217980008, \"reliability\": 2, \"relation\": \"{\\\"cond\\\":{\\\"attack_state\\\":\\\"${attack_state}\\\",\\\"attack_type\\\":\\\"${attack_type}\\\",\\\"dst_ip\\\":\\\"${suffer_ip}\\\",\\\"hole_id\\\":\\\"${hole_ids}\\\",\\\"module_type\\\":\\\"${module_type}\\\",\\\"src_asset_id\\\":\\\"${attack_asset_id}\\\",\\\"sub_attack_type\\\":\\\"${sub_attack_type}\\\"},\\\"from\\\":\\\"ngfw.security\\\",\\\"type\\\":\\\"es\\\"}\", \"is_white\": 0, \"last_time\": 1686789876, \"x_forwarded_for\": [], \"attack_type\": 1, \"sub_attack_type_name\": \"\", \"suggest\": \"1. 请修改应用程序代码,限制在请求参数中包含远程文件。\\\\n\\\\n2. 过滤远程链接地址,防止非法文件链接。\\\\n\\\\n3. 使用下一代防火墙新建一条安全防护策略,启用Web应用防护功能。\", \"suffer_ip\": \"220.181.174.197\", \"tags\": \"发现BITSAdmin下载行为\", \"damage\": \"攻击者可以远程包含一个指定的恶意远程文件并执行。\", \"multi_deal_status\": 0, \"event_evidence\": \"url路径: r4---sn-2x3elnez.gvt1-cn.com/edgedl/release2/update2/frzzivvwnmyuux6g6suhmwmhmy_1.3.36.243/GoogleUpdateSetup.exe?mh=4V&pl=16&shardbypass=sd&redirect_counter=1&rm=sn-j5oe7l&req_id=dc25df16e640d9a4&cms_redirect=yes&cmsv=e&ipbypass=yes&mip=101.40.71.98&mm=28&mn=sn-2x3elnez&ms=nvh&mt=1686789390&mv=m&mvi=4&rmhost=r1---sn-2x3elnez.gvt1-cn.com&smhost=r3---sn-2x3elnee.gvt1-cn.com 状态码: 206 请求头: GET /edgedl/release2/update2/frzzivvwnmyuux6g6suhmwmhmy_1.3.36.243/GoogleUpdateSetup.exe?mh=4V&pl=16&shardbypass=sd&redirect_counter=1&rm=sn-j5oe7l&req_id=dc25df16e640d9a4&cms_redirect=yes&cmsv=e&ipbypass=yes&mip=101.40.71.98&mm=28&mn=sn-2x3elnez&ms=nvh&mt=1686789390&mv=m&mvi=4&rmhost=r1---sn-2x3elnez.gvt1-cn.com&smhost=r3---sn-2x3elnee.gvt1-cn.com HTTP/1.1\\r\\nConnection: Keep-Alive\\r\\nAccept: */*\\r\\nAccept-Encoding: identity\\r\\nIf-Unmodified-Since: Wed, 10 May 2023 17:31:46 GMT\\r\\nRange: bytes=0-1119\\r\\nUser-Agent: Microsoft BITS/7.8\\r\\nX-Old-UID: age=681; cnt=1\\r\\nX-Last-HR: 0x0\\r\\nX-Last-HTTP-Status-Code: 0\\r\\nX-Retry-Count: 0\\r\\nX-HTTP-Attempts: 1\\r\\nHost: r4---sn-2x3elnez.gvt1-cn.com\\r\\n\\r\\n 响应头: HTTP/1.1 206 Partial Content\\r\\nAccept-Ranges: bytes\\r\\nCache-Control: public,max-age=86400\\r\\nContent-Disposition: attachment\\r\\nContent-Length: 1120\\r\\nContent-Security-Policy: default-src 'none'\\r\\nContent-Type: application/octet-stream\\r\\nEtag: \\\"1605112\\\"\\r\\nServer: downloads\\r\\nX-Content-Type-Options: nosniff\\r\\nX-Frame-Options: SAMEORIGIN\\r\\nX-Xss-Protection: 0\\r\\nDate: Wed, 14 Jun 2023 03:38:42 GMT\\r\\nAlt-Svc: h3=\\\":443\\\"; ma=2592000,h3-29=\\\":443\\\"; ma=2592000\\r\\nLast-Modified: Wed, 10 May 2023 17:31:46 GMT\\r\\nContent-Range: bytes 0-1119/1368616\\r\\nConnection: keep-alive\\r\\nVary: Origin\\r\\n\\r\\n 响应体: MZ�\\u0000\\u0003\\u0000\\u0000\\u0000\\u0004\\u0000\\u0000\\u0000�\\u0000\\u0000�\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000@\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\b\\u0001\\u0000\\u0000\\u000e\\u001f�\\u000e\\u0000�\\t�!�\\u0001L�!This program cannot be run in DOS mode.\\r\\r\\n$\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000Z/\\u000b�\\u001eNe�\\u001eNe�\\u001eNe� map = new LinkedHashMap<>(); + map.put("receive_time",timeString); + map.put("device_id", AppConfig.getAppServieDeviceId()); + map.put("device_name", AppConfig.getAppServieDeviceName()); + map.put("vendor", AppConfig.getAppServieVendor()); + map.put("data_type", AppConfig.getAppServieDataType()); + map.put("device_collect_id", Long.toString(AppConfig.getDeviceCollectId())); + + String formattedString = formatDeviceInfo(map); + //return formattedString + "" + strSyslog.substring(34); + + //测试环境截取34位之后字符串 + return formattedString + strSyslog; + } + /** + * 补充设备配置信息 key value值 + * @param strSyslog + * @return + */ + public static String getFullLogString(DeviceDevice deviceDevice,String strSyslog) + { + ObjectMapper objectMapper = new ObjectMapper(); + // 创建设备配置信息MAP + // 获取当前时间(精度到毫秒) + LocalDateTime now = LocalDateTime.now(); + // 定义格式化器,包含毫秒 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"); + // 转换为字符串 + String timeString = now.format(formatter); + Map map = new LinkedHashMap<>(); + map.put("receive_time",timeString); + map.put("device_id",deviceDevice.getId().toString()); + map.put("device_name", deviceDevice.getName()); + map.put("vendor", deviceDevice.getVendor()); + map.put("data_type", AppConfig.getAppServieDataType()); + map.put("device_collect_id", Long.toString(AppConfig.getDeviceCollectId())); + String formattedString = formatDeviceInfo(map); + //return formattedString + "" + strSyslog.substring(34); + //测试环境截取34位之后字符串 + return formattedString + strSyslog; + } + + public static String getFullLogString(DeviceDevice deviceDevice,String strSyslog,String receive_time) + { + ObjectMapper objectMapper = new ObjectMapper(); + // 创建设备配置信息MAP + // 获取当前时间(精度到毫秒) + LocalDateTime now = LocalDateTime.now(); + // 定义格式化器,包含毫秒 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"); + // 转换为字符串 + String timeString = now.format(formatter); + Map map = new LinkedHashMap<>(); + map.put("receive_time",receive_time); + map.put("device_id",deviceDevice.getId().toString()); + map.put("device_name", deviceDevice.getName()); + map.put("vendor", deviceDevice.getVendor()); + map.put("data_type", AppConfig.getAppServieDataType()); + map.put("device_collect_id", Long.toString(AppConfig.getDeviceCollectId())); + String formattedString = formatDeviceInfo(map); + //return formattedString + "" + strSyslog.substring(34); + //测试环境截取34位之后字符串 + return formattedString + strSyslog; + } + + + public static String formatDeviceInfo(Map deviceData) { + if (deviceData == null || deviceData.isEmpty()) { + return "[]"; // 返回空括号表示无数据 + } + StringBuilder sb = new StringBuilder(); + sb.append("["); // 开始字符 + + // 使用 LinkedHashMap 保持插入顺序 + boolean firstEntry = true; + for (Map.Entry entry : deviceData.entrySet()) { + if (!firstEntry) { + sb.append(" "); // 键值对之间用空格分隔 + } + sb.append(entry.getKey()) + .append("=") + .append(entry.getValue()); + firstEntry = false; + } + sb.append("]"); // 结束字符 + return sb.toString(); + } + +} diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/SafeCacheUtil.java b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/SafeCacheUtil.java new file mode 100644 index 0000000..26eef7b --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/SafeCacheUtil.java @@ -0,0 +1,108 @@ +package com.haobang.util; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; +import com.fasterxml.jackson.databind.ObjectMapper; +import java.util.concurrent.TimeUnit; +import java.util.function.Supplier; +import java.util.LinkedHashMap; +import java.util.List ; +import java.util.stream.Collectors; + +@Component +public class SafeCacheUtil { + + @Autowired + private RedisTemplate redisTemplate; + + @Autowired + private ObjectMapper objectMapper; + + /** + * 安全的缓存获取方法 + */ + @SuppressWarnings("unchecked") + public T getSafe(String key, Class clazz, Supplier loader) { + try { + Object cached = redisTemplate.opsForValue().get(key); + + if (cached == null) { + // 缓存不存在,从数据源加载 + T value = loader.get(); + if (value != null) { + redisTemplate.opsForValue().set(key, value, 30, TimeUnit.MINUTES); + } + return value; + } + + // 类型匹配,直接返回 + if (clazz.isInstance(cached)) { + return (T) cached; + } + + // 类型不匹配,尝试转换 + if (cached instanceof LinkedHashMap) { + return objectMapper.convertValue(cached, clazz); + } + + // 无法转换,重新加载 + T value = loader.get(); + if (value != null) { + redisTemplate.opsForValue().set(key, value, 30, TimeUnit.MINUTES); + } + return value; + + } catch (Exception e) { + // 缓存出错,降级到数据源 + return loader.get(); + } + } + + /** + * 安全的列表缓存获取 + */ + @SuppressWarnings("unchecked") + public List getSafeList(String key, Class elementClass, Supplier> loader) { + try { + Object cached = redisTemplate.opsForValue().get(key); + + if (cached == null) { + List value = loader.get(); + if (value != null && !value.isEmpty()) { + redisTemplate.opsForValue().set(key, value, 30, TimeUnit.MINUTES); + } + return value; + } + + // 已经是正确的类型 + if (cached instanceof List && + !((List) cached).isEmpty() && + elementClass.isInstance(((List) cached).get(0))) { + return (List) cached; + } + + // 需要转换 + if (cached instanceof List) { + List rawList = (List) cached; + List convertedList = rawList.stream() + .map(item -> objectMapper.convertValue(item, elementClass)) + .collect(Collectors.toList()); + + // 更新缓存为正确格式 + redisTemplate.opsForValue().set(key, convertedList, 30, TimeUnit.MINUTES); + return convertedList; + } + + // 无法处理,重新加载 + List value = loader.get(); + if (value != null && !value.isEmpty()) { + redisTemplate.opsForValue().set(key, value, 30, TimeUnit.MINUTES); + } + return value; + + } catch (Exception e) { + return loader.get(); + } + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/SpringContextUtil.java b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/SpringContextUtil.java new file mode 100644 index 0000000..7af13d1 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/SpringContextUtil.java @@ -0,0 +1,34 @@ +package com.haobang.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +@Component +public class SpringContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + SpringContextUtil.applicationContext = applicationContext; + } + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + public static T getBean(Class clazz) { + return applicationContext.getBean(clazz); + } + + public static T getBean(String name, Class clazz) { + return applicationContext.getBean(name, clazz); + } + + // 专门获取 Mapper 的方法 + public static T getMapper(Class mapperClass) { + return applicationContext.getBean(mapperClass); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/TimeUtils.java b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/TimeUtils.java new file mode 100644 index 0000000..0b391aa --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/haobang/util/TimeUtils.java @@ -0,0 +1,45 @@ +package com.haobang.util; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class TimeUtils { + + private static final DateTimeFormatter DEFAULT_FORMATTER = + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); + + /** + * 获取当前时间的字符串表示(包含毫秒) + */ + public static String getCurrentTimeString() { + return LocalDateTime.now().format(DEFAULT_FORMATTER); + } + + /** + * 获取指定格式的当前时间字符串 + */ + public static String getCurrentTimeString(String pattern) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); + return LocalDateTime.now().format(formatter); + } + + /** + * 获取时间戳格式的字符串(无分隔符) + */ + public static String getTimestampString() { + return getCurrentTimeString("yyyyMMddHHmmssSSS"); + } + /** + * 获取当前时间戳(毫秒) + */ + public static long getCurrentTimestamp() { + return System.currentTimeMillis(); + } + + // 使用示例 + public static void main(String[] args) { + System.out.println("默认格式: " + getCurrentTimeString()); + System.out.println("时间戳格式: " + getTimestampString()); + System.out.println("自定义格式: " + getCurrentTimeString("yyyy/MM/dd HH:mm:ss.SSS")); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/kafka/kafkaConsumer.java b/haobang-security-xdr/syslog-serve/src/main/java/com/kafka/kafkaConsumer.java new file mode 100644 index 0000000..ce53729 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/kafka/kafkaConsumer.java @@ -0,0 +1,62 @@ +package com.kafka; +import org.apache.kafka.clients.consumer.*; +import org.apache.kafka.common.serialization.StringDeserializer; +import java.time.Duration; +import java.util.Collections; +import java.util.Properties; + + +public class kafkaConsumer { + + + public static void main(String[] args) { + // 配置消费者属性 + Properties props = new Properties(); + props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.222.130:9092"); + props.put(ConsumerConfig.GROUP_ID_CONFIG, "test-group"); + props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); + props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); + + // 可选配置 + props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); // 从最早的消息开始消费 + props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "true"); // 自动提交偏移量 + props.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "1000"); // 自动提交间隔 + + // 创建消费者实例 + Consumer consumer = new KafkaConsumer<>(props); + + try { + // 订阅主题 + consumer.subscribe(Collections.singletonList("test-topic")); + + System.out.println("开始消费消息..."); + + // 持续消费消息 + while (true) { + // 拉取消息(等待最多100毫秒) + ConsumerRecords records = consumer.poll(Duration.ofMillis(100)); + + for (ConsumerRecord record : records) { + System.out.printf( + "收到消息: 主题=%s, 分区=%d, 偏移量=%d, 键=%s, 值=%s%n", + record.topic(), + record.partition(), + record.offset(), + record.key(), + record.value() + ); + + // 这里可以添加业务处理逻辑 + } + + // 手动提交偏移量(如果禁用自动提交) + // consumer.commitSync(); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + // 关闭消费者 + consumer.close(); + } + } +} diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/kafka/kafkaProducer.java b/haobang-security-xdr/syslog-serve/src/main/java/com/kafka/kafkaProducer.java new file mode 100644 index 0000000..74ddcce --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/kafka/kafkaProducer.java @@ -0,0 +1,170 @@ +package com.kafka; +import com.common.entity.DeviceDevice; +import org.apache.kafka.clients.producer.*; +import org.apache.kafka.common.serialization.StringSerializer; + +import java.util.LinkedHashMap; +import java.util.Properties; + +import com.haobang.config.AppConfig; +import com.fasterxml.jackson.databind.ObjectMapper; +import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.haobang.util.DeviceInfoUtil; + + +public class kafkaProducer { + + private static final Logger logger = LoggerFactory.getLogger(kafkaProducer.class); + + public static void main(String[] args) { + // System.out.println(getFullLogString("syslogmessage")); + + + + // 配置生产者属性 + Properties props = new Properties(); + //props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.222.130:9092"); + props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, AppConfig.getKafkaProducerBootstrap()); + props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); + props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); + + // 可选配置:提高可靠性 + props.put(ProducerConfig.ACKS_CONFIG, "all"); + props.put(ProducerConfig.RETRIES_CONFIG, 3); + props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, true); + + // 创建生产者实例 + Producer producer = new KafkaProducer<>(props); + + try { + // 发送10条消息 + //for (int i = 0; i < 1; i++) { + String key = "key-" + "1"; + String value = "message-" + "1" + " at " + System.currentTimeMillis(); + + // 创建生产者记录 + ProducerRecord record = + new ProducerRecord<>(AppConfig.getKafkaProducerTopic(), key, value); + + // 发送消息(异步方式) + producer.send(record, new Callback() { + @Override + public void onCompletion(RecordMetadata metadata, Exception exception) { + if (exception == null) { + System.out.println("消息发送成功: " + + "主题=" + metadata.topic() + + ", 分区=" + metadata.partition() + + ", 偏移量=" + metadata.offset()); + } else { + System.err.println("消息发送失败: " + exception.getMessage()); + } + } + }); + // 同步发送方式(如果需要) + // RecordMetadata metadata = producer.send(record).get(); + // System.out.println("同步发送成功: " + metadata.offset()); + // } + } catch (Exception e) { + e.printStackTrace(); + } finally { + // 关闭生产者 + producer.close(); + } + } + + /** + * * syslog 文本消息 + * * @param strSyslog + */ + + public static void messagePush(DeviceDevice deviceDevice, String strSyslog,String strReceiveTime) + { + // 配置生产者属性 + Properties props = new Properties(); + props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, AppConfig.getKafkaProducerBootstrap()); + props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); + props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); + + // 可选配置:提高可靠性 + props.put(ProducerConfig.ACKS_CONFIG, "all"); + props.put(ProducerConfig.RETRIES_CONFIG, 3); + props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, true); + + // 创建生产者实例 + Producer producer = new KafkaProducer<>(props); + try { + + String key = "key-" + System.currentTimeMillis(); + //String value = DeviceInfoUtil.getFullLogString(strSyslog); + //采用动态获取Syslog 请求的设备信息 + String value = DeviceInfoUtil.getFullLogString(deviceDevice,strSyslog,strReceiveTime); + // 创建生产者记录 + ProducerRecord record = + new ProducerRecord<>(AppConfig.getKafkaProducerTopic(), key, value); + + // 发送消息(异步方式) + producer.send(record, new Callback() { + @Override + public void onCompletion(RecordMetadata metadata, Exception exception) { + if (exception == null) { + System.out.println("消息发送成功: " + + "主题=" + metadata.topic() + + ", 分区=" + metadata.partition() + + ", 偏移量=" + metadata.offset()); + } else { + System.err.println("消息发送失败: " + exception.getMessage()); + logger.error("消息发送失败: " + exception.getMessage()); + } + } + }); + + // 同步发送方式(如果需要) + // RecordMetadata metadata = producer.send(record).get(); + // System.out.println("同步发送成功: " + metadata.offset()); + + } catch (Exception e) { + e.printStackTrace(); + } finally { + // 关闭生产者 + producer.close(); + } + } + + /** + * 生成json字符串,补充设备配置信息 + * @param strSyslog + * @return + */ + private static String getLogJsonString(String strSyslog) + { + ObjectMapper objectMapper = new ObjectMapper(); + // 创建设备配置信息MAP + Map map = new LinkedHashMap<>(); + map.put("device_id",AppConfig.getAppServieDeviceId() ); + map.put("device_name", AppConfig.getAppServieDeviceName()); + map.put("vendor", AppConfig.getAppServieVendor()); + map.put("data_type", AppConfig.getAppServieDataType()); + // 添加syslogMessage + map.put("syslogMessage", strSyslog); + try { + //生成json消息字符串 + String json = objectMapper.writeValueAsString(map); + return json; + } + catch(Exception ex) + { + logger.error("kafkaProducer getLogJsonString()生成json字符串 异常: syslog: "+ strSyslog); + logger.error("Exception: : "+ ex.getMessage()); + } + return null; + } + + + + +} + + + diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogMessage.java b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogMessage.java new file mode 100644 index 0000000..89fadda --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogMessage.java @@ -0,0 +1,75 @@ +package com.netty; + +import java.util.Date; + +/** + * Syslog 消息实体类 + */ +public class SyslogMessage { + private Integer facility; + private Integer severity; + private Date timestamp; + private String hostname; + private String message; + + // 构造函数 + public SyslogMessage() {} + + // Getter 和 Setter 方法 + public Integer getFacility() { + return facility; + } + + public void setFacility(Integer facility) { + this.facility = facility; + } + + public Integer getSeverity() { + return severity; + } + + public void setSeverity(Integer severity) { + this.severity = severity; + } + + public Date getTimestamp() { + return timestamp; + } + + public void setTimestamp(String timestamp) { + // 这里可以添加时间戳解析逻辑 + // 简化实现,直接使用当前时间 + this.timestamp = new Date(); + } + + public void setTimestamp(Date timestamp) { + this.timestamp = timestamp; + } + + public String getHostname() { + return hostname; + } + + public void setHostname(String hostname) { + this.hostname = hostname; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "SyslogMessage{" + + "facility=" + facility + + ", severity=" + severity + + ", timestamp=" + timestamp + + ", hostname='" + hostname + '\'' + + ", message='" + message + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogMessageHandler.java b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogMessageHandler.java new file mode 100644 index 0000000..d4bf729 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogMessageHandler.java @@ -0,0 +1,149 @@ +package com.netty; + +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.SimpleChannelInboundHandler; +import io.netty.channel.socket.DatagramPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.InetSocketAddress; +import com.kafka.kafkaProducer; +import com.Modules.Device.DeviceProcess; +/** + * Syslog 消息处理器 + */ +public class SyslogMessageHandler extends SimpleChannelInboundHandler { + private static final Logger logger = LoggerFactory.getLogger(SyslogMessageHandler.class); + + @Override + protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { + String message; + String source; + String source_ip; + String networkProtocol; + int source_port; + if (msg instanceof DatagramPacket) { + // UDP 消息处理 + DatagramPacket packet = (DatagramPacket) msg; + message = packet.content().toString(io.netty.util.CharsetUtil.UTF_8); + source_ip=packet.sender().getAddress().getHostAddress(); + source_port=packet.sender().getPort(); + source = packet.sender().getAddress().getHostAddress() + ":" + packet.sender().getPort(); + networkProtocol="UDP"; + logger.info("Received syslog from {}: {}", source, message); + } else if (msg instanceof String) { + // TCP 消息处理 + message = (String) msg; + InetSocketAddress remoteAddress = (InetSocketAddress) ctx.channel().remoteAddress(); + source = remoteAddress.getAddress().getHostAddress() + ":" + remoteAddress.getPort(); + source_ip=remoteAddress.getAddress().getHostAddress(); + source_port=remoteAddress.getPort(); + networkProtocol="TCP"; + logger.info("Received syslog from {}: {}", source, message); + } else { + logger.warn("Received unknown message type: {}", msg.getClass().getName()); + return; + } + DeviceProcess deviceProcess = new DeviceProcess(source_ip); + try { + //日志推送的设备信息进行鉴权处理 + int deviceId = deviceProcess.getDeviceID(source_ip); + if (deviceId < 0) { + logger.info("syslog message 的请求设备IP:{}非系统注册,暂不做处理!",source_ip); + //创建未知设备 + deviceProcess.saveDeviceUnknow(networkProtocol); + return; + } + if (!deviceProcess.IsBelongDeviceCollectTask()) { + logger.info("syslog message 的请求设备IP:{}不归属当前采集探针,暂不做处理!",source_ip); + return; + } + //插入PG库接收记录 + deviceProcess.saveDeviceReceiveLog(message,true); + kafkaProducer.messagePush(deviceProcess.getDeviceDevice(), message, deviceProcess.getDeviceReceiveLog().getReceiveTimeStr()); + + } catch (Exception e) { + //记录日志推送失败 + deviceProcess.saveDeviceReceiveLog(message,false); + logger.warn("Failed to Push syslog message", e); + + } + // 处理 Syslog 消息 + //processSyslogMessage(message.trim(), source); + } + + private void processSyslogMessage(String message, String source) { + // 这里可以添加 Syslog 消息解析逻辑 + // 根据 RFC 3164 或 RFC 5424 解析消息 + System.out.println("Received syslog from "+ source +", msg:"+ message); + logger.info("Received syslog from {}: {}", source, message); + + + try { + SyslogMessage syslogMsg = parseSyslogMessage(message); + logger.info("Parsed syslog - Facility: {}, Severity: {}, Timestamp: {}, Host: {}, Message: {}", + syslogMsg.getFacility(), + syslogMsg.getSeverity(), + syslogMsg.getTimestamp(), + syslogMsg.getHostname(), + syslogMsg.getMessage()); + + // 这里可以添加消息存储或其他处理逻辑 + // storeToDatabase(syslogMsg); + + } catch (Exception e) { + logger.warn("Failed to parse syslog message: {}", message, e); + } + } + + /** + * 简单的 Syslog 消息解析(RFC 3164 格式) + */ + private SyslogMessage parseSyslogMessage(String message) { + SyslogMessage syslogMsg = new SyslogMessage(); + + // 尝试解析 PRI 部分 + if (message.startsWith("<")) { + int priEnd = message.indexOf(">"); + if (priEnd > 0) { + String priStr = message.substring(1, priEnd); + try { + int pri = Integer.parseInt(priStr); + int facility = pri >> 3; + int severity = pri & 0x07; + + syslogMsg.setFacility(facility); + syslogMsg.setSeverity(severity); + + message = message.substring(priEnd + 1).trim(); + } catch (NumberFormatException e) { + // 忽略 PRI 解析错误 + } + } + } + + // 尝试解析时间戳和主机名 + // 这是一个简化的解析,实际实现可能需要更复杂的逻辑 + String[] parts = message.split(" ", 5); + if (parts.length >= 4) { + // 假设前三个部分是时间戳,第四个部分是主机名 + String timestamp = parts[0] + " " + parts[1] + " " + parts[2]; + syslogMsg.setTimestamp(timestamp); + syslogMsg.setHostname(parts[3]); + + if (parts.length == 5) { + syslogMsg.setMessage(parts[4]); + } + } else { + syslogMsg.setMessage(message); + } + + return syslogMsg; + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { + logger.error("Exception in channel handler", cause); + ctx.close(); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogServer.java b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogServer.java new file mode 100644 index 0000000..8b3dd45 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogServer.java @@ -0,0 +1,84 @@ +package com.netty; + +import io.netty.bootstrap.Bootstrap; +import io.netty.bootstrap.ServerBootstrap; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.nio.NioDatagramChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Syslog 服务器主类,支持 TCP 和 UDP 协议 + */ +public class SyslogServer { + private static final Logger logger = LoggerFactory.getLogger(SyslogServer.class); + + private final int tcpPort; + private final int udpPort; + + public SyslogServer(int tcpPort, int udpPort) { + this.tcpPort = tcpPort; + this.udpPort = udpPort; + } + + public void start() throws InterruptedException { + + // 启动 TCP 服务器 + startTcpServer(); + // 启动 UDP 服务器 + startUdpServer(); + } + + private void startTcpServer() throws InterruptedException { + EventLoopGroup bossGroup = new NioEventLoopGroup(1); + EventLoopGroup workerGroup = new NioEventLoopGroup(); + + try { + ServerBootstrap b = new ServerBootstrap(); + b.group(bossGroup, workerGroup) + .channel(NioServerSocketChannel.class) + .childHandler(new SyslogTcpChannelInitializer()) + .option(ChannelOption.SO_BACKLOG, 128) + .childOption(ChannelOption.SO_KEEPALIVE, true); + + ChannelFuture f = b.bind(tcpPort).sync(); + logger.info("TCP Syslog server started on port {}", tcpPort); + + f.channel().closeFuture().sync(); + } finally { + workerGroup.shutdownGracefully(); + bossGroup.shutdownGracefully(); + } + } + + private void startUdpServer() throws InterruptedException { + EventLoopGroup group = new NioEventLoopGroup(); + + try { + Bootstrap b = new Bootstrap(); + b.group(group) + .channel(NioDatagramChannel.class) + .handler(new SyslogUdpChannelInitializer()) + .option(ChannelOption.SO_BROADCAST, true); + + ChannelFuture f = b.bind(udpPort).sync(); + logger.info("UDP Syslog server started on port {}", udpPort); + + f.channel().closeFuture().sync(); + } finally { + group.shutdownGracefully(); + } + } + + public static void main(String[] args) throws Exception { + int tcpPort = args.length > 0 ? Integer.parseInt(args[0]) : 514; + int udpPort = args.length > 1 ? Integer.parseInt(args[1]) : 514; + + SyslogServer server = new SyslogServer(tcpPort, udpPort); + server.start(); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogServerBoth.java b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogServerBoth.java new file mode 100644 index 0000000..a5cb32b --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogServerBoth.java @@ -0,0 +1,202 @@ +package com.netty; + +import io.netty.bootstrap.Bootstrap; +import io.netty.bootstrap.ServerBootstrap; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.nio.NioDatagramChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * Syslog 服务器主类,支持 TCP 和 UDP 协议 + */ +public class SyslogServerBoth { + private static final Logger logger = LoggerFactory.getLogger(SyslogServer.class); + + private final int tcpPort; + private final int udpPort; + + // 共享的EventLoopGroup以优化资源使用 + private EventLoopGroup bossGroup; + private EventLoopGroup workerGroup; + private EventLoopGroup udpGroup; + + private ChannelFuture tcpChannelFuture; + private ChannelFuture udpChannelFuture; + + private final ExecutorService serverExecutor = Executors.newFixedThreadPool(2); + + public SyslogServerBoth(int tcpPort, int udpPort) { + this.tcpPort = tcpPort; + this.udpPort = udpPort; + } + + public void start() throws InterruptedException { + logger.info("Starting Syslog server with TCP port {} and UDP port {}", tcpPort, udpPort); + + // 创建共享的EventLoopGroup + bossGroup = new NioEventLoopGroup(1); + workerGroup = new NioEventLoopGroup(); + udpGroup = new NioEventLoopGroup(); + + final CountDownLatch latch = new CountDownLatch(2); + + try { + // 启动UDP服务器(使用独立的线程) + serverExecutor.submit(() -> { + try { + startUdpServer(); + latch.countDown(); + } catch (Exception e) { + logger.error("UDP server failed to start", e); + latch.countDown(); + throw new RuntimeException(e); + } + }); + + // 启动TCP服务器(使用独立的线程) + serverExecutor.submit(() -> { + try { + startTcpServer(); + latch.countDown(); + } catch (Exception e) { + logger.error("TCP server failed to start", e); + latch.countDown(); + throw new RuntimeException(e); + } + }); + + // 等待两个服务器都启动完成 + latch.await(); + logger.info("Both TCP and UDP Syslog servers are running"); + + // 注册关闭钩子 + Runtime.getRuntime().addShutdownHook(new Thread(this::shutdown)); + + // 保持主线程运行 + Thread.currentThread().join(); + + } catch (Exception e) { + logger.error("Failed to start servers", e); + shutdown(); + } + } + + private void startTcpServer() throws InterruptedException { + ServerBootstrap b = new ServerBootstrap(); + b.group(bossGroup, workerGroup) + .channel(NioServerSocketChannel.class) + .childHandler(new SyslogTcpChannelInitializer()) + .option(ChannelOption.SO_BACKLOG, 128) + .childOption(ChannelOption.SO_KEEPALIVE, true); + + tcpChannelFuture = b.bind(tcpPort).sync(); + logger.info("TCP Syslog server started on port {}", tcpPort); + + // 添加关闭监听器 + tcpChannelFuture.channel().closeFuture().addListener(future -> { + if (future.isSuccess()) { + logger.info("TCP server channel closed"); + } + }); + } + + private void startUdpServer() throws InterruptedException { + Bootstrap b = new Bootstrap(); + b.group(udpGroup) + .channel(NioDatagramChannel.class) + .handler(new SyslogUdpChannelInitializer()) + .option(ChannelOption.SO_BROADCAST, true); + + udpChannelFuture = b.bind(udpPort).sync(); + logger.info("UDP Syslog server started on port {}", udpPort); + + // 添加关闭监听器 + udpChannelFuture.channel().closeFuture().addListener(future -> { + if (future.isSuccess()) { + logger.info("UDP server channel closed"); + } + }); + } + + /** + * 优雅关闭服务器 + */ + public void shutdown() { + logger.info("Shutting down Syslog servers..."); + + try { + // 关闭TCP服务器 + if (tcpChannelFuture != null) { + tcpChannelFuture.channel().close().sync(); + } + + // 关闭UDP服务器 + if (udpChannelFuture != null) { + udpChannelFuture.channel().close().sync(); + } + + // 关闭EventLoopGroup + if (bossGroup != null) { + bossGroup.shutdownGracefully().sync(); + } + if (workerGroup != null) { + workerGroup.shutdownGracefully().sync(); + } + if (udpGroup != null) { + udpGroup.shutdownGracefully().sync(); + } + + // 关闭线程池 + serverExecutor.shutdown(); + + logger.info("Syslog servers shutdown complete"); + } catch (Exception e) { + logger.error("Error during shutdown", e); + } + } + + /** + * 检查服务器是否在运行 + */ + public boolean isRunning() { + return (tcpChannelFuture != null && tcpChannelFuture.channel().isActive()) || + (udpChannelFuture != null && udpChannelFuture.channel().isActive()); + } + + public static void main(String[] args) throws Exception { + int tcpPort = 514; + int udpPort = 514; + + // 解析命令行参数 + if (args.length >= 1) { + tcpPort = Integer.parseInt(args[0]); + } + if (args.length >= 2) { + udpPort = Integer.parseInt(args[1]); + } + + // 如果两个端口相同,UDP端口自动+1避免冲突 + if (tcpPort == udpPort) { + udpPort = tcpPort + 1; + logger.warn("TCP and UDP ports cannot be the same. UDP port changed to {}", udpPort); + } + + SyslogServerBoth server = new SyslogServerBoth(tcpPort, udpPort); + + // 注册全局异常处理器 + Thread.setDefaultUncaughtExceptionHandler((t, e) -> { + logger.error("Uncaught exception in thread {}", t.getName(), e); + }); + + server.start(); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogTcpChannelInitializer.java b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogTcpChannelInitializer.java new file mode 100644 index 0000000..44ec9f3 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogTcpChannelInitializer.java @@ -0,0 +1,36 @@ +package com.netty; + + +import com.haobang.config.AppConfig; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelPipeline; +import io.netty.channel.socket.SocketChannel; +import io.netty.handler.codec.DelimiterBasedFrameDecoder; +import io.netty.handler.codec.Delimiters; +import io.netty.handler.codec.string.StringDecoder; +import io.netty.handler.codec.string.StringEncoder; +import io.netty.util.CharsetUtil; + +/** + * TCP 通道初始化器 + */ +public class SyslogTcpChannelInitializer extends ChannelInitializer { + private static final int MAX_FRAME_LENGTH = AppConfig.getSyslogMaxFrameLength(); + + @Override + protected void initChannel(SocketChannel ch) throws Exception { + ChannelPipeline pipeline = ch.pipeline(); + + // 添加基于分隔符的帧解码器,处理以换行符结尾的 Syslog 消息 + pipeline.addLast("framer", new DelimiterBasedFrameDecoder( + MAX_FRAME_LENGTH, + Delimiters.lineDelimiter())); + + // 添加字符串解码器和编码器 + pipeline.addLast("decoder", new StringDecoder(CharsetUtil.UTF_8)); + pipeline.addLast("encoder", new StringEncoder(CharsetUtil.UTF_8)); + + // 添加业务处理器 + pipeline.addLast("handler", new SyslogMessageHandler()); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogUdpChannelInitializer.java b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogUdpChannelInitializer.java new file mode 100644 index 0000000..04be298 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/java/com/netty/SyslogUdpChannelInitializer.java @@ -0,0 +1,25 @@ +package com.netty; + +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelPipeline; +import io.netty.channel.socket.DatagramChannel; +import io.netty.handler.codec.string.StringDecoder; +import io.netty.handler.codec.string.StringEncoder; +import io.netty.util.CharsetUtil; + +/** + * UDP 通道初始化器 + */ +public class SyslogUdpChannelInitializer extends ChannelInitializer { + @Override + protected void initChannel(DatagramChannel ch) throws Exception { + ChannelPipeline pipeline = ch.pipeline(); + + // 添加字符串解码器和编码器 + pipeline.addLast("decoder", new StringDecoder(CharsetUtil.UTF_8)); + pipeline.addLast("encoder", new StringEncoder(CharsetUtil.UTF_8)); + + // 添加业务处理器 + pipeline.addLast("handler", new SyslogMessageHandler()); + } +} \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/resources/application-dev.properties b/haobang-security-xdr/syslog-serve/src/main/resources/application-dev.properties new file mode 100644 index 0000000..3180144 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/resources/application-dev.properties @@ -0,0 +1,57 @@ +#Server Configuration +server.port=8189 +server.servlet.context-path=/syslogserve +#server.address=0.0.0.0 +server.tomcat.uri-encoding=UTF-8 +server.error.include-message=always +server.error.include-binding-errors=always + +# Syslog Server Configuration +syslog.tcp.port=514 +syslog.udp.port=514 +syslog.max.frame.length=262144 +syslog.buffer.size=1000 + + +# APP Service Configuration +app.service.device_id=1 +app.service.device_name=honeypot +app.service.vendor=changting +app.service.product_name=diting +#ɼ̽ID +app.service.device_collect_id=${DEVICE_COLLECT_ID:1} +# syslog message data_type +app.service.data_type=json + +# kafka Configuration +spring.kafka.producer.bootstrap-servers=192.168.222.130:9092 +spring.kafka.producer.topic =test-topic + + +#database Configuration +spring.datasource.url=jdbc:postgresql://117.72.68.72:54329/ecosys +spring.datasource.username=postgres +spring.datasource.password=TnLanWaidYSwTSG5 +spring.datasource.driver-class-name=org.postgresql.Driver + +# mybatis Configuration +mybatis.mapper-locations=classpath:mapper/*.xml +mybatis.type-aliases-package=com.common.entity +mybatis.configuration.map-underscore-to-camel-case=true + +# +spring.redis.host=localhost +spring.redis.port=6379 +# 루û룬ʡԣ +spring.redis.password= +spring.redis.database=0 +spring.redis.timeout=2000 + +spring.redis.lettuce.pool.max-active=8 +spring.redis.lettuce.pool.max-wait=-1 +spring.redis.lettuce.pool.max-idle=8 +spring.redis.lettuce.pool.min-idle=0 +# ʱ϶̣ +spring.cache.redis.time-to-live=600000 + + diff --git a/haobang-security-xdr/syslog-serve/src/main/resources/application-prod-zc.properties b/haobang-security-xdr/syslog-serve/src/main/resources/application-prod-zc.properties new file mode 100644 index 0000000..9574fec --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/resources/application-prod-zc.properties @@ -0,0 +1,56 @@ +#Server Configuration [zhongcheng] +server.port=8189 +server.servlet.context-path=/syslogserve +#server.address=0.0.0.0 +server.tomcat.uri-encoding=UTF-8 +server.error.include-message=always +server.error.include-binding-errors=always + +# Syslog Server Configuration +syslog.tcp.port=514 +syslog.udp.port=514 +syslog.max.frame.length=262144 +syslog.buffer.size=1000 + +# APP Service Configuration +app.service.device_id=1 +app.service.device_name=honeypot +app.service.vendor=changting +app.service.product_name=diting +# syslog message data_type +app.service.data_type=json +#ɼ̽ID +#app.service.device_collect_id=${DEVICE_COLLECT_ID:2} +app.service.device_collect_id=${DEVICE_COLLECT_ID:1} + +# kafka Configuration +spring.kafka.producer.bootstrap-servers=10.11.2.142:9092 +spring.kafka.producer.topic =agent-syslog-topic + +#database Configuration +spring.datasource.url=jdbc:postgresql://10.11.2.141:5432/ecosys +spring.datasource.username=ecosys +spring.datasource.password=wsYDPjrpNZPrkPrR +spring.datasource.driver-class-name=org.postgresql.Driver + +# mybatis Configuration +mybatis.mapper-locations=classpath:mapper/*.xml +mybatis.type-aliases-package=com.common.entity +mybatis.configuration.map-underscore-to-camel-case=true + +# +spring.redis.host=10.11.2.142 +spring.redis.port=6379 +# 루û룬ʡԣ +spring.redis.password=redis_edP6N6 +spring.redis.database=0 +spring.redis.timeout=5000 +#spring.redis.password=${REDIS_PASSWORD:default_prod_password} + +spring.redis.lettuce.pool.max-active=20 +spring.redis.lettuce.pool.max-wait=5000 +spring.redis.lettuce.pool.max-idle=10 +spring.redis.lettuce.pool.min-idle=5 + +# ʱϳ +spring.cache.redis.time-to-live=3600000 \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/resources/application-prod.properties b/haobang-security-xdr/syslog-serve/src/main/resources/application-prod.properties new file mode 100644 index 0000000..15a8d16 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/resources/application-prod.properties @@ -0,0 +1,55 @@ +#Server Configuration [192.168.4.26] +server.port=8189 +server.servlet.context-path=/syslogserve +#server.address=0.0.0.0 +server.tomcat.uri-encoding=UTF-8 +server.error.include-message=always +server.error.include-binding-errors=always + +# Syslog Server Configuration +syslog.tcp.port=514 +syslog.udp.port=514 +syslog.max.frame.length=262144 +syslog.buffer.size=1000 + +# APP Service Configuration +app.service.device_id=1 +app.service.device_name=honeypot +app.service.vendor=changting +app.service.product_name=diting +# syslog message data_type +app.service.data_type=json +#ɼ̽ID +app.service.device_collect_id=${DEVICE_COLLECT_ID:1} + +# kafka Configuration +spring.kafka.producer.bootstrap-servers=192.168.4.26:9092 +spring.kafka.producer.topic =agent-syslog-topic + +#database Configuration +spring.datasource.url=jdbc:postgresql://192.168.4.26:5432/ecosys +spring.datasource.username=postgres +spring.datasource.password=caZ2TcmXNSW8L2Ap +spring.datasource.driver-class-name=org.postgresql.Driver + +# mybatis Configuration +mybatis.mapper-locations=classpath:mapper/*.xml +mybatis.type-aliases-package=com.common.entity +mybatis.configuration.map-underscore-to-camel-case=true + +# +spring.redis.host=192.168.4.26 +spring.redis.port=6379 +# 루û룬ʡԣ +spring.redis.password=123456 +spring.redis.database=0 +spring.redis.timeout=5000 +#spring.redis.password=${REDIS_PASSWORD:default_prod_password} + +spring.redis.lettuce.pool.max-active=20 +spring.redis.lettuce.pool.max-wait=5000 +spring.redis.lettuce.pool.max-idle=10 +spring.redis.lettuce.pool.min-idle=5 + +# ʱϳ +spring.cache.redis.time-to-live=3600000 \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/resources/application-test.properties b/haobang-security-xdr/syslog-serve/src/main/resources/application-test.properties new file mode 100644 index 0000000..657eecc --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/resources/application-test.properties @@ -0,0 +1,59 @@ +#Server Configuration +server.port=8189 +server.servlet.context-path=/syslogserve +#server.address=0.0.0.0 +server.tomcat.uri-encoding=UTF-8 +server.error.include-message=always +server.error.include-binding-errors=always + +# Syslog Server Configuration +syslog.tcp.port=514 +syslog.udp.port=514 +syslog.max.frame.length=65536 +syslog.buffer.size=1000 + + +# APP Service Configuration +app.service.device_id=1 +app.service.device_name=honeypot +app.service.vendor=changting +app.service.product_name=diting +# syslog message data_type +app.service.data_type=json +#ɼ̽ID +app.service.device_collect_id=1 + +# kafka Configuration +spring.kafka.producer.bootstrap-servers=192.168.4.32:9092 +spring.kafka.producer.topic =agent-syslog-topic + + + + +#database Configuration +spring.datasource.url=jdbc:postgresql://192.168.4.32:5432/ecosys +spring.datasource.username=user_eSER8N +spring.datasource.password=password_QCYKj6 +spring.datasource.driver-class-name=org.postgresql.Driver + +# mybatis Configuration +mybatis.mapper-locations=classpath:mapper/*.xml +mybatis.type-aliases-package=com.common.entity +mybatis.configuration.map-underscore-to-camel-case=true + +# +spring.redis.host=192.168.4.32 +spring.redis.port=6379 +# 루û룬ʡԣ +spring.redis.password=password_QCYKj6 +spring.redis.database=0 +spring.redis.timeout=5000 +#spring.redis.password=${REDIS_PASSWORD:default_prod_password} + +spring.redis.lettuce.pool.max-active=20 +spring.redis.lettuce.pool.max-wait=5000 +spring.redis.lettuce.pool.max-idle=10 +spring.redis.lettuce.pool.min-idle=5 + +# ʱϳ +spring.cache.redis.time-to-live=3600000 \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/resources/application.properties b/haobang-security-xdr/syslog-serve/src/main/resources/application.properties new file mode 100644 index 0000000..3180144 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/resources/application.properties @@ -0,0 +1,57 @@ +#Server Configuration +server.port=8189 +server.servlet.context-path=/syslogserve +#server.address=0.0.0.0 +server.tomcat.uri-encoding=UTF-8 +server.error.include-message=always +server.error.include-binding-errors=always + +# Syslog Server Configuration +syslog.tcp.port=514 +syslog.udp.port=514 +syslog.max.frame.length=262144 +syslog.buffer.size=1000 + + +# APP Service Configuration +app.service.device_id=1 +app.service.device_name=honeypot +app.service.vendor=changting +app.service.product_name=diting +#ɼ̽ID +app.service.device_collect_id=${DEVICE_COLLECT_ID:1} +# syslog message data_type +app.service.data_type=json + +# kafka Configuration +spring.kafka.producer.bootstrap-servers=192.168.222.130:9092 +spring.kafka.producer.topic =test-topic + + +#database Configuration +spring.datasource.url=jdbc:postgresql://117.72.68.72:54329/ecosys +spring.datasource.username=postgres +spring.datasource.password=TnLanWaidYSwTSG5 +spring.datasource.driver-class-name=org.postgresql.Driver + +# mybatis Configuration +mybatis.mapper-locations=classpath:mapper/*.xml +mybatis.type-aliases-package=com.common.entity +mybatis.configuration.map-underscore-to-camel-case=true + +# +spring.redis.host=localhost +spring.redis.port=6379 +# 루û룬ʡԣ +spring.redis.password= +spring.redis.database=0 +spring.redis.timeout=2000 + +spring.redis.lettuce.pool.max-active=8 +spring.redis.lettuce.pool.max-wait=-1 +spring.redis.lettuce.pool.max-idle=8 +spring.redis.lettuce.pool.min-idle=0 +# ʱ϶̣ +spring.cache.redis.time-to-live=600000 + + diff --git a/haobang-security-xdr/syslog-serve/src/main/resources/logback.xml b/haobang-security-xdr/syslog-serve/src/main/resources/logback.xml new file mode 100644 index 0000000..0b4ad03 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/resources/logback.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + ${LOG_PATTERN} + + + + + + logs/syslog-serve.log + + + logs/syslog-serve.%d{yyyy-MM-dd}.log + + 1 + + 15GB + + true + + + ${LOG_PATTERN} + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceCollectTaskMapper.xml b/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceCollectTaskMapper.xml new file mode 100644 index 0000000..f224846 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceCollectTaskMapper.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + id, created_at, updated_at, deleted_at, device_id, method, task_name, + first_time, last_success_time, last_failed_time, detail_id, epm, epm_peak, + process_architecture, task_count, recent_discover_time, epm_upper_limit + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceDeviceMapper.xml b/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceDeviceMapper.xml new file mode 100644 index 0000000..e6f8c47 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceDeviceMapper.xml @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, created_at::timestamp , updated_at::timestamp, deleted_at::timestamp, name, ip, device_group, device_type, + vendor, product_name, organization_id, last_receive_time::timestamp, agent_id, detail_id, + control_agent_id, license_start_time::timestamp, license_end_time::timestamp, is_monitoring, + security_scope_id, owner_id, ssh_config_id, status, created_by_id, decode_type, + miss_policy, tenant_id, create_time::timestamp, update_time::timestamp, create_by, update_by, del_flag, + manager_name, today_parse_count, today_non_log_count, create_dept, device_collect_id + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceReceiveLogMapper.xml b/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceReceiveLogMapper.xml new file mode 100644 index 0000000..28163b7 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceReceiveLogMapper.xml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + INSERT INTO device_receive_log ( + created_at, + device_collect_id, + device_id, + device_ip, + receive_time, + receive_time_str, + syslog_message, + push_success + ) VALUES ( + COALESCE(#{createdAt}, NOW() AT TIME ZONE 'utc'), + #{deviceCollectId}, + #{deviceId}, + #{deviceIp}::inet, + #{receiveTime}, + #{receiveTimeStr}, + #{syslogMessage}, + #{pushSuccess} + ) + + + + + INSERT INTO device_receive_log ( + created_at, + device_collect_id, + device_id, + device_ip, + receive_time, + receive_time_str, + syslog_message, + push_success + ) VALUES + + ( + COALESCE(#{item.createdAt}, NOW() AT TIME ZONE 'utc'), + #{item.deviceCollectId}, + #{item.deviceId}, + #{item.deviceIp}::inet, + #{item.receiveTime}, + #{item.receiveTimeStr}, + #{item.syslogMessage}, + #{item.pushSuccess} + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM device_receive_log + WHERE created_at BETWEEN #{startTime} AND #{endTime} + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceUnknownMapper.xml b/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceUnknownMapper.xml new file mode 100644 index 0000000..846e881 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/main/resources/mapper/DeviceUnknownMapper.xml @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + + + + + + INSERT INTO device_unknown ( + created_at, + device_collect_id, + device_collect_name, + device_ip, + first_time, + last_time, + organization_id, + network_protocol, + source_method + ) VALUES ( + COALESCE(#{createdAt}, NOW() AT TIME ZONE 'utc'), + #{deviceCollectId}, + #{deviceCollectName}, + #{deviceIp}::inet, + #{firstTime}, + #{lastTime}, + #{organizationId}, + #{networkProtocol}, + #{sourceMethod} + ) + + + + + INSERT INTO device_unknown ( + created_at, + device_collect_id, + device_collect_name, + device_ip, + first_time, + last_time, + organization_id, + network_protocol, + source_method + ) VALUES + + ( + COALESCE(#{device.createdAt}, NOW() AT TIME ZONE 'utc'), + #{device.deviceCollectId}, + #{device.deviceCollectName}, + #{device.deviceIp}::inet, + #{device.firstTime}, + #{device.lastTime}, + #{device.organizationId}, + #{device.networkProtocol}, + #{device.sourceMethod} + ) + + + + + + + + + + + + + + + + + + + + + + + + UPDATE device_unknown + + + device_collect_id = #{deviceCollectId}, + + + device_collect_name = #{deviceCollectName}, + + + device_ip = #{deviceIp}::inet, + + + first_time = #{firstTime}, + + + last_time = #{lastTime}, + + + organization_id = #{organizationId}, + + + network_protocol = #{networkProtocol}, + + + source_method = #{sourceMethod}, + + + WHERE id = #{id} + + + + + UPDATE device_unknown + SET last_time = #{lastTime} + WHERE id = #{id} + + + + + DELETE FROM device_unknown + WHERE id = #{id} + + + + + DELETE FROM device_unknown + WHERE organization_id = #{organizationId} + + + + + + + + + \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/src/test/java/com/haobang/syslog/SysjavacollectApplicationTests.java b/haobang-security-xdr/syslog-serve/src/test/java/com/haobang/syslog/SysjavacollectApplicationTests.java new file mode 100644 index 0000000..238afed --- /dev/null +++ b/haobang-security-xdr/syslog-serve/src/test/java/com/haobang/syslog/SysjavacollectApplicationTests.java @@ -0,0 +1,13 @@ +package com.haobang.syslog; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class SysjavacollectApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/haobang-security-xdr/syslog-serve/start-syslog-serve.sh b/haobang-security-xdr/syslog-serve/start-syslog-serve.sh new file mode 100644 index 0000000..6652544 --- /dev/null +++ b/haobang-security-xdr/syslog-serve/start-syslog-serve.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +# 必须使用 root 权限运行 +if [ "$(id -u)" -ne 0 ]; then + echo "此脚本需要 root 权限运行" + echo "请使用: sudo $0" + exit 1 +fi + +# 设置时区 +export TZ="Asia/Shanghai" + +# 应用配置 +APP_NAME="syslog-serve" +JAR_FILE="syslog-serve-1.0.0.jar" +LOG_DIR="/data/syslog/logs" + +# 创建日志目录 +# mkdir -p ${LOG_DIR} + +# 允许绑定低端口 +sysctl -w net.ipv4.ip_unprivileged_port_start=0 2>/dev/null || true + +# JVM 参数 +JVM_OPTS="-server -Xms512m -Xmx1024m -XX:+UseG1GC -Duser.timezone=Asia/Shanghai" + +# 应用参数 +APP_OPTS="--syslog.port=514" +APP_OPTS="${APP_OPTS} --server.port=8189" +APP_OPTS="${APP_OPTS} --logging.file.path=${LOG_DIR}" +APP_OPTS="${APP_OPTS} --app.privileged=true" + +echo "========================================" +echo "启动 ${APP_NAME}" +echo "Syslog 端口: 514 (UDP/TCP)" +echo "管理端口: 8189 (HTTP)" +echo "日志目录: ${LOG_DIR}" +echo "时区: ${TZ}" +echo "========================================" + +# 启动应用 +nohup java ${JVM_OPTS} -jar ${JAR_FILE} ${APP_OPTS} > ${LOG_DIR}/syslog-serve-console.log 2>&1 & + +# 记录 PID +PID=$! +echo ${PID} > /tmp/${APP_NAME}.pid +echo "应用启动成功,PID: ${PID}" +echo "" +echo "查看日志:" +echo " tail -f ${LOG_DIR}/syslog-serve.log" +echo "" +echo "测试 Syslog:" +echo " logger -n 127.0.0.1 -P 514 '测试消息'" +echo "" +echo "访问管理界面:" +echo " http://localhost:8189" \ No newline at end of file diff --git a/haobang-security-xdr/syslog-serve/stop-syslog-serve.sh b/haobang-security-xdr/syslog-serve/stop-syslog-serve.sh new file mode 100644 index 0000000..6ada61f --- /dev/null +++ b/haobang-security-xdr/syslog-serve/stop-syslog-serve.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# 快速停止脚本 - 无需确认 + +if [ "$(id -u)" -ne 0 ]; then + echo "需要 root 权限,请使用: sudo $0" + exit 1 +fi + +APP_NAME="syslog-serve" +PID_FILE="/tmp/${APP_NAME}.pid" +PORTS=(514 8189) + +echo "停止 ${APP_NAME}..." + +# 1. 通过 PID 文件停止 +if [ -f "$PID_FILE" ]; then + PID=$(cat $PID_FILE) + if kill -0 $PID 2>/dev/null; then + echo "停止进程 $PID..." + kill -15 $PID + sleep 3 + + if kill -0 $PID 2>/dev/null; then + echo "强制停止..." + kill -9 $PID + fi + fi + rm -f $PID_FILE +fi + +# 2. 停止所有监听端口的 Java 进程 +for port in ${PORTS[@]}; do + PIDS=$(lsof -ti:$port 2>/dev/null) + if [ ! -z "$PIDS" ]; then + for pid in $PIDS; do + if ps -p $pid | grep -q "java"; then + echo "停止监听端口 $port 的进程 $pid..." + kill -9 $pid 2>/dev/null + fi + done + fi +done + +# 3. 停止所有包含应用名的进程 +pkill -f "java.*syslog-serve" 2>/dev/null + +echo "停止完成" \ No newline at end of file