def saveOrUpdateAuthId(self): if self.authId == '': authConfig = QgsAuthMethodConfig('Basic') self.authId = QgsAuthManager.instance().uniqueConfigId() authConfig.setId(self.authId) authConfig.setConfig('username', self.connectWidget.login().strip()) authConfig.setConfig('password', self.connectWidget.password().strip()) authConfig.setName('Boundless Connect Portal') authConfig.setUri(pluginSetting('repoUrl')) if QgsAuthManager.instance().storeAuthenticationConfig(authConfig): utils.setRepositoryAuth(self.authId) else: self._showMessage('Unable to save credentials.', QgsMessageBar.WARNING) else: authConfig = QgsAuthMethodConfig() QgsAuthManager.instance().loadAuthenticationConfig(self.authId, authConfig, True) authConfig.setConfig('username', self.connectWidget.login().strip()) authConfig.setConfig('password', self.connectWidget.password().strip()) QgsAuthManager.instance().updateAuthenticationConfig(authConfig) # also setup OAuth2 configuration if possible if oauth2_supported(): endpointUrl = "{}/token/oauth?version={}".format(pluginSetting("connectEndpoint"), pluginSetting("apiVersion")) setup_oauth(self.connectWidget.login().strip(), self.connectWidget.password().strip(), endpointUrl)
def accept(self): utils.addBoundlessRepository() if self.leLogin.text() == '' or self.lePassword.text() == '': QDialog.accept(self) return if self.authId == '': authConfig = QgsAuthMethodConfig('Basic') authId = QgsAuthManager.instance().uniqueConfigId() authConfig.setId(authId) authConfig.setConfig('username', self.leLogin.text()) authConfig.setConfig('password', self.lePassword.text()) authConfig.setName('Boundless Connect Portal') settings = QSettings('Boundless', 'BoundlessConnect') authConfig.setUri(settings.value('repoUrl', '', unicode)) if QgsAuthManager.instance().storeAuthenticationConfig(authConfig): utils.setRepositoryAuth(authId) else: QMessageBox.information(self, self.tr('Error!'), self.tr('Unable to save credentials')) else: authConfig = QgsAuthMethodConfig() QgsAuthManager.instance().loadAuthenticationConfig(self.authId, authConfig, True) authConfig.setConfig('username', self.leLogin.text()) authConfig.setConfig('password', self.lePassword.text()) QgsAuthManager.instance().updateAuthenticationConfig(authConfig) QDialog.accept(self)
def sync_auth_save(sender, instance, **kwargs): """Sync the QGIS auth DB after save""" c = QgsAuthMethodConfig() c.setId(instance.id) c.setMethod(instance.method) c.setName(instance.name) c.setUri(instance.uri) c.setVersion(instance.version) c.setConfigMap(ast.literal_eval(instance.config)) am = QgsApplication.instance().authManager() if c.id() in am.configIds(): am.updateAuthenticationConfig(c) else: am.storeAuthenticationConfig(c)
def populatePKITestCerts(): """ Populate AuthManager with test certificates. heavily based on testqgsauthmanager.cpp. """ global AUTHM global AUTHCFGID global AUTHTYPE assert (AUTHM is not None) if AUTHCFGID: removePKITestCerts() assert (AUTHCFGID is None) # set alice PKI data p_config = QgsAuthMethodConfig() p_config.setName("alice") p_config.setMethod("PKI-Paths") p_config.setUri("http://example.com") p_config.setConfig("certpath", os.path.join(PKIDATA, 'alice-cert.pem')) p_config.setConfig("keypath", os.path.join(PKIDATA, 'alice-key.pem')) assert p_config.isValid() # add authorities cacerts = QSslCertificate.fromPath( os.path.join(PKIDATA, 'subissuer-issuer-root-ca_issuer-2-root-2-ca_chains.pem')) assert cacerts is not None AUTHM.storeCertAuthorities(cacerts) AUTHM.rebuildCaCertsCache() AUTHM.rebuildTrustedCaCertsCache() # add alice cert # boundle = QgsPkiBundle.fromPemPaths(os.path.join(PKIDATA, 'alice-cert.pem'), # os.path.join(PKIDATA, 'alice-key_w-pass.pem'), # 'password', # cacerts) # assert boundle is not None # assert boundle.isValid() # register alice data in auth AUTHM.storeAuthenticationConfig(p_config) AUTHCFGID = p_config.id() assert (AUTHCFGID is not None) assert (AUTHCFGID != '') AUTHTYPE = p_config.method()
def populatePKITestCerts(): """ Populate AuthManager with test certificates. heavily based on testqgsauthmanager.cpp. """ global AUTHM global AUTHCFGID global AUTHTYPE assert (AUTHM is not None) if AUTHCFGID: removePKITestCerts() assert (AUTHCFGID is None) # set alice PKI data p_config = QgsAuthMethodConfig() p_config.setName("alice") p_config.setMethod("PKI-Paths") p_config.setUri("http://example.com") p_config.setConfig("certpath", os.path.join(PKIDATA, 'alice-cert.pem')) p_config.setConfig("keypath", os.path.join(PKIDATA, 'alice-key.pem')) assert p_config.isValid() # add authorities cacerts = QSslCertificate.fromPath(os.path.join(PKIDATA, 'subissuer-issuer-root-ca_issuer-2-root-2-ca_chains.pem')) assert cacerts is not None AUTHM.storeCertAuthorities(cacerts) AUTHM.rebuildCaCertsCache() AUTHM.rebuildTrustedCaCertsCache() # add alice cert # boundle = QgsPkiBundle.fromPemPaths(os.path.join(PKIDATA, 'alice-cert.pem'), # os.path.join(PKIDATA, 'alice-key_w-pass.pem'), # 'password', # cacerts) # assert boundle is not None # assert boundle.isValid() # register alice data in auth AUTHM.storeAuthenticationConfig(p_config) AUTHCFGID = p_config.id() assert (AUTHCFGID is not None) assert (AUTHCFGID != '') AUTHTYPE = p_config.method()
def config_obj(self, kind, base=True): config = QgsAuthMethodConfig() config.setName(kind) config.setMethod(kind) config.setUri("http://example.com") if base: return config if kind == "Basic": config.setConfig("username", "username") config.setConfig("password", "password") config.setConfig("realm", "Realm") elif kind == "PKI-Paths": config.setConfig("certpath", os.path.join(PKIDATA, "gerardus_cert.pem")) config.setConfig("keypath", os.path.join(PKIDATA, "gerardus_key_w-pass.pem")) config.setConfig("keypass", "password") elif kind == "PKI-PKCS#12": config.setConfig("bundlepath", os.path.join(PKIDATA, "gerardus.p12")) config.setConfig("bundlepass", "password") return config
def set_mergin_auth(url, username, password): settings = QSettings() authcfg = settings.value('Mergin/authcfg', None) cfg = QgsAuthMethodConfig() auth_manager = QgsApplication.authManager() auth_manager.setMasterPassword() auth_manager.loadAuthenticationConfig(authcfg, cfg, True) if cfg.id(): cfg.setUri(url) cfg.setConfig("username", username) cfg.setConfig("password", password) auth_manager.updateAuthenticationConfig(cfg) else: cfg.setMethod("Basic") cfg.setName("mergin") cfg.setUri(url) cfg.setConfig("username", username) cfg.setConfig("password", password) auth_manager.storeAuthenticationConfig(cfg) settings.setValue('Mergin/authcfg', cfg.id()) settings.setValue('Mergin/server', url)
def config_obj(self, kind, base=True): config = QgsAuthMethodConfig() config.setName(kind) config.setMethod(kind) config.setUri('http://example.com') if base: return config if kind == 'Basic': config.setConfig('username', 'username') config.setConfig('password', 'password') config.setConfig('realm', 'Realm') elif kind == 'PKI-Paths': config.setConfig('certpath', os.path.join(PKIDATA, 'gerardus_cert.pem')) config.setConfig('keypath', os.path.join(PKIDATA, 'gerardus_key_w-pass.pem')) config.setConfig('keypass', 'password') elif kind == 'PKI-PKCS#12': config.setConfig('bundlepath', os.path.join(PKIDATA, 'gerardus.p12')) config.setConfig('bundlepass', 'password') return config