2017-06-21 8 views
1

Gtk3のGnomeKeyringをPython 2.7で使用しましたが、ほぼすべてのメソッドが廃止されました[1]。だから私はSecretSecret.Collectionを使用しようとした[2]secretstorageコレクションのラベルでキーを見つける方法

import gi 
gi.require_version('Secret', '1.0') 
from gi.repository import Secret 
>> ValueError: Namespace Secret not available 

Iパッケージ "のpython-secretstorage" を見つけ、[3]、現在はキーリングにアクセスすることができます。

import secretstorage 
bus = secretstorage.dbus_init() 
collection = secretstorage.get_default_collection(bus) ## login keyring 

しかし、どのように、私は見つけることができますキー私はラベルで検索しているので、すべてのアイテムを繰り返し処理する必要はありませんか?

items = collection.get_all_items() 
for item in items: 
    if item.get_label() == "most_wanted_key": 
     return item 

ここでは私が試したことはありますが、ラベルでは機能せず、属性のみで動作します。

found_items = collection.search_items({"label": "most_wanted_key"}) 
  1. https://lazka.github.io/pgi-docs/GnomeKeyring-1.0/functions.html
  2. https://lazka.github.io/pgi-docs/Secret-1/classes/Collection.html
  3. https://secretstorage.readthedocs.io/en/latest/

答えて

0

私はどちらかのラベルを検索する方法を考え出したていないが、AFAICTは、ラベルは属性のいずれかから設定されていますGUIによって。これは、Webサイトの認証情報を見つけるために私のために働くようだ:

import secretstorage 
bus = secretstorage.dbus_init() 
collection = secretstorage.get_default_collection(bus) ## login keyring 
search={u'action_url': u'https://testapp.example.com:8443/login'} 
items = collection.search_items(search) 
for item in items: 
    print item.get_label() 
    print item.get_secret() 

印刷されたラベルは、実際には、私が検索するものと同一であり、私はこれがAPIを使用することを目的と方法だと思います。もちろん、そのひねりは、検索する正確な属性を理解することにあります。別のウェブサイトの場合、識別URLは「origin_url」の下に格納されます。

関連する問題