IntentSanitizer
public class IntentSanitizer
This class is used to make a sanitized copy of an Intent. This could be used when UnsafeIntentLaunchViolation is detected. This class is thread safe and the object created is safe to be reused. Typical usage of the class:
Intent intent = new IntentSanitizer.Builder()
.allowComponent(“com.example.ActivityA”)
.allowData(“com.example”)
.allowType(“text/plain”)
.build()
.sanitizeByThrowing(intent);Summary
Nested types |
|---|
public final class IntentSanitizer.BuilderGeneral strategy of building is to only offer additive “or” operations that are chained together. |
Public methods |
|
|---|---|
@NonNull Intent |
This method sanitizes the given intent. |
@NonNull Intent |
Convenient method for filtering unwanted members from the input intent and log it. |
@NonNull Intent |
Convenient method for throwing a SecurityException when unwanted members of the input intent is encountered. |
Public methods
sanitize
public @NonNull Intent sanitize(@NonNull Intent in, @NonNull Consumer<String> penalty)
This method sanitizes the given intent. If dirty members are found, the errors are consumed by the penalty object. The penalty action could be called multiple times if multiple issues exist.
sanitizeByFiltering
public @NonNull Intent sanitizeByFiltering(@NonNull Intent in)
Convenient method for filtering unwanted members from the input intent and log it.
sanitizeByThrowing
public @NonNull Intent sanitizeByThrowing(@NonNull Intent in)
Convenient method for throwing a SecurityException when unwanted members of the input intent is encountered.
| Returns | |
|---|---|
@NonNull Intent |
a copy of the input intent if the input intent does not contain any unwanted members. |
| Throws | |
|---|---|
java.lang.SecurityException |
if the input intent contains any unwanted members. |