Esempio n. 1
0
    def login(self):
        """
        Attempt to log in.
        Note: this method does nothing if we are already logged in.
        """
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)

        if self.is_logged():
            return

        if not self.is_on_page(LoginPage):
            self.home()

        self.page.login(self.username)
        self.page.login2()
        self.page.login3(self.password)

        if not self.is_logged():
            raise BrowserIncorrectPassword()
        if self.is_on_page(ErrorPage):
            raise BrowserIncorrectPassword(self.page.get_error())

        v = urlsplit(self.page.url)
        self.DOMAIN = v.netloc
Esempio n. 2
0
    def login(self):
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)
        assert self.password.isdigit()

        data = {'Ident': self.username}
        r = self.readurl('https://client.hsbc.fr/cgi-bin/emcgi?Appl=WEBACC',
                         urllib.urlencode(data),
                         if_fail='raise')
        m = re.search('sessionid=([^ "]+)', r, flags=re.MULTILINE)
        if not m:
            raise BrowserIncorrectPassword()

        self._session = m.group(1)

        data = {'Secret': self.password}
        r = self.readurl(
            'https://client.hsbc.fr/cgi-bin/emcgi?sessionid=%s' %
            self._session, urllib.urlencode(data))
        if r.find('Erreur Identification') >= 0:
            raise BrowserIncorrectPassword()

        m = re.search('url = "/cgi-bin/emcgi\?sessionid=([^& "]+)&debr="',
                      r,
                      flags=re.MULTILINE)
        if not m:
            raise BrokenPageError('Unable to find session token')
        self._session = m.group(1)
Esempio n. 3
0
    def login(self):
        """
        Attempt to log in.
        Note: this method does nothing if we are already logged in.
        """
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)

        if self.is_logged():
            return

        if not self.is_on_page(LoginPage):
            self.location('https://b-net.barclays.fr/barclaysnetV2/logininstit.do?lang=fr&nodoctype=0', no_login=True)

        self.page.login(self.username, self.password)

        if not self.page.has_redirect():
            raise BrowserIncorrectPassword()

        self.location('loginSecurite.do', no_login=True)

        self.page.login(self.secret)

        if not self.is_logged():
            raise BrowserIncorrectPassword()
Esempio n. 4
0
    def login(self):
        assert isinstance(self.device, basestring)
        assert isinstance(self.enable_twofactors, bool)
        assert self.password.isdigit()

        if not self.is_on_page(LoginPage):
            self.location('https://' + self.DOMAIN + '/connexion.phtml',
                          no_login=True)

        self.page.login(self.username, self.password)

        if self.is_on_page(LoginPage):
            raise BrowserIncorrectPassword()

        #after login, we might be redirected to the two factor
        #authentication page
        #print "handle authentication"
        self.handle_authentication()

        self.location('/comptes/synthese.phtml', no_login=True)

        #if the login was correct but authentication code failed,
        #we need to verify if bourso redirect us to login page or authentication page
        if self.is_on_page(LoginPage):
            raise BrowserIncorrectAuthenticationCode()
Esempio n. 5
0
    def on_loaded(self):
        errors = []
        for errdiv in self.parser.select(self.document.getroot(), 'div.errormsg'):
            errors.append(errdiv.text.encode('utf-8').strip())

        if len(errors) > 0:
            raise BrowserIncorrectPassword(', '.join(errors))
Esempio n. 6
0
    def login(self):
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)

        # not necessary (and very slow)
        #self.location('https://www.credit-du-nord.fr/', no_login=True)

        m = re.match('www.([^\.]+).fr', self.DOMAIN)
        if not m:
            bank_name = 'credit-du-nord'
            self.logger.error('Unable to find bank name for %s' % self.DOMAIN)
        else:
            bank_name = m.group(1)

        data = {
            'bank': bank_name,
            'pagecible': 'vos-comptes',
            'password': self.password.encode(self.ENCODING),
            'pwAuth': 'Authentification+mot+de+passe',
            'username': self.username.encode(self.ENCODING),
        }

        self.location(self.buildurl('/saga/authentification'),
                      urllib.urlencode(data),
                      no_login=True)

        if not self.is_logged():
            raise BrowserIncorrectPassword()

        m = re.match('https://[^/]+/vos-comptes/(\w+).*', self.page.url)
        if m:
            self.account_type = m.group(1)
Esempio n. 7
0
 def login(self):
     params = urlencode({
         'codeEspace': 'NO',
         'codeEFS': '01',
         'codeSi': '001',
         'noPersonne': self.config['login'].get(),
         'motDePasse': self.config['password'].get()
     })
     if 'no_check' in self.config and self.config['no_check'].get() == "y":
         conn = HellHTTPS("www.cmb.fr")
     else:
         conn = HellHTTPS("www.cmb.fr",
                          ca_file=self.AUTH_CERT,
                          callBack=self.sslCallBack)
     conn.connect()
     headers = {'Content-Type': 'application/x-www-form-urlencoded'}
     conn.request("POST", "/domiweb/servlet/Identification", params,
                  headers)
     response = conn.getresponse()
     conn.close()
     if response.status == 302:
         self.cookie = response.getheader('Set-Cookie').split(';')[0]
         self.cookie += ';'
         return True
     else:
         raise BrowserIncorrectPassword()
     return False
Esempio n. 8
0
 def login(self):
     self.location('https://www.espaceclient.bouyguestelecom.fr/ECF/jsf/submitLogin.jsf', no_login=True)
     self.page.login(self.username, self.password)
     assert self.is_on_page(LoginSASPage)
     self.page.login()
     if not self.is_logged():
         raise BrowserIncorrectPassword()
Esempio n. 9
0
    def on_loaded(self):
        warn = self.document.xpath('//div[@id="message_renouvellement_mot_passe"]')
        if len(warn) > 0:
            raise BrowserIncorrectPassword(warn[0].text)

        # load content of loading divs.
        divs = []
        for div in self.document.xpath('//div[starts-with(@id, "as_")]'):
            loading = div.xpath('.//span[@class="loading"]')
            if len(loading) == 0:
                continue

            input = div.xpath('.//input')[0]
            divs.append([div, input.attrib['name']])

        if len(divs) > 0:
            args = {}
            for i, (div, name) in enumerate(divs):
                args['key%s' % i] = name
                args['div%s' % i] = div.attrib['id']
            args['time'] = 0
            r = self.browser.openurl(self.browser.buildurl('/AsynchAjax', **args))
            data = json.load(r)

            for i, (div, name) in enumerate(divs):
                html = data['data'][i]['flux']
                div.clear()
                div.insert(0, etree.fromstring(html, parser=etree.HTMLParser()))
Esempio n. 10
0
    def login(self):
        """
        Attempt to log in.
        Note: this method does nothing if we are already logged in.
        """
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)

        # Do we really need to login?
        if self.is_logged():
            self.logger.debug('already logged in')
            return

        self.is_logging = True
        # Are we on the good page?
        if not self.is_on_page(LoginPage):
            self.logger.debug('going to login page')
            BaseBrowser.home(self)
        self.logger.debug('attempting to log in')
        self.page.login(self.username, self.password)
        self.is_logging = False

        if not self.is_logged():
            raise BrowserIncorrectPassword()

        self.addheaders = [['User-agent', self.USER_AGENTS['desktop_firefox']]]
Esempio n. 11
0
    def __init__(self, basepage):
        divkeyboard = basepage.document.find(
            "//div[@id='clavierdisplayLogin']")
        if divkeyboard is None:
            divkeyboard = basepage.document.find(
                "//div[@id='claviertransfer']")
        try:
            img = divkeyboard.xpath("img")[1]
        except:
            raise BrowserIncorrectPassword()
        url = img.attrib.get("src")
        coords = {}
        coords["11"] = (5, 5, 33, 33)
        coords["21"] = (45, 5, 73, 33)
        coords["31"] = (85, 5, 113, 33)
        coords["41"] = (125, 5, 153, 33)
        coords["51"] = (165, 5, 193, 33)
        coords["12"] = (5, 45, 33, 73)
        coords["22"] = (45, 45, 73, 73)
        coords["32"] = (85, 45, 113, 73)
        coords["42"] = (125, 45, 153, 73)
        coords["52"] = (165, 45, 193, 73)

        VirtKeyboard.__init__(self, basepage.browser.openurl(url), coords,
                              self.color)

        self.check_symbols(self.symbols, basepage.browser.responses_dirname)
Esempio n. 12
0
    def login(self):
        """
        Attempt to log in.
        Note: this method does nothing if we are already logged in.
        """
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)

        if self.is_logged():
            return

        self._ua_handlers['_cookies'].cookiejar.clear()
        if not self.is_on_page(LoginPage):
            self.location(
                'https://www.caisse-epargne.fr/particuliers/ind_pauthpopup.aspx?mar=101&reg=&fctpopup=auth&cv=0',
                no_login=True)

        self.page.login(self.username)
        if not self.page.login2(self.nuser, self.password):
            # perso
            self.page.login3(self.password)

        if not self.is_logged():
            raise BrowserIncorrectPassword()

        v = urlsplit(self.page.url)
        self.DOMAIN = v.netloc
Esempio n. 13
0
 def login(self):
     if not self.is_on_page(LoginPage):
         self.location(
             'http://id.orange.fr/auth_user/bin/auth_user.cgi?url=http://www.orange.fr',
             no_login=True)
     self.page.login(self.username, self.password)
     if not self.is_logged():
         raise BrowserIncorrectPassword()
Esempio n. 14
0
 def on_loaded(self):
     try:
         raise BrowserIncorrectPassword(
             self.parser.tocleanstring(
                 self.parser.select(self.document.getroot(), '.messErreur',
                                    1)))
     except BrokenPageError:
         pass
Esempio n. 15
0
 def login(self):
     assert isinstance(self.username, basestring)
     assert isinstance(self.password, basestring)
     if not self.is_on_page(LoginPage):
         self.location(self.loginp)
     self.page.login(self.username, self.password)
     if self.is_on_page(LoginPage):
         raise BrowserIncorrectPassword()
Esempio n. 16
0
 def login(self):
     service_url = 'http://www.sfr.fr/xmscomposer/j_spring_cas_security_check'
     self.location('https://www.sfr.fr/cas/login?service=%s' %
                   urllib.quote_plus(service_url),
                   no_login=True)
     self.page.login(self.username, self.password)
     if not self.is_logged():
         raise BrowserIncorrectPassword()
Esempio n. 17
0
    def login(self):
        if not self.is_on_page(LoginPage):
            self.location('http://www.arretsurimages.net/forum/login.php',
                          no_login=True)

        self.page.login(self.username, self.password)

        if not self.is_logged():
            raise BrowserIncorrectPassword()
Esempio n. 18
0
    def login(self):
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)

        if not self.is_on_page(HomePage):
            self.location('/indexcle.html', no_login=True)

        self.page.login(self.username, self.password)

        if self.is_on_page(AlreadyConnectedPage):
            raise BrowserIncorrectPassword(
                "Another session is already open. Please try again later.")
        if not self.is_logged():
            raise BrowserIncorrectPassword(
                "Invalid login/password.\n"
                "If you did not change anything, be sure to check for password renewal request\n"
                "on the original website.\n"
                "Automatic renewal will be implemented later.")
Esempio n. 19
0
    def on_loaded(self):
        BasePage.on_loaded(self)

        warns = self.parser.select(self.document.getroot(), 'span.warning')
        for warn in warns:
            text = self.parser.tocleanstring(warn)
            if text.startswith('Your username'):
                raise BrowserIncorrectPassword(text)
            if text.startswith('You are banned'):
                raise BrowserBanned(text)
Esempio n. 20
0
 def login(self):
     assert isinstance(self.username, basestring)
     assert isinstance(self.password, basestring)
     if not self.is_on_page(HomePage):
         self.location('%s://%s/index.aspx'
                       % (self.PROTOCOL, self.BASEURL),
                       no_login=True)
     if not self.page.login(self.username, self.password) or \
         not self.is_logged() or \
             (self.is_on_page(LoginPage) and self.page.is_error()):
             raise BrowserIncorrectPassword()
Esempio n. 21
0
    def login(self):
        data = {'login': '******',
                'username': self.username,
                'password': self.password,
               }
        self.location('%s/ucp.php?mode=login' % self.BASEPATH, urllib.urlencode(data), no_login=True)

        assert self.is_on_page(LoginPage)

        if not self.page.is_logged():
            raise BrowserIncorrectPassword(self.page.get_error_message())
Esempio n. 22
0
    def login(self):
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)

        if not self.is_on_page(LoginPage):
            self.location('https://' + self.DOMAIN +
                          '/en/cgi-bin/webscr?cmd=_login-run')

        self.page.login(self.username, self.password)

        if self.is_on_page(LoginPage):
            raise BrowserIncorrectPassword()
Esempio n. 23
0
    def login(self):
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)

        self.stay_or_go(LoginPage, no_login=True)

        self.page.login(self.username, self.password)

        self.location(self.page_url('loginSecurite')+'?_top', no_login=True)

        if not self.is_logged():
            raise BrowserIncorrectPassword()
Esempio n. 24
0
 def login(self):
     assert isinstance(self.username, basestring)
     assert isinstance(self.password, basestring)
     if not self.is_on_page(HomePage):
         self.location('https://sbib.si.leschampslibres.fr/iii/cas/login?null', no_login=True)
     self.page.login(self.username, self.password)
     # Get home and get ID
     self.location('http://opac.si.leschampslibres.fr/iii/encore/home?lang=frf', no_login=True)
     self.iduser = self.page.get_id()
     self.logger.debug('Get ID ' + self.iduser)
     if not self.is_logged():
         raise BrowserIncorrectPassword()
Esempio n. 25
0
    def login(self):
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)
        assert self.username.isdigit()

        if not self.is_on_page(LoginPage):
            self.location('https://mobile.free.fr/moncompte/index.php')

        self.page.login(self.username, self.password)

        if self.is_on_page(LoginPage):
            raise BrowserIncorrectPassword()
Esempio n. 26
0
    def login(self):
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)

        if not self.is_on_page(LoginPage):
            self.location('https://www.creditmutuel.fr/', no_login=True)

        self.page.login(self.username, self.password)

        if not self.is_logged() or self.is_on_page(LoginErrorPage):
            raise BrowserIncorrectPassword()

        self.getCurrentSubBank()
Esempio n. 27
0
    def login(self):
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)
        assert self.password.isdigit()

        if not self.is_on_page(LoginPage):
            self.home()

        self.page.login(self.username, self.password)
        self.location('/UNE?ch6=0&ch8=2000&chA=1&chh=O', no_login=True)

        if not self.is_logged():
            raise BrowserIncorrectPassword()
Esempio n. 28
0
    def login(self):
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)
        assert self.password.isdigit()

        if not self.is_on_page(LoginPage):
            self.home()

        self.page.login(self.username, self.password)
        self.location('/NSFR?Action=DSP_VGLOBALE', no_login=True)

        if self.is_on_page(LoginPage):
            raise BrowserIncorrectPassword()
Esempio n. 29
0
    def login(self):
        if not self.is_on_page(LoginPage):
            self.location(
                'https://voscomptesenligne.labanquepostale.fr/wsost/OstBrokerWeb/loginform?TAM_OP=login&'
                'ERROR_CODE=0x00000000&URL=%2Fvoscomptes%2FcanalXHTML%2Fidentif.ea%3Forigin%3Dparticuliers',
                no_login=True)

        self.page.login(self.username, self.password)

        if self.is_on_page(BadLoginPage):
            raise BrowserIncorrectPassword()
        if self.is_on_page(AccountDesactivate):
            raise BrowserBanned()
Esempio n. 30
0
    def login(self):
        assert isinstance(self.username, basestring)
        assert isinstance(self.password, basestring)

        if not self.is_on_page(LoginPage):
            self.location('/login')

        if not self.page.login(self.username, self.password):
            raise BrowserBanned(
                'Too many connections from you IP address: captcha enabled')

        if self.is_on_page(LoginPage) or self.is_on_page(ErrorPage):
            raise BrowserIncorrectPassword()