Package org.owasp.encoder
Class Encoders
- java.lang.Object
-
- org.owasp.encoder.Encoders
-
public final class Encoders extends java.lang.Object
Encoders -- Public factory method for obtaining instances of Encoders. Classes implementing the encoders are not directly exposed as part of the API since encoding strategies are subject to change. In many cases encoders will share the same implementation, but have different internal flags for how to handle varied content. For example the XML_CONTENT and XML_ATTRIBUTE contexts may currently share the same class with each instances having a different set of flags. Future version may optimize them into different classes.All encoders returned by the factory are thread-safe.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CDATA
Name of CDATA context.(package private) static CDATAEncoder
CDATA_ENCODER
Encoder for CDATA contexts.static java.lang.String
CSS_STRING
Name of CSS string context.(package private) static CSSEncoder
CSS_STRING_ENCODER
Encoder for CSS strings.static java.lang.String
CSS_URL
Name of CSS URL context.(package private) static CSSEncoder
CSS_URL_ENCODER
Encoder for CSS URL values.private static java.util.Map<java.lang.String,Encoder>
ENCODERS_MAP
Map from encoder name to encoder singleton.static java.lang.String
HTML
Name of HTML general context.static java.lang.String
HTML_ATTRIBUTE
Name of HTML attribute context.static java.lang.String
HTML_CONTENT
Name of HTML content context.static java.lang.String
HTML_UNQUOTED_ATTRIBUTE
Name of unquoted HTML attribute context.(package private) static HTMLEncoder
HTML_UNQUOTED_ATTRIBUTE_ENCODER
Encoder for unquoted HTML attributes.static java.lang.String
JAVA
Name of Java String context.(package private) static JavaEncoder
JAVA_ENCODER
Encoder for Java strings.static java.lang.String
JAVASCRIPT
Name of JavaScript general context.static java.lang.String
JAVASCRIPT_ATTRIBUTE
Name of JavaScript attribute context.(package private) static JavaScriptEncoder
JAVASCRIPT_ATTRIBUTE_ENCODER
Encoder for JavaScript appearing in XML/HTML attributes.static java.lang.String
JAVASCRIPT_BLOCK
Name of JavaScript block context.(package private) static JavaScriptEncoder
JAVASCRIPT_BLOCK_ENCODER
Encoder for JavaScript appearing in HTML script blocks.(package private) static JavaScriptEncoder
JAVASCRIPT_ENCODER
Encoder for general JavaScript contexts.static java.lang.String
JAVASCRIPT_SOURCE
Name of JavaScript source context.(package private) static JavaScriptEncoder
JAVASCRIPT_SOURCE_ENCODER
Encoder for JavaScript in stand-alone contexts.static java.lang.String
URI
Name of URI context.static java.lang.String
URI_COMPONENT
Name of URI component context.(package private) static URIEncoder
URI_COMPONENT_ENCODER
Encoder for components of URIs.(package private) static URIEncoder
URI_ENCODER
Encoder for full URIs.static java.lang.String
XML
Name of XML general context.static java.lang.String
XML_ATTRIBUTE
Name of XML attribute context.(package private) static XMLEncoder
XML_ATTRIBUTE_ENCODER
Encoder for XML/HTML attribute contexts.static java.lang.String
XML_COMMENT
Name of XML comment context.(package private) static XMLCommentEncoder
XML_COMMENT_ENCODER
Encoder for XML comments.static java.lang.String
XML_CONTENT
Name of XML content context.(package private) static XMLEncoder
XML_CONTENT_ENCODER
Encoder for XML/HTML content contexts.(package private) static XMLEncoder
XML_ENCODER
Encoder for general XML/HTML contexts.
-
Constructor Summary
Constructors Modifier Constructor Description private
Encoders()
No instances.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Encoder
forName(java.lang.String contextName)
Returns a new instance of an Encoder for the specified context.private static <T extends Encoder>
Tmap(java.lang.String name, T encoder)
Internal method to setup and map encoder singletons.
-
-
-
Field Detail
-
HTML
public static final java.lang.String HTML
Name of HTML general context.- See Also:
- Constant Field Values
-
HTML_CONTENT
public static final java.lang.String HTML_CONTENT
Name of HTML content context.- See Also:
- Constant Field Values
-
HTML_ATTRIBUTE
public static final java.lang.String HTML_ATTRIBUTE
Name of HTML attribute context.- See Also:
- Constant Field Values
-
HTML_UNQUOTED_ATTRIBUTE
public static final java.lang.String HTML_UNQUOTED_ATTRIBUTE
Name of unquoted HTML attribute context.- See Also:
- Constant Field Values
-
XML
public static final java.lang.String XML
Name of XML general context.- See Also:
- Constant Field Values
-
XML_CONTENT
public static final java.lang.String XML_CONTENT
Name of XML content context.- See Also:
- Constant Field Values
-
XML_ATTRIBUTE
public static final java.lang.String XML_ATTRIBUTE
Name of XML attribute context.- See Also:
- Constant Field Values
-
XML_COMMENT
public static final java.lang.String XML_COMMENT
Name of XML comment context.- See Also:
- Constant Field Values
-
CDATA
public static final java.lang.String CDATA
Name of CDATA context.- See Also:
- Constant Field Values
-
CSS_STRING
public static final java.lang.String CSS_STRING
Name of CSS string context.- See Also:
- Constant Field Values
-
CSS_URL
public static final java.lang.String CSS_URL
Name of CSS URL context.- See Also:
- Constant Field Values
-
JAVA
public static final java.lang.String JAVA
Name of Java String context.- See Also:
- Constant Field Values
-
JAVASCRIPT
public static final java.lang.String JAVASCRIPT
Name of JavaScript general context.- See Also:
- Constant Field Values
-
JAVASCRIPT_ATTRIBUTE
public static final java.lang.String JAVASCRIPT_ATTRIBUTE
Name of JavaScript attribute context.- See Also:
- Constant Field Values
-
JAVASCRIPT_BLOCK
public static final java.lang.String JAVASCRIPT_BLOCK
Name of JavaScript block context.- See Also:
- Constant Field Values
-
JAVASCRIPT_SOURCE
public static final java.lang.String JAVASCRIPT_SOURCE
Name of JavaScript source context.- See Also:
- Constant Field Values
-
URI
public static final java.lang.String URI
Name of URI context.- See Also:
- Constant Field Values
-
URI_COMPONENT
public static final java.lang.String URI_COMPONENT
Name of URI component context.- See Also:
- Constant Field Values
-
ENCODERS_MAP
private static final java.util.Map<java.lang.String,Encoder> ENCODERS_MAP
Map from encoder name to encoder singleton.
-
XML_ENCODER
static final XMLEncoder XML_ENCODER
Encoder for general XML/HTML contexts.
-
XML_CONTENT_ENCODER
static final XMLEncoder XML_CONTENT_ENCODER
Encoder for XML/HTML content contexts.
-
XML_ATTRIBUTE_ENCODER
static final XMLEncoder XML_ATTRIBUTE_ENCODER
Encoder for XML/HTML attribute contexts.
-
XML_COMMENT_ENCODER
static final XMLCommentEncoder XML_COMMENT_ENCODER
Encoder for XML comments.
-
CDATA_ENCODER
static final CDATAEncoder CDATA_ENCODER
Encoder for CDATA contexts.
-
HTML_UNQUOTED_ATTRIBUTE_ENCODER
static final HTMLEncoder HTML_UNQUOTED_ATTRIBUTE_ENCODER
Encoder for unquoted HTML attributes.
-
JAVASCRIPT_ENCODER
static final JavaScriptEncoder JAVASCRIPT_ENCODER
Encoder for general JavaScript contexts.
-
JAVASCRIPT_ATTRIBUTE_ENCODER
static final JavaScriptEncoder JAVASCRIPT_ATTRIBUTE_ENCODER
Encoder for JavaScript appearing in XML/HTML attributes.
-
JAVASCRIPT_BLOCK_ENCODER
static final JavaScriptEncoder JAVASCRIPT_BLOCK_ENCODER
Encoder for JavaScript appearing in HTML script blocks.
-
JAVASCRIPT_SOURCE_ENCODER
static final JavaScriptEncoder JAVASCRIPT_SOURCE_ENCODER
Encoder for JavaScript in stand-alone contexts.
-
URI_ENCODER
static final URIEncoder URI_ENCODER
Encoder for full URIs.
-
URI_COMPONENT_ENCODER
static final URIEncoder URI_COMPONENT_ENCODER
Encoder for components of URIs.
-
JAVA_ENCODER
static final JavaEncoder JAVA_ENCODER
Encoder for Java strings.
-
CSS_STRING_ENCODER
static final CSSEncoder CSS_STRING_ENCODER
Encoder for CSS strings.
-
CSS_URL_ENCODER
static final CSSEncoder CSS_URL_ENCODER
Encoder for CSS URL values.
-
-
Method Detail
-
map
private static <T extends Encoder> T map(java.lang.String name, T encoder)
Internal method to setup and map encoder singletons.- Type Parameters:
T
- the encoder type- Parameters:
name
- -- name of the encoder (one of the constants above)encoder
- -- the encoder singleton instance- Returns:
- the encoder argument.
-
forName
public static Encoder forName(java.lang.String contextName) throws java.lang.NullPointerException, UnsupportedContextException
Returns a new instance of an Encoder for the specified context. The returned instance is thread-safe.- Parameters:
contextName
- the context name (one of the String constants defined in this class)- Returns:
- an encoder for the specified context.
- Throws:
java.lang.NullPointerException
- ifcontextName
is nullUnsupportedContextException
- ifcontextName
is not recognized.
-
-