Skip to content

Commit 92e5d31

Browse files
authored
Fix broken character mask test
DLP now requires the client to specify info types to search for when using DeID with wildcard info types.
1 parent 29bb0e9 commit 92e5d31

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

dlp/src/main/java/com/example/dlp/DeIdentification.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ public class DeIdentification {
8181
* @param projectId ID of Google Cloud project to run the API under.
8282
*/
8383
private static void deIdentifyWithMask(
84-
String string, Character maskingCharacter, int numberToMask, String projectId) {
84+
String string,
85+
List<InfoType> infoTypes,
86+
Character maskingCharacter,
87+
int numberToMask,
88+
String projectId) {
8589

8690
// instantiate a client
8791
try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
@@ -108,6 +112,11 @@ private static void deIdentifyWithMask(
108112
.addTransformations(infoTypeTransformationObject)
109113
.build();
110114

115+
InspectConfig inspectConfig =
116+
InspectConfig.newBuilder()
117+
.addAllInfoTypes(infoTypes)
118+
.build();
119+
111120
DeidentifyConfig deidentifyConfig =
112121
DeidentifyConfig.newBuilder()
113122
.setInfoTypeTransformations(infoTypeTransformationArray)
@@ -117,6 +126,7 @@ private static void deIdentifyWithMask(
117126
DeidentifyContentRequest request =
118127
DeidentifyContentRequest.newBuilder()
119128
.setParent(ProjectName.of(projectId).toString())
129+
.setInspectConfig(inspectConfig)
120130
.setDeidentifyConfig(deidentifyConfig)
121131
.setItem(contentItem)
122132
.build();
@@ -513,6 +523,10 @@ public static void main(String[] args) throws Exception {
513523
Options commandLineOptions = new Options();
514524
commandLineOptions.addOptionGroup(optionsGroup);
515525

526+
Option infoTypesOption = Option.builder("infoTypes").hasArg(true).required(false).build();
527+
infoTypesOption.setArgs(Option.UNLIMITED_VALUES);
528+
commandLineOptions.addOption(infoTypesOption);
529+
516530
Option maskingCharacterOption =
517531
Option.builder("maskingCharacter").hasArg(true).required(false).build();
518532
commandLineOptions.addOption(maskingCharacterOption);
@@ -575,12 +589,21 @@ public static void main(String[] args) throws Exception {
575589
String projectId =
576590
cmd.getOptionValue(projectIdOption.getOpt(), ServiceOptions.getDefaultProjectId());
577591

592+
List<InfoType> infoTypesList = Collections.emptyList();
593+
if (cmd.hasOption(infoTypesOption.getOpt())) {
594+
infoTypesList = new ArrayList<>();
595+
String[] infoTypes = cmd.getOptionValues(infoTypesOption.getOpt());
596+
for (String infoType : infoTypes) {
597+
infoTypesList.add(InfoType.newBuilder().setName(infoType).build());
598+
}
599+
}
600+
578601
if (cmd.hasOption("m")) {
579602
// deidentification with character masking
580603
int numberToMask = Integer.parseInt(cmd.getOptionValue(numberToMaskOption.getOpt(), "0"));
581604
char maskingCharacter = cmd.getOptionValue(maskingCharacterOption.getOpt(), "*").charAt(0);
582605
String val = cmd.getOptionValue(deidentifyMaskingOption.getOpt());
583-
deIdentifyWithMask(val, maskingCharacter, numberToMask, projectId);
606+
deIdentifyWithMask(val, infoTypes, maskingCharacter, numberToMask, projectId);
584607
} else if (cmd.hasOption("f")) {
585608
// deidentification with FPE
586609
String wrappedKey = cmd.getOptionValue(wrappedKeyOption.getOpt());

0 commit comments

Comments
 (0)