aboutsummaryrefslogtreecommitdiffstats
path: root/aai-traversal/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java
diff options
context:
space:
mode:
Diffstat (limited to 'aai-traversal/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java')
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java258
1 files changed, 130 insertions, 128 deletions
diff --git a/aai-traversal/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java b/aai-traversal/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java
index 7d04bf7..fcf7e42 100644
--- a/aai-traversal/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java
+++ b/aai-traversal/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java
@@ -8,7 +8,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -32,131 +32,133 @@ import org.springframework.web.util.UriUtils;
*/
public class ValidateEncoding {
- private final String encoding = "UTF-8";
-
- /**
- * Instantiates a new validate encoding.
- */
- private ValidateEncoding() {
-
- }
-
- /**
- * The Class Helper.
- */
- private static class Helper {
-
- /** The Constant INSTANCE. */
- private static final ValidateEncoding INSTANCE = new ValidateEncoding();
- }
-
- /**
- * Gets the single instance of ValidateEncoding.
- *
- * @return single instance of ValidateEncoding
- */
- public static ValidateEncoding getInstance() {
- return Helper.INSTANCE;
- }
-
- /**
- * Validate.
- *
- * @param uri the uri
- * @return true, if successful
- * @throws UnsupportedEncodingException the unsupported encoding exception
- */
- public boolean validate(URI uri) throws UnsupportedEncodingException {
- boolean result = true;
- if (!validatePath(uri.getRawPath())) {
- result = false;
- }
- /*if (!validateQueryParams(uri.getRawQuery())) {
- result = false;
- } //TODO
- */
-
- return result;
- }
-
- /**
- * Validate.
- *
- * @param info the info
- * @return true, if successful
- * @throws UnsupportedEncodingException the unsupported encoding exception
- */
- public boolean validate(UriInfo info) throws UnsupportedEncodingException {
- boolean result = true;
- if (!validatePath(info.getPath(false))) {
- result = false;
- }
- if (!validateQueryParams(info.getQueryParameters(false))) {
- result = false;
- }
-
- return result;
- }
-
- /**
- * Validate path.
- *
- * @param path the path
- * @return true, if successful
- * @throws UnsupportedEncodingException the unsupported encoding exception
- */
- private boolean validatePath(String path) throws UnsupportedEncodingException {
- String[] segments = path.split("/");
- boolean valid = true;
- for (String segment : segments) {
- if (!this.checkEncoding(segment)) {
- valid = false;
- }
- }
-
- return valid;
-
- }
-
- /**
- * Validate query params.
- *
- * @param params the params
- * @return true, if successful
- * @throws UnsupportedEncodingException the unsupported encoding exception
- */
- private boolean validateQueryParams(MultivaluedMap<String, String> params) throws UnsupportedEncodingException {
- boolean valid = true;
-
- for (String key : params.keySet()) {
- if (!this.checkEncoding(key)) {
- valid = false;
- }
- for (String item : params.get(key)) {
- if(item.contains("+")){
- item = item.replaceAll("\\+", "%20");
- }
- if (!this.checkEncoding(item)) {
- valid = false;
- }
- }
- }
- return valid;
- }
-
- /**
- * Check encoding.
- *
- * @param segment the segment
- * @return true, if successful
- * @throws UnsupportedEncodingException the unsupported encoding exception
- */
- private boolean checkEncoding(String segment) throws UnsupportedEncodingException {
- boolean result = false;
- String decode = UriUtils.decode(segment, encoding);
- String encode = UriUtils.encode(decode, encoding);
- result = segment.equals(encode);
-
- return result;
- }
+ private final String encoding = "UTF-8";
+
+ /**
+ * Instantiates a new validate encoding.
+ */
+ private ValidateEncoding() {
+
+ }
+
+ /**
+ * The Class Helper.
+ */
+ private static class Helper {
+
+ /** The Constant INSTANCE. */
+ private static final ValidateEncoding INSTANCE = new ValidateEncoding();
+ }
+
+ /**
+ * Gets the single instance of ValidateEncoding.
+ *
+ * @return single instance of ValidateEncoding
+ */
+ public static ValidateEncoding getInstance() {
+ return Helper.INSTANCE;
+ }
+
+ /**
+ * Validate.
+ *
+ * @param uri the uri
+ * @return true, if successful
+ * @throws UnsupportedEncodingException the unsupported encoding exception
+ */
+ public boolean validate(URI uri) throws UnsupportedEncodingException {
+ boolean result = true;
+ if (!validatePath(uri.getRawPath())) {
+ result = false;
+ }
+ /*
+ * if (!validateQueryParams(uri.getRawQuery())) {
+ * result = false;
+ * } //TODO
+ */
+
+ return result;
+ }
+
+ /**
+ * Validate.
+ *
+ * @param info the info
+ * @return true, if successful
+ * @throws UnsupportedEncodingException the unsupported encoding exception
+ */
+ public boolean validate(UriInfo info) throws UnsupportedEncodingException {
+ boolean result = true;
+ if (!validatePath(info.getPath(false))) {
+ result = false;
+ }
+ if (!validateQueryParams(info.getQueryParameters(false))) {
+ result = false;
+ }
+
+ return result;
+ }
+
+ /**
+ * Validate path.
+ *
+ * @param path the path
+ * @return true, if successful
+ * @throws UnsupportedEncodingException the unsupported encoding exception
+ */
+ private boolean validatePath(String path) throws UnsupportedEncodingException {
+ String[] segments = path.split("/");
+ boolean valid = true;
+ for (String segment : segments) {
+ if (!this.checkEncoding(segment)) {
+ valid = false;
+ }
+ }
+
+ return valid;
+
+ }
+
+ /**
+ * Validate query params.
+ *
+ * @param params the params
+ * @return true, if successful
+ * @throws UnsupportedEncodingException the unsupported encoding exception
+ */
+ private boolean validateQueryParams(MultivaluedMap<String, String> params)
+ throws UnsupportedEncodingException {
+ boolean valid = true;
+
+ for (String key : params.keySet()) {
+ if (!this.checkEncoding(key)) {
+ valid = false;
+ }
+ for (String item : params.get(key)) {
+ if (item.contains("+")) {
+ item = item.replaceAll("\\+", "%20");
+ }
+ if (!this.checkEncoding(item)) {
+ valid = false;
+ }
+ }
+ }
+ return valid;
+ }
+
+ /**
+ * Check encoding.
+ *
+ * @param segment the segment
+ * @return true, if successful
+ * @throws UnsupportedEncodingException the unsupported encoding exception
+ */
+ private boolean checkEncoding(String segment) throws UnsupportedEncodingException {
+ boolean result = false;
+ String decode = UriUtils.decode(segment, encoding);
+ String encode = UriUtils.encode(decode, encoding);
+ result = segment.equals(encode);
+
+ return result;
+ }
}