java - 用于通用密码的 Java 中的 Mac OS X 钥匙串(keychain)访问

标签 java macos security credentials

仅使用 Java 在 OS X 的钥匙串(keychain)中检索通用密码的标准方法是什么? Apple Developer Pages提供了一些很好的背景,但不幸的是,实现和示例是用 C 或 native 代码编写的。

Java KeyStore OS X 实现似乎只适用于公钥/私钥对和证书,但不适用于通用用户名/密码组合。

我看到一个项目开始了Here : 但它相对较旧且未得到积极维护。

对于使用 Java 在 Mac OS X 中保护凭据的问题,是否有更先进的解决方案?

编辑:OAuth 不是我在其中操作的问题和环境类别的选项......

最佳答案

除了上面 f-stephen-q 的回答,这个库似乎仍然运行良好。我正在使用它的一个 fork ,它是 mavenised

$ git clone https://github.com/physion/osx-keychain-java
$ mvn install
$ cp dist/osxkeychain.jar ~/myproject/external

添加依赖

<dependency>
  <groupId>us.physion</groupId>
  <artifactId>osx-keychain</artifactId>
  <version>1.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/external/osxkeychain.jar</systemPath>
</dependency>

运行它

osx-keychain-java$ jshell -cp ./dist/osxkeychain.jar

jshell> import com.mcdermottroe.apple.*;
jshell> OSXKeychain keychain = OSXKeychain.getInstance();
keychain ==> com.mcdermottroe.apple.OSXKeychain@2286778

jshell> keychain.addGenericPassword("aardvark", "a", "b");

jshell> keychain.findGenericPassword("aardvark", "a");
$4 ==> "b"

关于java - 用于通用密码的 Java 中的 Mac OS X 钥匙串(keychain)访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38227005/

相关文章:

java - 在允许可见光标移动的同时禁用 JTextPane 中的编辑

java - Java 中 int 的范围错误

macos - 如何使用 mach_absolute_time 而不溢出?

c - 管道在 Mac 上无法正常工作

c - 无法在 Mac 上使用 gsl 进行编译

android - 保护 Web 服务,使其只能由特定的 Android 应用程序调用

javascript - 这是对 Javascript 的 eval() 的错误使用吗?

jar - Java - ant找不到rt.jar

java - OSGI JNDI 是否允许与来自非 OSGI 代码的 JNDI 调用共存?

c# - 如何开始使用 OAuth 来保护 Web API 应用程序?