Print this page
Split |
Close |
Expand all |
Collapse all |
--- old/src/share/classes/sun/net/www/protocol/http/NegotiateCallbackHandler.java
+++ new/src/share/classes/sun/net/www/protocol/http/spnego/NegotiateCallbackHandler.java
1 1 /*
2 2 * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
3 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 4 *
5 5 * This code is free software; you can redistribute it and/or modify it
6 6 * under the terms of the GNU General Public License version 2 only, as
7 7 * published by the Free Software Foundation. Sun designates this
8 8 * particular file as subject to the "Classpath" exception as provided
9 9 * by Sun in the LICENSE file that accompanied this code.
10 10 *
11 11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 14 * version 2 for more details (a copy is included in the LICENSE file that
15 15 * accompanied this code).
↓ open down ↓ |
15 lines elided |
↑ open up ↑ |
16 16 *
17 17 * You should have received a copy of the GNU General Public License version
18 18 * 2 along with this work; if not, write to the Free Software Foundation,
19 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 20 *
21 21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 23 * have any questions.
24 24 */
25 25
26 -package sun.net.www.protocol.http;
26 +package sun.net.www.protocol.http.spnego;
27 +
27 28 import java.io.IOException;
28 29 import java.net.Authenticator;
29 30 import java.net.PasswordAuthentication;
30 31 import java.util.Arrays;
31 32 import javax.security.auth.callback.Callback;
32 33 import javax.security.auth.callback.CallbackHandler;
33 34 import javax.security.auth.callback.NameCallback;
34 35 import javax.security.auth.callback.PasswordCallback;
35 36 import javax.security.auth.callback.UnsupportedCallbackException;
37 +import sun.net.www.protocol.http.HttpCallerInfo;
36 38
37 39 /**
38 40 * @since 1.6
39 41 * Special callback handler used in JGSS for the HttpCaller.
40 42 */
41 43 public class NegotiateCallbackHandler implements CallbackHandler {
42 44
43 45 private String username;
44 46 private char[] password;
45 47
46 48 private final HttpCallerInfo hci;
47 49
48 50 public NegotiateCallbackHandler(HttpCallerInfo hci) {
49 51 this.hci = hci;
50 52 }
51 53
52 54 public void handle(Callback[] callbacks) throws
53 55 UnsupportedCallbackException, IOException {
54 56 for (int i=0; i<callbacks.length; i++) {
55 57 Callback callBack = callbacks[i];
56 58
57 59 if (callBack instanceof NameCallback) {
58 60 if (username == null) {
59 61 PasswordAuthentication passAuth =
60 62 Authenticator.requestPasswordAuthentication(
61 63 hci.host, hci.addr, hci.port, hci.protocol,
62 64 hci.prompt, hci.scheme, hci.url, hci.authType);
63 65 username = passAuth.getUserName();
64 66 password = passAuth.getPassword();
65 67 }
66 68 NameCallback nameCallback =
67 69 (NameCallback)callBack;
68 70 nameCallback.setName(username);
69 71
70 72 } else if (callBack instanceof PasswordCallback) {
71 73 PasswordCallback passwordCallback =
72 74 (PasswordCallback)callBack;
73 75 if (password == null) {
74 76 PasswordAuthentication passAuth =
75 77 Authenticator.requestPasswordAuthentication(
76 78 hci.host, hci.addr, hci.port, hci.protocol,
77 79 hci.prompt, hci.scheme, hci.url, hci.authType);
78 80 username = passAuth.getUserName();
79 81 password = passAuth.getPassword();
80 82 }
81 83 passwordCallback.setPassword(password);
82 84 Arrays.fill(password, ' ');
83 85 } else {
84 86 throw new UnsupportedCallbackException(callBack,
85 87 "Call back not supported");
86 88 }
87 89 }
88 90 }
89 91 }
↓ open down ↓ |
44 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX