summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/Domain.java50
1 files changed, 33 insertions, 17 deletions
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/Domain.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/Domain.java
index 7223eab..fd5299a 100644
--- a/groot-core/src/main/java/com/geedgenetworks/core/udf/Domain.java
+++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/Domain.java
@@ -11,6 +11,8 @@ import org.apache.flink.api.common.functions.RuntimeContext;
import java.util.List;
+import static com.geedgenetworks.utils.FormatUtils.getTopPrivateDomain;
+
@Slf4j
public class Domain implements UDF {
@@ -50,35 +52,49 @@ public class Domain implements UDF {
@Override
public Event evaluate(Event event) {
String domain = "";
- for (String lookupField : lookupFields){
-
- if(event.getExtractedFields().containsKey(lookupField)){
-
- switch (option) {
- case "TOP_LEVEL_DOMAIN":
+ switch (option) {
+ case "TOP_LEVEL_DOMAIN":
+ for (String lookupField : lookupFields){
+ if(event.getExtractedFields().containsKey(lookupField)) {
domain =
- FormatUtils.getTopPrivateDomain(
+ getTopPrivateDomain(
(String)
event.getExtractedFields()
.get(lookupField));
- if(domain.contains(".")) {
+ if (domain.contains(".")) {
domain = domain.substring(domain.indexOf(".") + 1);
}
- break;
- case "FIRST_SIGNIFICANT_SUBDOMAIN":
+ if(!domain.isEmpty()){
+ break;
+ }
+ }
+ }
+ break;
+ case "FIRST_SIGNIFICANT_SUBDOMAIN":
+ for (String lookupField : lookupFields){
+ if(event.getExtractedFields().containsKey(lookupField)) {
domain =
- FormatUtils.getTopPrivateDomain(
+ getTopPrivateDomain(
(String)
event.getExtractedFields()
.get(lookupField));
+ }
+ if(!domain.isEmpty()){
break;
- case "FQDN":
- domain = (String) event.getExtractedFields()
- .get(lookupField);
- break;
-
+ }
}
- }
+ break;
+ case "FQDN":
+ for (String lookupField : lookupFields) {
+ if (event.getExtractedFields().containsKey(lookupField)) {
+ domain = (String) event.getExtractedFields()
+ .get(lookupField);
+ }
+ if(!domain.isEmpty()){
+ break;
+ }
+ }
+ break;
}
event.getExtractedFields().put(outputFieldName, domain);
return event;