Added code for decoding base64 encoded value 42/104842/1
authorRahul_cool <rahul.tamrkar@huawei.com>
Wed, 1 Apr 2020 10:19:25 +0000 (15:49 +0530)
committerRahul_cool <rahul.tamrkar@huawei.com>
Wed, 1 Apr 2020 10:19:25 +0000 (15:49 +0530)
Issue-ID: SDNC-899
Signed-off-by: Rahul_cool <rahul.tamrkar@huawei.com>
Change-Id: I231f891118dabf59518bcf4dbe456df97cd3e5b2

sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SliStringUtils.java
sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliStringUtilsTest.java

index fdc057b..9e3367d 100644 (file)
@@ -27,6 +27,7 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.util.Map;
+import java.util.Base64;
 import org.apache.commons.text.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
@@ -311,6 +312,37 @@ public class SliStringUtils implements SvcLogicJavaPlugin {
                 .replace(parameters.get(INPUT_PARAM_TARGET), parameters.get("replacement"))));
     }
 
+/**
+     * exposes base64decoding algo
+     * writes the length of source to outputPath
+     * @param parameters HashMap<String,String> of parameters passed by the DG to this function
+     * <table border="1">
+     *  <thead><th>parameter</th><th>Mandatory/Optional</th><th>description</th></thead>
+     *  <tbody>
+     *      <tr><td>encodedValue</td><td>Mandatory</td><td>source string</td></tr>
+     *      <tr><td>decodedValue</td><td>Mandatory</td><td>Destination path</td></tr>
+     *  </tbody>
+     * </table>
+     * @param ctx Reference to context memory
+     * @throws SvcLogicException
+     * @since 11.0.2
+     */
+    public static void base64DecodingAlgo(Map<String, String> parameters, SvcLogicContext ctx) throws SvcLogicException{
+        try {
+            SliPluginUtils.checkParameters(parameters, new String[]{"encodedValue","decodedValue"}, LOG);
+
+            Base64.Decoder decoder = Base64.getDecoder();
+            byte[] decodedByteArray = decoder.decode(parameters.get("encodedValue"));
+            //Verify the decoded string
+            String decodeVal = new String(decodedByteArray);
+            ctx.setAttribute(parameters.get("decodedValue"), decodeVal);
+        }catch (Exception exc){
+            LOG.error("Exception occure "+exc.getMessage());
+            throw new SvcLogicException(exc.getMessage());
+        }
+    }
+
+
     /**
      * exposes replaceAll to directed graph
      * writes the length of source to outputPath
index 3a6c31a..da7046f 100644 (file)
@@ -386,4 +386,13 @@ public class SliStringUtilsTest {
         assertEquals(SliStringUtils.FALSE_CONSTANT, result);
     }
 
+       @Test
+       public void testBase64DecodingAlgo() throws Exception{
+               String input = "MDUxMDAw";
+               String decodeVal = "decodedPath";
+               param.put("encodedValue",input);
+               param.put("decodedValue", decodeVal);
+               SliStringUtils.base64DecodingAlgo(param,ctx);
+               assertEquals("051000",ctx.getAttribute(decodeVal));
+       }
 }