def METHOD_NAME(action):
    """
    transform the action, especialy the secret parameter of the url
    """
    servers = []
    name, _sep, values = action.partition("=")
    for value in values.split(" "):
        # decompose the server url to identify, if there is a secret inside
        parsed_server = urllib.parse.urlparse(value)
        # the urlparse has a bug,, where in elder versions, the
        # path is not split from the query
        if not parsed_server.query:
            path, _sep, query = parsed_server.path.partition("?")
        else:
            path = parsed_server.path
            query = parsed_server.query
        # in gereal url parsing allows mutiple entries per key
        # but we support here only one
        params = urllib.parse.parse_qs(query)
        for key, entry in list(params.items()):
            params[key] = entry[0]
        # finally we found the query parameters
        if "secret" in params:
            secret = params["secret"]
            params["encsecret"] = SecretObj.encrypt_pin(secret)
            del params["secret"]
        # build the server url with the encrypted param:
        # as the named tuple is not updateable, we have to convert this
        # into an list to make the update and then back to a tuple to
        # create an url from this
        parsed_list = list(parsed_server[:])
        parsed_list[ForwardServerPolicy.Path_index] = path.strip()
        parsed_list[
            ForwardServerPolicy.Query_index
        ] = urllib.parse.urlencode(params)
        server_url = urllib.parse.urlunparse(tuple(parsed_list))
        servers.append(server_url)
    ret = "=".join([name, " ".join(servers)])
    return ret