OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import "package:crypto/crypto.dart"; | 5 import "package:crypto/crypto.dart"; |
6 import "package:expect/expect.dart"; | 6 import "package:expect/expect.dart"; |
7 import "package:path/path.dart"; | 7 import "package:path/path.dart"; |
8 import "dart:async"; | 8 import "dart:async"; |
9 import "dart:io"; | 9 import "dart:io"; |
10 import 'dart:utf'; | 10 import 'dart:convert'; |
11 | 11 |
12 class Server { | 12 class Server { |
13 HttpServer server; | 13 HttpServer server; |
14 bool secure; | 14 bool secure; |
15 int proxyHops; | 15 int proxyHops; |
16 List<String> directRequestPaths; | 16 List<String> directRequestPaths; |
17 int requestCount = 0; | 17 int requestCount = 0; |
18 | 18 |
19 Server(this.proxyHops, this.directRequestPaths, this.secure); | 19 Server(this.proxyHops, this.directRequestPaths, this.secure); |
20 | 20 |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 return; | 156 return; |
157 } else { | 157 } else { |
158 Expect.equals( | 158 Expect.equals( |
159 1, request.headers[HttpHeaders.PROXY_AUTHORIZATION].length); | 159 1, request.headers[HttpHeaders.PROXY_AUTHORIZATION].length); |
160 String authorization = | 160 String authorization = |
161 request.headers[HttpHeaders.PROXY_AUTHORIZATION][0]; | 161 request.headers[HttpHeaders.PROXY_AUTHORIZATION][0]; |
162 if (authScheme == "Basic") { | 162 if (authScheme == "Basic") { |
163 List<String> tokens = authorization.split(" "); | 163 List<String> tokens = authorization.split(" "); |
164 Expect.equals("Basic", tokens[0]); | 164 Expect.equals("Basic", tokens[0]); |
165 String auth = | 165 String auth = |
166 CryptoUtils.bytesToBase64(encodeUtf8("$username:$password")); | 166 CryptoUtils.bytesToBase64(UTF8.encode("$username:$password")); |
167 if (auth != tokens[1]) { | 167 if (auth != tokens[1]) { |
168 basicAuthenticationRequired(request); | 168 basicAuthenticationRequired(request); |
169 return; | 169 return; |
170 } | 170 } |
171 } else { | 171 } else { |
172 HeaderValue header = | 172 HeaderValue header = |
173 HeaderValue.parse( | 173 HeaderValue.parse( |
174 authorization, parameterSeparator: ","); | 174 authorization, parameterSeparator: ","); |
175 Expect.equals("Digest", header.value); | 175 Expect.equals("Digest", header.value); |
176 var uri = header.parameters["uri"]; | 176 var uri = header.parameters["uri"]; |
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
760 testProxyFromEnviroment(); | 760 testProxyFromEnviroment(); |
761 // The two invocations of uses the same global variable for state - | 761 // The two invocations of uses the same global variable for state - |
762 // run one after the other. | 762 // run one after the other. |
763 testProxyAuthenticate(false) | 763 testProxyAuthenticate(false) |
764 .then((_) => testProxyAuthenticate(true)); | 764 .then((_) => testProxyAuthenticate(true)); |
765 // This test is not normally run. It can be used for locally testing | 765 // This test is not normally run. It can be used for locally testing |
766 // with a real proxy server (e.g. Apache). | 766 // with a real proxy server (e.g. Apache). |
767 //testRealProxy(); | 767 //testRealProxy(); |
768 //testRealProxyAuth(); | 768 //testRealProxyAuth(); |
769 } | 769 } |
OLD | NEW |