Skip to content

Commit 6bb16d1

Browse files
authored
Update DLP snippet as canonical for new sample format. (GoogleCloudPlatform#1232)
* Update DLP snippet with proposal for new sample format. * Fix InspectFile region tag. * Fixed package structure and InspectString test. * Reword comments. * Fix unintentional toString. * Seperate API call from response processing. * Seperate ByteType into two different samples. * Remove previous tests. * Updated Redact sample to new format. * Clean up comments. * Bump license year. * Fixed redact test. * Remove old redact snippet and move region tags. * Remove region tag.
1 parent 3cbb96c commit 6bb16d1

File tree

14 files changed

+531
-518
lines changed

14 files changed

+531
-518
lines changed

dlp/pom.xml

+1-3
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,12 @@
2929
<parent>
3030
<groupId>com.google.cloud.samples</groupId>
3131
<artifactId>shared-configuration</artifactId>
32-
<version>1.0.9</version>
33-
<relativePath></relativePath>
32+
<version>1.0.10</version>
3433
</parent>
3534

3635
<properties>
3736
<maven.compiler.source>1.8</maven.compiler.source>
3837
<maven.compiler.target>1.8</maven.compiler.target>
39-
<google.auth.version>0.7.1</google.auth.version>
4038
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4139
</properties>
4240

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

+1-181
Original file line numberDiff line numberDiff line change
@@ -72,165 +72,6 @@
7272

7373
public class Inspect {
7474

75-
/**
76-
* [START dlp_inspect_string] Inspect a text for given InfoTypes
77-
*
78-
* @param string String to instpect
79-
* @param minLikelihood The minimum likelihood required before returning a match
80-
* @param maxFindings The maximum number of findings to report (0 = server maximum)
81-
* @param infoTypes The infoTypes of information to match
82-
* @param includeQuote Whether to include the matching string
83-
* @param projectId Google Cloud project ID
84-
*/
85-
private static void inspectString(
86-
String string,
87-
Likelihood minLikelihood,
88-
int maxFindings,
89-
List<InfoType> infoTypes,
90-
List<CustomInfoType> customInfoTypes,
91-
boolean includeQuote,
92-
String projectId) {
93-
// instantiate a client
94-
try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
95-
FindingLimits findingLimits =
96-
FindingLimits.newBuilder().setMaxFindingsPerRequest(maxFindings).build();
97-
InspectConfig inspectConfig =
98-
InspectConfig.newBuilder()
99-
.addAllInfoTypes(infoTypes)
100-
.addAllCustomInfoTypes(customInfoTypes)
101-
.setMinLikelihood(minLikelihood)
102-
.setLimits(findingLimits)
103-
.setIncludeQuote(includeQuote)
104-
.build();
105-
106-
ByteContentItem byteContentItem =
107-
ByteContentItem.newBuilder()
108-
.setType(ByteContentItem.BytesType.TEXT_UTF8)
109-
.setData(ByteString.copyFromUtf8(string))
110-
.build();
111-
112-
ContentItem contentItem = ContentItem.newBuilder().setByteItem(byteContentItem).build();
113-
114-
InspectContentRequest request =
115-
InspectContentRequest.newBuilder()
116-
.setParent(ProjectName.of(projectId).toString())
117-
.setInspectConfig(inspectConfig)
118-
.setItem(contentItem)
119-
.build();
120-
InspectContentResponse response = dlpServiceClient.inspectContent(request);
121-
122-
if (response.getResult().getFindingsCount() > 0) {
123-
System.out.println("Findings: ");
124-
for (Finding finding : response.getResult().getFindingsList()) {
125-
if (includeQuote) {
126-
System.out.print("\tQuote: " + finding.getQuote());
127-
}
128-
System.out.print("\tInfo type: " + finding.getInfoType().getName());
129-
System.out.println("\tLikelihood: " + finding.getLikelihood());
130-
}
131-
} else {
132-
System.out.println("No findings.");
133-
}
134-
} catch (Exception e) {
135-
System.out.println("Error in inspectString: " + e.getMessage());
136-
}
137-
}
138-
// [END dlp_inspect_string]
139-
140-
// [START dlp_inspect_file]
141-
/**
142-
* Inspect a local file
143-
*
144-
* @param filePath The path to a local file to inspect. Can be a text, JPG, or PNG file.
145-
* @param minLikelihood The minimum likelihood required before returning a match
146-
* @param maxFindings The maximum number of findings to report (0 = server maximum)
147-
* @param infoTypes The infoTypes of information to match
148-
* @param includeQuote Whether to include the matching string
149-
* @param projectId Google Cloud project ID
150-
*/
151-
private static void inspectFile(
152-
String filePath,
153-
Likelihood minLikelihood,
154-
int maxFindings,
155-
List<InfoType> infoTypes,
156-
List<CustomInfoType> customInfoTypes,
157-
boolean includeQuote,
158-
String projectId) {
159-
// Instantiates a client
160-
try (DlpServiceClient dlpServiceClient = DlpServiceClient.create()) {
161-
// detect file mime type, default to application/octet-stream
162-
String mimeType = URLConnection.guessContentTypeFromName(filePath);
163-
if (mimeType == null) {
164-
mimeType = MimetypesFileTypeMap.getDefaultFileTypeMap().getContentType(filePath);
165-
}
166-
167-
ByteContentItem.BytesType bytesType;
168-
switch (mimeType) {
169-
case "image/jpeg":
170-
bytesType = ByteContentItem.BytesType.IMAGE_JPEG;
171-
break;
172-
case "image/bmp":
173-
bytesType = ByteContentItem.BytesType.IMAGE_BMP;
174-
break;
175-
case "image/png":
176-
bytesType = ByteContentItem.BytesType.IMAGE_PNG;
177-
break;
178-
case "image/svg":
179-
bytesType = ByteContentItem.BytesType.IMAGE_SVG;
180-
break;
181-
default:
182-
bytesType = ByteContentItem.BytesType.BYTES_TYPE_UNSPECIFIED;
183-
break;
184-
}
185-
186-
byte[] data = Files.readAllBytes(Paths.get(filePath));
187-
ByteContentItem byteContentItem =
188-
ByteContentItem.newBuilder()
189-
.setType(bytesType)
190-
.setData(ByteString.copyFrom(data))
191-
.build();
192-
ContentItem contentItem = ContentItem.newBuilder().setByteItem(byteContentItem).build();
193-
194-
FindingLimits findingLimits =
195-
FindingLimits.newBuilder().setMaxFindingsPerRequest(maxFindings).build();
196-
197-
InspectConfig inspectConfig =
198-
InspectConfig.newBuilder()
199-
.addAllInfoTypes(infoTypes)
200-
.addAllCustomInfoTypes(customInfoTypes)
201-
.setMinLikelihood(minLikelihood)
202-
.setLimits(findingLimits)
203-
.setIncludeQuote(includeQuote)
204-
.build();
205-
206-
InspectContentRequest request =
207-
InspectContentRequest.newBuilder()
208-
.setParent(ProjectName.of(projectId).toString())
209-
.setInspectConfig(inspectConfig)
210-
.setItem(contentItem)
211-
.build();
212-
213-
InspectContentResponse response = dlpServiceClient.inspectContent(request);
214-
215-
InspectResult result = response.getResult();
216-
if (result.getFindingsCount() > 0) {
217-
System.out.println("Findings: ");
218-
for (Finding finding : result.getFindingsList()) {
219-
if (includeQuote) {
220-
System.out.print("\tQuote: " + finding.getQuote());
221-
}
222-
System.out.print("\tInfo type: " + finding.getInfoType().getName());
223-
System.out.println("\tLikelihood: " + finding.getLikelihood());
224-
}
225-
} else {
226-
System.out.println("No findings.");
227-
}
228-
} catch (Exception e) {
229-
System.out.println("Error in inspectFile: " + e.getMessage());
230-
}
231-
}
232-
// [END dlp_inspect_file]
233-
23475
// [START dlp_inspect_gcs]
23576
/**
23677
* Inspect GCS file for Info types and wait on job completion using Google Cloud Pub/Sub
@@ -756,28 +597,7 @@ public static void main(String[] args) throws Exception {
756597
}
757598

758599
// string inspection
759-
if (cmd.hasOption("s")) {
760-
String val = cmd.getOptionValue(stringOption.getOpt());
761-
inspectString(
762-
val,
763-
minLikelihood,
764-
maxFindings,
765-
infoTypesList,
766-
customInfoTypesList,
767-
includeQuote,
768-
projectId);
769-
} else if (cmd.hasOption("f")) {
770-
String filePath = cmd.getOptionValue(fileOption.getOpt());
771-
inspectFile(
772-
filePath,
773-
minLikelihood,
774-
maxFindings,
775-
infoTypesList,
776-
customInfoTypesList,
777-
includeQuote,
778-
projectId);
779-
// gcs file inspection
780-
} else if (cmd.hasOption("gcs")) {
600+
if (cmd.hasOption("gcs")) {
781601
String bucketName = cmd.getOptionValue(bucketNameOption.getOpt());
782602
String fileName = cmd.getOptionValue(gcsFileNameOption.getOpt());
783603
inspectGcsFile(

0 commit comments

Comments
 (0)