@@ -0,0 +1,2460 @@
+/*%0A *  Licensed to the Apache Software Foundation (ASF) under one or more%0A *  contributor license agreements.  See the NOTICE file distributed with%0A *  this work for additional information regarding copyright ownership.%0A *  The ASF licenses this file to You under the Apache License, Version 2.0%0A *  (the %22License%22); you may not use this file except in compliance with%0A *  the License.  You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A *  Unless required by applicable law or agreed to in writing, software%0A *  distributed under the License is distributed on an %22AS IS%22 BASIS,%0A *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A *  See the License for the specific language governing permissions and%0A *  limitations under the License.%0A */%0A%0Apackage org.apache.harmony.auth.callback;%0A%0Aimport java.io.BufferedReader;%0Aimport java.io.IOException;%0Aimport java.io.InputStream;%0Aimport java.io.InputStreamReader;%0Aimport java.io.PrintStream;%0A%0Aimport javax.security.auth.callback.Callback;%0Aimport javax.security.auth.callback.CallbackHandler;%0Aimport javax.security.auth.callback.NameCallback;%0Aimport javax.security.auth.callback.PasswordCallback;%0Aimport javax.security.auth.callback.UnsupportedCallbackException;%0A%0Apublic class TextCallbackHandler implements CallbackHandler %7B%0A    %0A    private InputStream in = System.in;%0A    private PrintStream out = System.out;%0A%0A    public void handle(Callback%5B%5D callbacks) throws IOException,%0A            UnsupportedCallbackException %7B%0A        for(int i=0;i%3Ccallbacks.length;i++)%7B%0A            if(callbacks%5Bi%5D instanceof NameCallback)%7B%0A                NameCallback nameCallback = (NameCallback)callbacks%5Bi%5D;%0A                out.print(nameCallback.getPrompt());%0A                BufferedReader br = new BufferedReader(new InputStreamReader(in));%0A                nameCallback.setName(br.readLine());%0A            %7D%0A            else if(callbacks%5Bi%5D instanceof PasswordCallback)%7B%0A                PasswordCallback passwordCallback = (PasswordCallback)callbacks%5Bi%5D;%0A                out.print(passwordCallback.getPrompt());%0A                //haven't implemented echo off function%0A                BufferedReader br = new BufferedReader(new InputStreamReader(in));%0A                passwordCallback.setPassword(br.readLine().toCharArray());%0A            %7D%0A            else%7B%0A                throw new UnsupportedCallbackException(callbacks%5Bi%5D);%0A            %7D%0A        %7D%0A   %7D%0A%7D%0A

Apply patch for HARMONY-4919([classlib][auth]Harmony lacks CallbackHandlers) about TextCallbackHandler.