通用密码的 Java 中 Mac OS X 钥匙串访问

ech*_*hen 5 java security macos credentials

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

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

在这里看到一个项目开始了:但它相对较旧并且没有积极维护。

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

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

Yur*_*mke 3

除了 f-stephen-q 上面的答案之外,这个库似乎仍然运行良好。我用的是它的叉子,它是mavenized的

$ git clone https://github.com/physion/osx-keychain-java
$ mvn install
$ cp dist/osxkeychain.jar ~/myproject/external
Run Code Online (Sandbox Code Playgroud)

添加依赖项

<dependency>
  <groupId>us.physion</groupId>
  <artifactId>osx-keychain</artifactId>
  <version>1.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/external/osxkeychain.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)

运行它

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"
Run Code Online (Sandbox Code Playgroud)