diff --git a/db/init/galaxy_data_mysql.sql b/db/init/galaxy_data_mysql.sql index 56b507e..dae855c 100644 --- a/db/init/galaxy_data_mysql.sql +++ b/db/init/galaxy_data_mysql.sql @@ -6,9 +6,7 @@ insert into `image_url`(`id`,`module`,`type`,`url`,`datetime`) values (91,'text insert into `menu_service`(`id`,`service`,`service_desc`,`is_maat`) values (1,256,NULL,1),(2,257,NULL,1),(3,258,NULL,1),(4,259,NULL,1),(5,260,NULL,1),(6,384,NULL,1),(7,385,NULL,1),(8,386,NULL,1),(9,387,NULL,1),(10,388,NULL,1),(11,512,NULL,1),(12,513,NULL,1),(13,528,NULL,1),(14,529,NULL,1),(15,544,NULL,1),(16,545,NULL,1),(17,560,NULL,1),(18,561,NULL,1); /*Data for the table `ntc_service_dic` */ - -insert into `ntc_service_dic`(`id`,`service_code`,`action`,`service_name_zh`,`service_name_en`,`service_name_ru`,`desc`,`is_valid`) values (1,1,128,'全局IP白名单','ip_white_whitelist','ip_white_whitelist',NULL,1),(2,2,128,'全局域名白名单','domain_white_whitelist','domain_white_whitelist',NULL,1),(3,16,16,'IP地址阻断','ip_reject','ip_reject',NULL,1),(4,17,16,'HTTP阻断','website_http_reject','website_http_reject',NULL,1),(5,18,16,'DNS阻断','website_dns_reject','website_dns_reject',NULL,1),(6,19,16,'SSL阻断','ssl_reject','ssl_reject',NULL,1),(7,20,16,'MAIL阻断','mail_reject','mail_reject',NULL,1),(8,21,16,'FTP阻断','ftp_reject','ftp_reject',NULL,1),(9,22,16,'PPTP阻断','pptp_reject','pptp_reject',NULL,1),(10,23,16,'L2TP阻断','l2tp_reject','l2tp_reject',NULL,1),(11,24,16,'OpenVPN阻断','openvpn_reject','openvpn_reject',NULL,1),(12,26,16,'SSH阻断','ssh_reject','ssh_reject',NULL,1),(13,27,16,'SOCKS阻断','socks_reject','socks_reject',NULL,1),(14,30,16,'XMPP阻断','xmpp_reject','xmpp_reject',NULL,1),(15,31,16,'BGP阻断','bgp_reject','bgp_reject',NULL,1),(16,32,16,'文件摘要配置','file_transfer_digest_reject','file_transfer_digest_reject',NULL,1),(17,33,16,'APP阻断','app_strategy_reject','app_strategy_reject',NULL,1),(18,34,16,'P2P阻断','p2p_reject','p2p_reject',NULL,1),(19,35,16,'基础协议阻断','basic_protocol_reject','basic_protocol_reject',NULL,1),(20,36,16,'隧道行为阻断','encrypted_tunnel_behavior_reject','encrypted_tunnel_behavior_reject',NULL,1),(21,37,16,'ASN IP阻断','ANS_POLICY_REJECT','ANS_POLICY_REJECT',NULL,1),(22,128,1,'IP地址监测','ip_monit','ip_monit',NULL,1),(23,129,1,'HTTP监测','website_http_monit','website_http_monit',NULL,1),(24,130,1,'DNS监测','website_dns_monit','website_dns_monit',NULL,1),(25,131,1,'SSL监测','ssl_monit','ssl_monit',NULL,1),(26,132,1,'MAIL监测','mail_monit','mail_monit',NULL,1),(27,133,1,'FTP监测','ftp_monit','ftp_monit',NULL,1),(28,134,1,'PPTP监测','pptp_monit','pptp_monit',NULL,1),(29,135,1,'L2TP监测','l2tp_monit','l2tp_monit',NULL,1),(30,136,1,'OpenVPN监测','openvpn_monit','openvpn_monit',NULL,1),(31,137,1,'IPSec监测','ipsec_monit','ipsec_monit',NULL,1),(32,138,1,'SSH监测','ssh_monit','ssh_monit',NULL,1),(33,139,1,'SOCKS监测','socks_monit','socks_monit',NULL,1),(34,140,1,'GRE监测','gre_monit','gre_monit',NULL,1),(36,142,1,'XMPP监测','xmpp_monit','xmpp_monit',NULL,1),(37,143,1,'BGP监测','bgp_monit','bgp_monit',NULL,1),(38,144,1,'文件摘要监测','file_transfer_digest_monit','file_transfer_digest_monit',NULL,1),(39,145,1,'APP监测','app_strategy_monit','app_strategy_monit',NULL,1),(40,146,1,'P2P监测','p2p_monit','p2p_monit',NULL,1),(41,147,1,'基础协议监测','basic_protocol_monit','basic_protocol_monit',NULL,1),(42,148,1,'隧道行为监测','encrypted_tunnel_behavior_monit','encrypted_tunnel_behavior_monit',NULL,1),(43,149,1,'ASN IP监测','ANS_POLICY_REJECT','ANS_POLICY_REJECT',NULL,1),(44,256,16,'基于音视频传输的IP PORT白名单','av_content_ip_whitelist','av_content_ip_whitelist',NULL,1),(45,257,16,'基于音视频传输的URL白名单','av_content_url_whitelist','av_content_url_whitelist',NULL,1),(46,258,16,'基于图片传输的IP PORT阻断','av_pic_ip_reject','av_pic_ip_reject',NULL,1),(47,259,16,'基于图片传输的URL阻断','av_pic_url_reject','av_pic_url_reject',NULL,1),(48,260,16,'基于VOIP IP阻断','av_voip_ip_reject','av_voip_ip_reject',NULL,1),(49,267,16,'基于VOIP ACCOUNT阻断','av_voip_account_reject','av_voip_account_reject',NULL,1),(50,384,1,'基于音视频传输的IP PORT监测','av_content_ip_monit','av_content_ip_monit',NULL,1),(51,385,1,'基于音视频传输的URL监测','av_content_url_monit','av_content_url_monit',NULL,1),(52,386,1,'基于图片传输的IP PORT监测','av_pic_ip_monit','av_pic_ip_monit',NULL,1),(53,387,1,'基于图片传输的URL监测','av_pic_url_monit','av_pic_url_monit',NULL,1),(54,388,1,'基于VOIP IP监测','av_voip_ip_monit','av_voip_ip_monit',NULL,1),(55,395,1,'基于VOIP Account 监测','av_voip_account_monit','av_voip_account_monit',NULL,1),(56,512,1,'PXY拦截IP','ip_intercepter_monit','ip_intercepter_monit',NULL,1),(57,513,1,'PXY拦截域名','domain_monit','domain_monit',NULL,1),(58,514,64,'PXY IP限速','ip_intercepter_ratelimit','ip_intercepter_ratelimit',NULL,1),(59,515,64,'PXY DOMAIN限速','domain_intercepter_ratelimit','domain_intercepter_ratelimit',NULL,1),(60,517,80,'基于PXY IP 替换','ip_intercepter_replace','ip_intercepter_replace',NULL,1),(61,520,0,'PXY 证书管理','pxy_intercept_monit_keyring','pxy_intercept_monit_keyring',NULL,1),(62,521,128,'PXY拦截白名单','ip_intercepter_whitelist','ip_intercepter_whitelist',NULL,1),(63,528,48,'PXY HTTP重定向','proxy_ip_redirect','proxy_ip_redirect',NULL,1),(64,544,2,'PXY HTTP 转发','ctrl_http_forward','ctrl_http_forward',NULL,1),(65,560,80,'PXY HTTP替换','ctrl_http_replace','ctrl_http_replace',NULL,1),(66,576,16,'PXY HTTP阻断','ctrl_http_reject','ctrl_http_reject',NULL,1),(67,592,1,'PXY HTTP监测','ctrl_http_monit','ctrl_http_monit',NULL,1),(69,750,128,'PXY 管控白名单','ctrl_http_whitelist','ctrl_http_whitelist',NULL,1),(70,768,96,'IP复用策略配置','ip_complex_loop','ip_complex_loop',NULL,1),(71,1024,1,'APP HTTP特征发现','app_http_feature_monit','app_http_feature_monit',NULL,1),(73,1026,1,'APP DOMAIN特征发现','app_domain_feature_monit','app_domain_feature_monit',NULL,1),(75,1028,1,'APP IP特征','app_protocol_ip_monit','app_protocol_ip_monit',NULL,1),(79,1040,32,'APP丢弃','app_strategy_drop','app_strategy_drop',NULL,1),(80,1041,32,'基础协议丢弃','basic_protocol_drop','basic_protocol_drop',NULL,1),(81,1042,32,'隧道行为丢弃','encrypted_tunnel_behavior_drop','encrypted_tunnel_behavior_drop',NULL,1),(82,1152,1,'APP 主题网站配置','app_topic_domain_monit','app_topic_domain_monit',NULL,1),(83,3,32,'IP地址丢弃','ip_drop','ip_drop',NULL,1),(84,4,96,'IP地址回流','ip_loop','ip_loop',NULL,1),(85,5,32,'DDOS流量丢弃','ddos_ip_drop','ddos_ip_drop',NULL,1),(86,25,32,'IPSec丢弃','ipsec_drop','ipsec_drop',NULL,1),(87,28,32,'GRE 丢弃','gre_drop','gre_drop',NULL,1),(88,64,0,'DNS欺骗配置(回调)','dns_fake_ip_reject','dns_fake_ip_reject',NULL,1),(89,65,0,'DNS 响应策略配置(回调)','dns_strategy_reject','dns_strategy_reject',NULL,1),(90,261,16,'音频样例阻断','audio_sample_reject','audio_sample_reject',NULL,1),(91,262,16,'视频样例阻断','video_sample_reject','video_sample_reject',NULL,1),(92,263,16,'图片样例阻断','pic_sample_reject','pic_sample_reject',NULL,1),(93,264,16,'VOIP样例阻断','voip_sample_reject','voip_sample_reject',NULL,1),(95,266,16,'视频色情阻断','video_pornography_sample_reject','video_pornography_sample_reject',NULL,1),(96,268,16,'说话人识别阻断','mm_speaker_recognization_reject','mm_speaker_recognization_reject',NULL,1),(97,269,16,'台标识别阻断','mm_logo_detection_reject','mm_logo_detection_reject',NULL,1),(98,270,16,'人脸识别阻断','mm_face_recognization_reject','mm_face_recognization_reject',NULL,1),(100,390,1,'视频样例监测','video_sample_monit','video_sample_monit',NULL,1),(101,391,1,'图片样例监测','pic_sample_monit','pic_sample_monit',NULL,1),(102,392,1,'VOIP样例监测','voip_sample_monit','voip_sample_monit',NULL,1),(103,393,1,'音频色情监测','video_pornography_sample_monit','video_pornography_sample_monit',NULL,1),(104,394,1,'视频色情监测','video_pornography_sample_monit','video_pornography_sample_monit',NULL,1),(105,396,1,'说话人识别监测','mm_speaker_recognization_monit','mm_speaker_recognization_monit',NULL,1),(106,397,1,'台标识别监测','mm_logo_detection_monit','mm_logo_detection_monit',NULL,1),(107,398,1,'人脸识别监测','mm_face_recognization_monit','mm_face_recognization_monit',NULL,1),(108,832,0,'IP复用地址池配置(回调)','ip_reuse_adress_pool_loop','ip_reuse_adress_pool_loop',NULL,1),(109,271,16,'基于音视频传输的IP PORT阻断','av_content_ip_reject','av_content_ip_reject',NULL,1),(110,272,16,'基于音视频传输的URL阻断','av_content_url_reject','av_content_url_reject',NULL,1),(111,608,0,'PXY 管控文件策略','pxy_obj_file','pxy_obj_file',NULL,1),(112,265,16,'音频色情阻断','video_pornography_sample_reject','video_pornography_sample_reject',NULL,1),(113,389,1,'音频样例监测','audio_sample_monit','audio_sample_monit',NULL,1),(114,1025,1,'APP载荷特征','app_payload_feature_monit','app_payload_feature_monit',NULL,1),(116,1027,1,'APP DNS特征匹配','app_dns_feature_monit','app_dns_feature_monit',NULL,1),(118,1029,1,'APP SSL特征','app_ssl_feature_monit','app_ssl_feature_monit',NULL,1),(119,1030,1,'APP多用途标签','app_dk_gl_feature_monit','app_dk_gl_feature_monit',NULL,1),(120,75,1,'APP多用途标签','app_dk_gl_feature_monit','app_dk_gl_feature_monit','',1); - +insert into `ntc_service_dic`(`id`,`service_code`,`action`,`service_name_zh`,`service_name_en`,`service_name_ru`,`desc`,`is_valid`) values (1,1,128,'全局IP白名单','IP White List','IP White List',NULL,1),(2,2,128,'全局域名白名单','URL White List','URL White List',NULL,1),(3,16,16,'IP地址阻断','IP Address Block','IP Address Block',NULL,1),(4,17,16,'HTTP阻断','HTTP Block','HTTP Block',NULL,1),(5,18,16,'DNS阻断','DNS Block','DNS Block',NULL,1),(6,19,16,'SSL阻断','SSL Block','SSL Block',NULL,1),(7,20,16,'MAIL阻断','Mail Block','Mail Block',NULL,1),(8,21,16,'FTP阻断','FTP Block','FTP Block',NULL,1),(9,22,16,'PPTP阻断','PPTP Block','PPTP Block',NULL,1),(10,23,16,'L2TP阻断','L2TP Block','L2TP Block',NULL,1),(11,24,16,'OpenVPN阻断','OpenVPN Block','OpenVPN Block',NULL,1),(12,26,16,'SSH阻断','SSH Block','SSH Block',NULL,1),(13,27,16,'SOCKS阻断','SOCKS Block','SOCKS Block',NULL,1),(14,30,16,'XMPP阻断','XMPP Block','XMPP Block',NULL,1),(15,31,16,'BGP阻断','BGP Block','BGP Block',NULL,1),(16,273,16,'文件摘要阻断','File Digest Block','File Digest Block',NULL,1),(17,33,16,'APP阻断','APP Block','APP Block',NULL,1),(18,34,16,'P2P阻断','P2P Block','P2P Block',NULL,1),(19,35,16,'基础协议阻断','Protocol Identify Block','Protocol Identify Block',NULL,1),(20,36,16,'隧道行为阻断','Behavior Identify Block','Behavior Identify Block',NULL,1),(21,37,16,'ASN 阻断','ASN Block','ASN Block',NULL,1),(22,128,1,'IP地址监测','IP Address Monitor','IP Address Monitor',NULL,1),(23,129,1,'HTTP监测','HTTP Monitor','HTTP Monitor',NULL,1),(24,130,1,'DNS监测','DNS Monitor','DNS Monitor',NULL,1),(25,131,1,'SSL监测','SSL Monitor','SSL Monitor',NULL,1),(26,132,1,'MAIL监测','Mail Monitor','Mail Monitor',NULL,1),(27,133,1,'FTP监测','FTP Monitor','FTP Monitor',NULL,1),(28,134,1,'PPTP监测','PPTP Monitor','PPTP Monitor',NULL,1),(29,135,1,'L2TP监测','L2TP Monitor','L2TP Monitor',NULL,1),(30,136,1,'OpenVPN监测','OpenVPN Monitor','OpenVPN Monitor',NULL,1),(31,137,1,'IPSEC监测','IPSEC Monitor','IPSEC Monitor',NULL,1),(32,138,1,'SSH监测','SSH Monitor','SSH Monitor',NULL,1),(33,139,1,'SOCKS监测','SOCKS Monitor','SOCKS Monitor',NULL,1),(34,140,1,'GRE监测','GRE Monitor','GRE Monitor',NULL,1),(36,142,1,'XMPP监测','XMPP Monitor','XMPP Monitor',NULL,1),(37,143,1,'BGP监测','BGP Monitor','BGP Monitor',NULL,1),(38,399,1,'文件摘要监测','File Digest Monitor','File Digest Monitor',NULL,1),(39,145,1,'APP监测','APP Monitor','APP Monitor',NULL,1),(40,146,1,'P2P监测','P2P Monitor','P2P Monitor',NULL,1),(41,147,1,'基础协议监测','Protocol Identify Monitor','Protocol Identify Monitor',NULL,1),(42,148,1,'隧道行为监测','Behavior Identify Monitor','Behavior Identify Monitor',NULL,1),(43,149,1,'ASN 监测','ASN Monitor','ASN Monitor',NULL,1),(44,256,128,'音视频传输IP白名单','Multimedia IP Whitelist','Multimedia IP Whitelist',NULL,1),(45,257,128,'音视频传输URL白名单','Multimedia URL Whitelist','Multimedia URL Whitelist',NULL,1),(46,39,16,'流媒体阻断','Streaming Media Block','Streaming Media Block',NULL,1),(47,151,1,'流媒体监测','Streaming Media Monitor','Streaming Media Monitor',NULL,1),(48,38,16,'VOIP 阻断','VOIP Block','VOIP Block',NULL,1),(49,150,1,'VOIP 监测','VOIP Monitor','VOIP Monitor',NULL,1),(50,40,16,'网页关键字阻断','Website Keyword Block','Website Keyword Block',NULL,1),(51,152,1,'网页关键字监测','Website Keyword Monitor','Website Keyword Monitor',NULL,1),(56,512,1,'代理IP拦截监测','IP Intercept Monitor','IP Intercept Monitor',NULL,1),(57,513,1,'代理域名拦截监测','Domain Intercept Monitor','Domain Intercept Monitor',NULL,1),(58,514,64,'代理IP限速','IP Ratelimit','IP Ratelimit',NULL,1),(59,515,64,'代理域名限速','Domain Ratelimit','Domain Ratelimit',NULL,1),(60,517,80,'IP载荷','IP Payload ','IP Payload ',NULL,1),(62,521,128,'代理拦截白名单','Proxy Intercept Whitelist','Proxy Intercept Whitelist',NULL,1),(63,528,48,'代理HTTP重定向','HTTP(s) Redirect','HTTP(s) Redirect',NULL,1),(64,544,2,'代理HTTP转发','HTTP(s) Forward','HTTP(s) Forward',NULL,1),(65,560,80,'代理HTTP替换','HTTP(s) Replace','HTTP(s) Replace',NULL,1),(66,576,16,'代理HTTP阻断','HTTP(s) Block','HTTP(s) Block',NULL,1),(67,592,1,'代理HTTP监测','HTTP(s) Monitor','HTTP(s) Monitor',NULL,1),(69,750,128,'代理管控白名单','HTTP(s) Whitelist','HTTP(s) Whitelist',NULL,1),(70,768,96,'SNAT复用策略','SNAT Reuse Policy','SNAT Reuse Policy',NULL,1),(71,1024,1,'APP HTTP特征发现','APP Http Feature','APP Http Feature',NULL,1),(73,1026,1,'APP DOMAIN特征发现','APP Domain Feature','APP Domain Feature',NULL,1),(75,1028,1,'APP IP特征','APP Identify IP','APP Identify IP',NULL,1),(79,1040,32,'APP丢弃','APP Drop','APP Drop',NULL,1),(80,1041,32,'基础协议丢弃','Protocol Identify Drop','Protocol Identify Drop',NULL,1),(81,1042,32,'隧道行为丢弃','Behavior Identify Drop','Behavior Identify Drop',NULL,1),(82,1152,1,'主题网站','Focused Website','Focused Website',NULL,1),(83,3,32,'IP地址丢弃','IP Address Drop','IP Address Drop',NULL,1),(84,4,96,'IP地址回流','IP Address Loop','IP Address Loop',NULL,1),(85,5,32,'DDOS防护','Anti DDOS','Anti DDOS',NULL,1),(88,64,0,'DNS欺骗IP','Spoofing IP','Spoofing IP',NULL,1),(89,65,0,'DNAT复用策略','DNAT Reuse Policy','DNAT Reuse Policy',NULL,1),(90,261,16,'音频样例阻断','Audio Sample Block','Audio Sample Block',NULL,1),(91,262,16,'视频样例阻断','Video Sample Block','Video Sample Block',NULL,1),(92,263,16,'图片样例阻断','Picture Sample Block','Picture Sample Block',NULL,1),(93,264,16,'VOIP样例阻断','VoIP Voice Sample Block','VoIP Voice Sample Block',NULL,1),(95,266,16,'视频色情阻断','Porn Detection Block','Porn Detection Block',NULL,1),(96,268,16,'说话人识别阻断','Speaker Recognization Block','Speaker Recognization Block',NULL,1),(97,269,16,'台标识别阻断','Logo Detection Block','Logo Detection Block',NULL,1),(98,270,16,'人脸识别阻断','Face Recognization Block','Face Recognization Block',NULL,1),(100,390,1,'视频样例监测','Video Sample Monitor','Video Sample Monitor',NULL,1),(101,391,1,'图片样例监测','Picture Sample Monitor','Picture Sample Monitor',NULL,1),(102,392,1,'VOIP样例监测','VoIP Voice Sample Monitor','VoIP Voice Sample Monitor',NULL,1),(103,389,1,'音频样例监测','Audio Sample Monitor','Audio Sample Monitor',NULL,1),(104,394,1,'视频色情监测','Porn Detection Monitor','Porn Detection Monitor',NULL,1),(105,396,1,'说话人识别监测','Speaker Recognization Monitor','Speaker Recognization Monitor',NULL,1),(106,397,1,'台标识别监测','Logo Detection Monitor','Logo Detection Monitor',NULL,1),(107,398,1,'人脸识别监测','Face Recognization Monitor','Face Recognization Monitor',NULL,1),(108,832,0,'IP复用地址池配置','IP Reuse Address Pool','IP Reuse Address Pool',NULL,1),(111,608,0,'PXY 管控文件策略','Proxy File Object','Proxy File Object',NULL,1),(112,265,16,'音频色情阻断','Audio Detection Block','Audio Detection Block',NULL,1),(114,1025,1,'APP载荷特征','APP Payload Feature','APP Payload Feature',NULL,1),(116,1027,1,'APP DNS特征','APP DNS Feature','APP DNS Feature',NULL,1),(118,1029,1,'APP SSL特征','APP SSL Feature','APP SSL Feature',NULL,1),(119,1030,1,'APP多用途标签','APP DK GL Feature','APP DK GL Feature',NULL,1),(120,272,16,'音视频URL阻断','Muitimedia URL Block','Muitimedia URL Block','',1),(121,385,1,'音视频URL监测','Multimedia URL Monitor','Multimedia URL Monitor','',1); /*Data for the table `sys_area` */ insert into `sys_area`(`id`,`parent_id`,`parent_ids`,`name`,`sort`,`code`,`type`,`remarks`,`longitude`,`latitude`,`del_flag`) values (2,1,'0,1,','北京',1,'110000','2','北京',116.405,39.905,1),(3,2,'0,1,2,','北京市',1,'110100','3','北京',116.405,39.905,1); diff --git a/pom.xml b/pom.xml index ded490f..3dd3e60 100644 --- a/pom.xml +++ b/pom.xml @@ -32,9 +32,6 @@ - - - @@ -639,9 +636,9 @@ - + diff --git a/src/main/java/com/nis/listener/CompileGroupRegionRela.java b/src/main/java/com/nis/listener/CompileGroupRegionRela.java index dffb28a..2efc1e7 100644 --- a/src/main/java/com/nis/listener/CompileGroupRegionRela.java +++ b/src/main/java/com/nis/listener/CompileGroupRegionRela.java @@ -1,24 +1,18 @@ package com.nis.listener; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; - -import javax.servlet.ServletContextEvent; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.web.context.ContextLoaderListener; - import com.nis.domain.restful.CompileAndGroupRelations; import com.nis.domain.restful.GroupAndRegionRelations; import com.nis.domain.restful.MaatRelation; import com.nis.util.Configurations; import com.nis.web.service.SpringContextHolder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.context.ContextLoaderListener; + +import javax.servlet.ServletContextEvent; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; /** * 项目启动时加载数据字典 @@ -46,6 +40,8 @@ public class CompileGroupRegionRela extends ContextLoaderListener { } catch (Exception e) { e.printStackTrace(); } + + } private void getAllId(RedisTemplate redisTemplate, int redisDBIndex) { diff --git a/src/main/resources/rebel.xml b/src/main/resources/rebel.xml index e4808e5..89add5c 100644 --- a/src/main/resources/rebel.xml +++ b/src/main/resources/rebel.xml @@ -1,16 +1,19 @@ - + + + - - - + - +