| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_auth_gssapi_posix.h" | 5 #include "net/http/http_auth_gssapi_posix.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/native_library.h" | 9 #include "base/native_library.h" |
| 10 #include "net/base/net_errors.h" | 10 #include "net/base/net_errors.h" |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 std::string first_challenge_text = "Negotiate"; | 202 std::string first_challenge_text = "Negotiate"; |
| 203 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(), | 203 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(), |
| 204 first_challenge_text.end()); | 204 first_challenge_text.end()); |
| 205 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, | 205 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, |
| 206 auth_gssapi.ParseChallenge(&first_challenge)); | 206 auth_gssapi.ParseChallenge(&first_challenge)); |
| 207 | 207 |
| 208 // Generate an auth token and create another thing. | 208 // Generate an auth token and create another thing. |
| 209 EstablishInitialContext(&mock_library); | 209 EstablishInitialContext(&mock_library); |
| 210 std::string auth_token; | 210 std::string auth_token; |
| 211 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, "HTTP/intranet.google.com", | 211 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, "HTTP/intranet.google.com", |
| 212 &auth_token, | 212 std::string(), &auth_token, |
| 213 base::Bind(&UnexpectedCallback))); | 213 base::Bind(&UnexpectedCallback))); |
| 214 | 214 |
| 215 std::string second_challenge_text = "Negotiate Zm9vYmFy"; | 215 std::string second_challenge_text = "Negotiate Zm9vYmFy"; |
| 216 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(), | 216 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(), |
| 217 second_challenge_text.end()); | 217 second_challenge_text.end()); |
| 218 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, | 218 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, |
| 219 auth_gssapi.ParseChallenge(&second_challenge)); | 219 auth_gssapi.ParseChallenge(&second_challenge)); |
| 220 } | 220 } |
| 221 | 221 |
| 222 TEST(HttpAuthGSSAPITest, ParseChallenge_UnexpectedTokenFirstRound) { | 222 TEST(HttpAuthGSSAPITest, ParseChallenge_UnexpectedTokenFirstRound) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 240 CHROME_GSS_SPNEGO_MECH_OID_DESC); | 240 CHROME_GSS_SPNEGO_MECH_OID_DESC); |
| 241 std::string first_challenge_text = "Negotiate"; | 241 std::string first_challenge_text = "Negotiate"; |
| 242 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(), | 242 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(), |
| 243 first_challenge_text.end()); | 243 first_challenge_text.end()); |
| 244 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, | 244 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, |
| 245 auth_gssapi.ParseChallenge(&first_challenge)); | 245 auth_gssapi.ParseChallenge(&first_challenge)); |
| 246 | 246 |
| 247 EstablishInitialContext(&mock_library); | 247 EstablishInitialContext(&mock_library); |
| 248 std::string auth_token; | 248 std::string auth_token; |
| 249 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, "HTTP/intranet.google.com", | 249 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, "HTTP/intranet.google.com", |
| 250 &auth_token, | 250 std::string(), &auth_token, |
| 251 base::Bind(&UnexpectedCallback))); | 251 base::Bind(&UnexpectedCallback))); |
| 252 std::string second_challenge_text = "Negotiate"; | 252 std::string second_challenge_text = "Negotiate"; |
| 253 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(), | 253 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(), |
| 254 second_challenge_text.end()); | 254 second_challenge_text.end()); |
| 255 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_REJECT, | 255 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_REJECT, |
| 256 auth_gssapi.ParseChallenge(&second_challenge)); | 256 auth_gssapi.ParseChallenge(&second_challenge)); |
| 257 } | 257 } |
| 258 | 258 |
| 259 TEST(HttpAuthGSSAPITest, ParseChallenge_NonBase64EncodedToken) { | 259 TEST(HttpAuthGSSAPITest, ParseChallenge_NonBase64EncodedToken) { |
| 260 // If a later-round challenge has an invalid base64 encoded token, it should | 260 // If a later-round challenge has an invalid base64 encoded token, it should |
| 261 // be treated as an invalid challenge. | 261 // be treated as an invalid challenge. |
| 262 test::MockGSSAPILibrary mock_library; | 262 test::MockGSSAPILibrary mock_library; |
| 263 HttpAuthGSSAPI auth_gssapi(&mock_library, "Negotiate", | 263 HttpAuthGSSAPI auth_gssapi(&mock_library, "Negotiate", |
| 264 CHROME_GSS_SPNEGO_MECH_OID_DESC); | 264 CHROME_GSS_SPNEGO_MECH_OID_DESC); |
| 265 std::string first_challenge_text = "Negotiate"; | 265 std::string first_challenge_text = "Negotiate"; |
| 266 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(), | 266 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(), |
| 267 first_challenge_text.end()); | 267 first_challenge_text.end()); |
| 268 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, | 268 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, |
| 269 auth_gssapi.ParseChallenge(&first_challenge)); | 269 auth_gssapi.ParseChallenge(&first_challenge)); |
| 270 | 270 |
| 271 EstablishInitialContext(&mock_library); | 271 EstablishInitialContext(&mock_library); |
| 272 std::string auth_token; | 272 std::string auth_token; |
| 273 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, "HTTP/intranet.google.com", | 273 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, "HTTP/intranet.google.com", |
| 274 &auth_token, | 274 std::string(), &auth_token, |
| 275 base::Bind(&UnexpectedCallback))); | 275 base::Bind(&UnexpectedCallback))); |
| 276 std::string second_challenge_text = "Negotiate =happyjoy="; | 276 std::string second_challenge_text = "Negotiate =happyjoy="; |
| 277 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(), | 277 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(), |
| 278 second_challenge_text.end()); | 278 second_challenge_text.end()); |
| 279 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_INVALID, | 279 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_INVALID, |
| 280 auth_gssapi.ParseChallenge(&second_challenge)); | 280 auth_gssapi.ParseChallenge(&second_challenge)); |
| 281 } | 281 } |
| 282 | 282 |
| 283 } // namespace net | 283 } // namespace net |
| OLD | NEW |