Skip to content

Fix for latest breaking changes on Okta #42

Open
@blurayne

Description

@blurayne

Seems they changed their login-page to look nycer or something. My fork is a bit out of sync, so I just provide that function:

from bs4 import BeautifulSoup
import json

…


def get_redirect_url(conf, c, current_url=None):
    # type: (Conf, str, Optional[str]) -> Optional[str]
    from_uri = ""

    try:
        modelDataBag = re.search(r'var\s*modelDataBag\s*=\s*\'([^\']+)\'', c).group(1)
        modelDataBag = modelDataBag.encode('latin-1').decode('unicode_escape').encode('latin-1').decode('utf-8').strip()
        modelDataBag = json.loads(modelDataBag)
        print(f"DataBag {modelDataBag}", file=sys.stderr)
        base_url = modelDataBag.get('baseUrl', '')
        from_uri = modelDataBag.get('fromURI', '')
    except:
        pass

    if from_uri == "":
        soup = BeautifulSoup(c, 'html.parser')
        try:
            input_tag = soup.find('input', {'id': 'fromURI'})
            from_uri = input_tag.get('value')
            print(f"Redirect URL {from_uri}", file=sys.stderr)
        except:
            pass

    if from_uri == "":
        rx_base_url = re.search(r'var\s*baseUri\s*=\s*\'([^\']+)\'', c)
        rx_from_uri = re.search(r'var\s*fromUri\s*=\s*\'([^\']+)\'', c)
        if not rx_from_uri:
            dbg(conf.debug, 'not found', 'fromUri')
            return None
        from_uri = to_n(to_b(rx_from_uri.group(1)).decode('unicode_escape').strip())
        if from_uri.startswith('http'):
            return from_uri#
        if not rx_base_url:#
            dbg(conf.debug, 'not found', 'baseUri')
        if current_url:
            return urljoin(current_url, from_uri)
        return from_uri
        base_url = to_n(to_b(rx_base_url.group(1)).decode('unicode_escape').strip())
    
    if from_uri.startswith('http'):
        return from_uri

    return base_url + from_uri

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions