2011-07-28 21 views
9

Kullanıcı adına harici servislere bağlanmak için Java Swing uygulamamın kullanacağı bazı kullanıcı adı/parola kombinasyonlarını saklamak için Mac KeyChain'i kullanmak istiyorum.Java kullanarak Mac Anahtarlığı'nda nasıl bir kullanıcı adı/şifre saklıyorsunuz?

Birkaç kaynaklariniz yaparak java.security.KeyStore nesneye erişim elde edebilirsiniz göstererek bulduk:

KeyStore keyStore = KeyStore.getInstance("KeychainStore", "Apple"); 
keyStore.load(null, null); 

Ancak, sonuçta ortaya çıkan anahtar deposunu nasıl kullandıklarını herhangi örneklerini bulamıyorum kullanıcı adlarını ve şifreleri gerçekten depolamak/almak için.

Herhangi bir yardım büyük memnuniyetle karşılanacaktır.

Teşekkürler!

+0

Bu sorun, http://stackoverflow.com/questions/727812/storing-username-password-on-mac-using-java adresinde ele alınmıştır. Kullanıcı erickson yanıtını görün. – dejuknow

+0

Eğer o rotaya gidersem, özel anahtarı uygulama ile dağıtmak zorunda kalırdım. Bu benim için en iyi çözüm gibi görünmüyor. Normal mac uygulamaları gibi anahtar zincirinde şifre saklamanın bir yolu yok mu? –

+0

Apple Keychain Services'e erişmek için java.security.KeyStore'u kullanmaya çalıştığınız anlaşılıyor. KeyStore birçok sağlayıcı etrafında soyut bir sarıcıdır. Bu yaklaşım, bir uygulamanın belirli özelliklerini kullanma yeteneğini sınırlar. Daha spesifik bir sarıcı şu şekildedir: https://github.com/conormcd/osx-keychain-java Ayrıca, servisi kullanma örneğidir (Şekil 1-3) https://developer.apple. com/library/ios/documentation/Güvenlik/Kavramsal/anahtarlıkServConcepts/03tasks/tasks.html – Frobbit

cevap

0

Sen buradan oraya "Anahtarlığınıza şifreleri" "Java KeyStore"

alamayan deposu soyutlama sadece anahtarlıkta certs sarar.

anahtarlık yerli görünümü arasındaki farkı (bash cmd) Bkz:

anahtarlık (bash cmd) Java'nın bakış vs

security dump ~/Library/Keychains/login.keychain

:

keytool -list -storetype KeychainStore -keystore ~/Library/Keychains/login.keychain

Bildirimi o sadece sertifikalar dahildir ve liste daha kısadır.

Keychain için, tüm özelliklerine erişebilen farklı bir sarıcı kullanmanız gerekecektir.

Öneriler:

  • github.com/conormcd/osx-keychain-java
  • JNI'yı

Ayrıca yerli dokümanlar okumak sarıcı yapmak için kullanılması swig: Keychain Services Concepts-OS X Keychain Services Tasks (bkz şekil 1-3)

+0

Sarma makinesini olası bir yolu kaçırıp kaçırmadığımı kontrol edebilirsiniz: http://cr.openjdk.java.net/~michaelm/7113349/7u4/4/jdk7u-osx/new/src/macosx/classes/apple/ güvenlik/KeychainStore.java.html – Frobbit

0

security komut satırı aracını "dışarıda bırakabilir" aracını saklayabilir ve alabilirsiniz. anahtarlık gelen e şifreler. Erişime izin vermeniz gereken bir açılır pencere açılabilir. Ayrıca, bu açıkçası o zaman sadece OSX üzerinde çalışır.

Parola şöyle kaydedilmiş olabilir: Eğer JProc kütüphanesini kullanabilirsiniz

security -i find-generic-password -l mywonderfulapp -w 

daha kolay çıkış yakalamak yapmak için:

security add-generic-password -s mywonderfulapp -a $username -w $password 

sonra bu yapabileceğini şifreyi almak için , Örneğingibi:

String password = ProcBuilder.run(
    "security", 
    "-i", "find-generic-password", 
    "-l", "mywonderfulapp", "-w" 
); 
İlgili konular