Package com.shapesecurity.salvation2
Class Policy
- java.lang.Object
-
- com.shapesecurity.salvation2.Policy
-
public class Policy extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
Policy.InlineType
private static class
Policy.NamedDirective
static interface
Policy.PolicyErrorConsumer
static interface
Policy.PolicyListErrorConsumer
static class
Policy.Severity
-
Field Summary
Fields Modifier and Type Field Description private SourceExpressionDirective
baseUri
private boolean
blockAllMixedContent
private java.util.List<Policy.NamedDirective>
directives
private java.util.Map<FetchDirectiveKind,SourceExpressionDirective>
fetchDirectives
private SourceExpressionDirective
formAction
private FrameAncestorsDirective
frameAncestors
private SourceExpressionDirective
navigateTo
private PluginTypesDirective
pluginTypes
private RFC7230Token
reportTo
private ReportUriDirective
reportUri
private SandboxDirective
sandbox
private boolean
upgradeInsecureRequests
-
Constructor Summary
Constructors Modifier Constructor Description private
Policy()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Directive
add(java.lang.String name, java.util.List<java.lang.String> values, Directive.DirectiveErrorConsumer directiveErrorConsumer)
boolean
allowsApplicationManifest(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
boolean
allowsConnection(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
boolean
allowsEval()
boolean
allowsExternalScript(java.util.Optional<java.lang.String> nonce, java.util.Optional<java.lang.String> integrity, java.util.Optional<URLWithScheme> scriptUrl, java.util.Optional<java.lang.Boolean> parserInserted, java.util.Optional<URLWithScheme> origin)
boolean
allowsExternalStyle(java.util.Optional<java.lang.String> nonce, java.util.Optional<URLWithScheme> styleUrl, java.util.Optional<URLWithScheme> origin)
boolean
allowsFont(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
boolean
allowsFormAction(java.util.Optional<URLWithScheme> to, java.util.Optional<java.lang.Boolean> redirected, java.util.Optional<URLWithScheme> redirectedTo, java.util.Optional<URLWithScheme> origin)
boolean
allowsFrame(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
boolean
allowsFrameAncestor(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
boolean
allowsImage(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
boolean
allowsInlineScript(java.util.Optional<java.lang.String> nonce, java.util.Optional<java.lang.String> source, java.util.Optional<java.lang.Boolean> parserInserted)
boolean
allowsInlineStyle(java.util.Optional<java.lang.String> nonce, java.util.Optional<java.lang.String> source)
boolean
allowsJavascriptUrlNavigation(java.util.Optional<java.lang.String> source, java.util.Optional<URLWithScheme> origin)
boolean
allowsMedia(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
boolean
allowsNavigation(java.util.Optional<URLWithScheme> to, java.util.Optional<java.lang.Boolean> redirected, java.util.Optional<URLWithScheme> redirectedTo, java.util.Optional<URLWithScheme> origin)
boolean
allowsObject(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
boolean
allowsPlugin(java.util.Optional<MediaType> mediaType)
boolean
allowsPrefetch(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
boolean
allowsScriptAsAttribute(java.util.Optional<java.lang.String> source)
boolean
allowsStyleAsAttribute(java.util.Optional<java.lang.String> source)
boolean
allowsWorker(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
java.util.Optional<SourceExpressionDirective>
baseUri()
boolean
blockAllMixedContent()
private static java.lang.String
collect(java.lang.String input, java.lang.String regex)
private boolean
doesElementMatchSourceListForTypeAndSource(Policy.InlineType type, java.util.Optional<java.lang.String> nonce, java.util.Optional<java.lang.String> source, java.util.Optional<java.lang.Boolean> parserInserted)
static boolean
doesUrlMatchSourceListInOrigin(URLWithScheme url, HostSourceDirective list, java.util.Optional<URLWithScheme> origin)
(package private) static void
enforceAscii(java.lang.String s)
java.util.Optional<SourceExpressionDirective>
formAction()
java.util.Optional<FrameAncestorsDirective>
frameAncestors()
java.util.Optional<SourceExpressionDirective>
getFetchDirective(FetchDirectiveKind kind)
java.util.Optional<SourceExpressionDirective>
getGoverningDirectiveForEffectiveDirective(FetchDirectiveKind kind)
private static boolean
hostPartMatches(java.lang.String A, java.lang.String B)
java.util.Optional<SourceExpressionDirective>
navigateTo()
private static java.lang.String
normalizeBase64Url(java.lang.String input)
static Policy
parseSerializedCSP(java.lang.String serialized, Policy.PolicyErrorConsumer policyErrorConsumer)
static PolicyList
parseSerializedCSPList(java.lang.String serialized, Policy.PolicyListErrorConsumer policyListErrorConsumer)
private static boolean
pathPartMatches(java.lang.String pathA, java.lang.String pathB)
java.util.Optional<PluginTypesDirective>
pluginTypes()
private static boolean
portPartMatches(int A, int portB, java.lang.String schemeB)
boolean
remove(java.lang.String name)
java.util.Optional<RFC7230Token>
reportTo()
java.util.Optional<ReportUriDirective>
reportUri()
java.util.Optional<SandboxDirective>
sandbox()
private static boolean
schemePartMatches(java.lang.String A, java.lang.String B)
void
setBlockAllMixedContent(boolean value)
void
setReportTo(RFC7230Token token)
void
setUpgradeInsecureRequests(boolean value)
private static java.lang.String
stripLeadingWhitespace(java.lang.String string)
private static java.lang.String
stripTrailingWhitespace(java.lang.String string)
java.lang.String
toString()
boolean
upgradeInsecureRequests()
-
-
-
Field Detail
-
directives
private java.util.List<Policy.NamedDirective> directives
-
baseUri
private SourceExpressionDirective baseUri
-
blockAllMixedContent
private boolean blockAllMixedContent
-
formAction
private SourceExpressionDirective formAction
-
frameAncestors
private FrameAncestorsDirective frameAncestors
-
navigateTo
private SourceExpressionDirective navigateTo
-
pluginTypes
private PluginTypesDirective pluginTypes
-
reportTo
private RFC7230Token reportTo
-
reportUri
private ReportUriDirective reportUri
-
sandbox
private SandboxDirective sandbox
-
upgradeInsecureRequests
private boolean upgradeInsecureRequests
-
fetchDirectives
@Nonnull private final java.util.Map<FetchDirectiveKind,SourceExpressionDirective> fetchDirectives
-
-
Method Detail
-
parseSerializedCSPList
@Nonnull public static PolicyList parseSerializedCSPList(java.lang.String serialized, Policy.PolicyListErrorConsumer policyListErrorConsumer)
-
parseSerializedCSP
@Nonnull public static Policy parseSerializedCSP(java.lang.String serialized, Policy.PolicyErrorConsumer policyErrorConsumer)
-
add
public Directive add(java.lang.String name, java.util.List<java.lang.String> values, Directive.DirectiveErrorConsumer directiveErrorConsumer)
-
remove
public boolean remove(java.lang.String name)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
baseUri
public java.util.Optional<SourceExpressionDirective> baseUri()
-
blockAllMixedContent
public boolean blockAllMixedContent()
-
setBlockAllMixedContent
public void setBlockAllMixedContent(boolean value)
-
formAction
public java.util.Optional<SourceExpressionDirective> formAction()
-
frameAncestors
public java.util.Optional<FrameAncestorsDirective> frameAncestors()
-
navigateTo
public java.util.Optional<SourceExpressionDirective> navigateTo()
-
pluginTypes
public java.util.Optional<PluginTypesDirective> pluginTypes()
-
reportTo
public java.util.Optional<RFC7230Token> reportTo()
-
setReportTo
public void setReportTo(RFC7230Token token)
-
reportUri
public java.util.Optional<ReportUriDirective> reportUri()
-
sandbox
public java.util.Optional<SandboxDirective> sandbox()
-
upgradeInsecureRequests
public boolean upgradeInsecureRequests()
-
setUpgradeInsecureRequests
public void setUpgradeInsecureRequests(boolean value)
-
getFetchDirective
public java.util.Optional<SourceExpressionDirective> getFetchDirective(FetchDirectiveKind kind)
-
allowsExternalScript
public boolean allowsExternalScript(java.util.Optional<java.lang.String> nonce, java.util.Optional<java.lang.String> integrity, java.util.Optional<URLWithScheme> scriptUrl, java.util.Optional<java.lang.Boolean> parserInserted, java.util.Optional<URLWithScheme> origin)
-
allowsInlineScript
public boolean allowsInlineScript(java.util.Optional<java.lang.String> nonce, java.util.Optional<java.lang.String> source, java.util.Optional<java.lang.Boolean> parserInserted)
-
allowsScriptAsAttribute
public boolean allowsScriptAsAttribute(java.util.Optional<java.lang.String> source)
-
allowsEval
public boolean allowsEval()
-
allowsNavigation
public boolean allowsNavigation(java.util.Optional<URLWithScheme> to, java.util.Optional<java.lang.Boolean> redirected, java.util.Optional<URLWithScheme> redirectedTo, java.util.Optional<URLWithScheme> origin)
-
allowsFormAction
public boolean allowsFormAction(java.util.Optional<URLWithScheme> to, java.util.Optional<java.lang.Boolean> redirected, java.util.Optional<URLWithScheme> redirectedTo, java.util.Optional<URLWithScheme> origin)
-
allowsJavascriptUrlNavigation
public boolean allowsJavascriptUrlNavigation(java.util.Optional<java.lang.String> source, java.util.Optional<URLWithScheme> origin)
-
allowsExternalStyle
public boolean allowsExternalStyle(java.util.Optional<java.lang.String> nonce, java.util.Optional<URLWithScheme> styleUrl, java.util.Optional<URLWithScheme> origin)
-
allowsInlineStyle
public boolean allowsInlineStyle(java.util.Optional<java.lang.String> nonce, java.util.Optional<java.lang.String> source)
-
allowsStyleAsAttribute
public boolean allowsStyleAsAttribute(java.util.Optional<java.lang.String> source)
-
allowsFrame
public boolean allowsFrame(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
-
allowsFrameAncestor
public boolean allowsFrameAncestor(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
-
allowsConnection
public boolean allowsConnection(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
-
allowsFont
public boolean allowsFont(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
-
allowsImage
public boolean allowsImage(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
-
allowsApplicationManifest
public boolean allowsApplicationManifest(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
-
allowsMedia
public boolean allowsMedia(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
-
allowsObject
public boolean allowsObject(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
-
allowsPrefetch
public boolean allowsPrefetch(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
-
allowsWorker
public boolean allowsWorker(java.util.Optional<URLWithScheme> source, java.util.Optional<URLWithScheme> origin)
-
allowsPlugin
public boolean allowsPlugin(java.util.Optional<MediaType> mediaType)
-
getGoverningDirectiveForEffectiveDirective
public java.util.Optional<SourceExpressionDirective> getGoverningDirectiveForEffectiveDirective(FetchDirectiveKind kind)
-
doesElementMatchSourceListForTypeAndSource
private boolean doesElementMatchSourceListForTypeAndSource(Policy.InlineType type, java.util.Optional<java.lang.String> nonce, java.util.Optional<java.lang.String> source, java.util.Optional<java.lang.Boolean> parserInserted)
-
normalizeBase64Url
private static java.lang.String normalizeBase64Url(java.lang.String input)
-
doesUrlMatchSourceListInOrigin
public static boolean doesUrlMatchSourceListInOrigin(URLWithScheme url, HostSourceDirective list, java.util.Optional<URLWithScheme> origin)
-
schemePartMatches
private static boolean schemePartMatches(java.lang.String A, java.lang.String B)
-
hostPartMatches
private static boolean hostPartMatches(java.lang.String A, java.lang.String B)
-
portPartMatches
private static boolean portPartMatches(int A, int portB, java.lang.String schemeB)
-
pathPartMatches
private static boolean pathPartMatches(java.lang.String pathA, java.lang.String pathB)
-
enforceAscii
static void enforceAscii(java.lang.String s)
-
stripLeadingWhitespace
private static java.lang.String stripLeadingWhitespace(java.lang.String string)
-
stripTrailingWhitespace
private static java.lang.String stripTrailingWhitespace(java.lang.String string)
-
collect
@Nonnull private static java.lang.String collect(java.lang.String input, java.lang.String regex)
-
-