def _transform_get_first_jndi_string()

in src/jndi_deobfuscate/jndi_deobfuscate.py [0:0]


def _transform_get_first_jndi_string(input_string: str) -> Union[str, bool]:
    """Returns string contained in first set of curley braces found (incl. braces) (used for filtering)"""
    output = None
    if input_string:
        result = re.findall(SIMPLE_JNDI_REGEX_PATTERN, input_string)
        if result:
            regex_output = result[0]
            logger.debug(
                f"Curley brace search: found first JNDI string via regex: `{regex_output}`"
            )
            first_left_curley_brace_position = regex_output.find("${")
            first_right_curley_brace_position = (
                regex_output[first_left_curley_brace_position:].find("}") + 1
            )
            first_jndi_string = str(
                regex_output[first_left_curley_brace_position:first_right_curley_brace_position]
            )
            output = first_jndi_string
            if regex_output != first_jndi_string:
                logger.debug(
                    f"Curley brace search: extracted first JNDI string `{first_jndi_string}` from initial regex output {regex_output}"
                )
    return output