gpt4 book ai didi

java - 如何使用 jGit 授权用户

转载 作者:行者123 更新时间:2023-11-30 10:15:28 26 4
gpt4 key购买 nike

我正在用 Java 创建一个应用程序并使用 jGit。作为其中的一部分,我需要对用户进行身份验证。我想输出用户是否存在。目前我得到一个异常,因为 user is not authorized。下面是我的代码。

import java.io.File;

import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;

public class AuthenticateanUser {

public static void main(String[] args) throws Exception {
final String REMOTE_URL = "https://myRepo.git";
// prepare a new folder for the cloned repository
File localPath = File.createTempFile("TestGitRepository", "");
localPath.delete();
// then clone
try (Git result = Git.cloneRepository().setURI(REMOTE_URL)
.setCredentialsProvider(new UsernamePasswordCredentialsProvider("myId", "myPwd"))
.setDirectory(localPath).call()) {

System.out.println("Having repository: " + result.status());
}
}

}

当我运行上面的代码时,如果我提供正确的凭据,我得到的输出为

Having repository:XXXXX

如果我提供错误的凭据,我会收到错误信息

Exception in thread "main" org.eclipse.jgit.api.errors.TransportException: https://myRepo.git: not authorized

我想打印的不是这个,无效的凭据。

请让我知道哪里出错了,我该如何解决。

谢谢

最佳答案

你去:

try (Git result = Git.cloneRepository().setURI(REMOTE_URL) {
...
} catch (TransportException te) {
System.out.println("Invalid credentials");
}

例如。

您不应该告诉用户该帐户是否存在。如:如果您告诉攻击者,他可以得出结论,他已经获得了有效的用户名。

关于java - 如何使用 jGit 授权用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50442064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com