必须配置ICredentialRepository服务才能使用此功能

时间:2017-02-16 01:12:08

标签: java one-time-password

来自https://github.com/wstrange/GoogleAuth

为用户设置凭据时:

GoogleAuthenticator gAuth = new GoogleAuthenticator(); final GoogleAuthenticatorKey key = gAuth.createCredentials("daryll123");

发生异常:

java.lang.UnsupportedOperationException: An instance of the com.warrenstrange.googleauth.ICredentialRepository service must be configured in order to use this feature.

如何使用ICredentialRepository进行配置才能运行? 它说明了Java ServiceLoader API。不知道到底是什么。

1 个答案:

答案 0 :(得分:1)

您必须在某处实施ICredentialRepository接口方法,并使用

将该类设置为gAuth变量上的凭据存储库
setCredentialRepository()

如果在当前类上实现方法,则可以使用

gAuth.setCredentialRepository(this)

接口方法是

String getSecretKey(String userName);

void saveUserCredentials(String userName,
                         String secretKey,
                         int validationCode,
                         List<Integer> scratchCodes);

错误令人困惑,因为它没有给出您的凭据存储库未正确设置的上下文。希望这有帮助!