1

Java を使用してカスタム git 資格情報ヘルパーを開発しており、バックグラウンドで Azure デバイス コード フローを実装しようとしています。実装の一環として、ユーザーが認証に使用する URL とデバイス コードをコンソールに出力し、コンソールで ENTER を押す必要がありますが、URL とデバイス コードを出力した後に git ターミナルがハングします。以下は私のコードです。

public class GitHelper {

    public static void main(String[] args) {

        String op = args[0];
        switch (op) {
        case "get":
            System.out.printf("username=%s\n", "oauth2");
            System.out.printf("password=%s\n", getToken());
            break;
        default:
            System.out.println(args[0]);
            break;
        }

    }
}
public void waitForUser() {

        System.out.println("To sign in, use a web browser to open the page " + URL
                + "\n and enter the code " + code
                + " to authenticate then return to this window and press ENTER.");
        Callable<String> userInput = () -> new Scanner(System.in).nextLine();
        String res = getUserInputWithTimeout(TIMEOUT, userInput); // 30s until timeout

        if (res != null) {
            System.out.println("Validating Authentication ...");

        }

    }

私は自分のコードを jar としてバンドルしており、gitconfig の下にあります。

[credential]
    helper = "!java -jar D:/config/git-credential-helper.jar"

git clone のような git 操作を行うと、警告を下回り、そこでハングアップします

warning: invalid credential line: To sign in, use a web browser to open the page www.login.com and enter the code 324523453425 to authenticate then return to this window and press ENTER.
4

1 に答える 1