| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/native_library.h" | 10 #include "base/native_library.h" |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 CHROME_GSS_KRB5_MECH_OID_DESC); | 195 CHROME_GSS_KRB5_MECH_OID_DESC); |
| 196 std::string first_challenge_text = "Negotiate"; | 196 std::string first_challenge_text = "Negotiate"; |
| 197 HttpAuth::ChallengeTokenizer first_challenge(first_challenge_text.begin(), | 197 HttpAuth::ChallengeTokenizer first_challenge(first_challenge_text.begin(), |
| 198 first_challenge_text.end()); | 198 first_challenge_text.end()); |
| 199 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, | 199 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, |
| 200 auth_gssapi.ParseChallenge(&first_challenge)); | 200 auth_gssapi.ParseChallenge(&first_challenge)); |
| 201 | 201 |
| 202 // Generate an auth token and create another thing. | 202 // Generate an auth token and create another thing. |
| 203 EstablishInitialContext(&mock_library); | 203 EstablishInitialContext(&mock_library); |
| 204 std::string auth_token; | 204 std::string auth_token; |
| 205 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, NULL, | 205 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, L"HTTP/intranet.google.com", |
| 206 L"HTTP/intranet.google.com", | |
| 207 &auth_token)); | 206 &auth_token)); |
| 208 | 207 |
| 209 std::string second_challenge_text = "Negotiate Zm9vYmFy"; | 208 std::string second_challenge_text = "Negotiate Zm9vYmFy"; |
| 210 HttpAuth::ChallengeTokenizer second_challenge(second_challenge_text.begin(), | 209 HttpAuth::ChallengeTokenizer second_challenge(second_challenge_text.begin(), |
| 211 second_challenge_text.end()); | 210 second_challenge_text.end()); |
| 212 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, | 211 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, |
| 213 auth_gssapi.ParseChallenge(&second_challenge)); | 212 auth_gssapi.ParseChallenge(&second_challenge)); |
| 214 } | 213 } |
| 215 | 214 |
| 216 TEST(HttpAuthGSSAPITest, ParseChallenge_UnexpectedTokenFirstRound) { | 215 TEST(HttpAuthGSSAPITest, ParseChallenge_UnexpectedTokenFirstRound) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 233 HttpAuthGSSAPI auth_gssapi(&mock_library, "Negotiate", | 232 HttpAuthGSSAPI auth_gssapi(&mock_library, "Negotiate", |
| 234 CHROME_GSS_KRB5_MECH_OID_DESC); | 233 CHROME_GSS_KRB5_MECH_OID_DESC); |
| 235 std::string first_challenge_text = "Negotiate"; | 234 std::string first_challenge_text = "Negotiate"; |
| 236 HttpAuth::ChallengeTokenizer first_challenge(first_challenge_text.begin(), | 235 HttpAuth::ChallengeTokenizer first_challenge(first_challenge_text.begin(), |
| 237 first_challenge_text.end()); | 236 first_challenge_text.end()); |
| 238 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, | 237 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, |
| 239 auth_gssapi.ParseChallenge(&first_challenge)); | 238 auth_gssapi.ParseChallenge(&first_challenge)); |
| 240 | 239 |
| 241 EstablishInitialContext(&mock_library); | 240 EstablishInitialContext(&mock_library); |
| 242 std::string auth_token; | 241 std::string auth_token; |
| 243 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, NULL, | 242 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, L"HTTP/intranet.google.com", |
| 244 L"HTTP/intranet.google.com", | |
| 245 &auth_token)); | 243 &auth_token)); |
| 246 std::string second_challenge_text = "Negotiate"; | 244 std::string second_challenge_text = "Negotiate"; |
| 247 HttpAuth::ChallengeTokenizer second_challenge(second_challenge_text.begin(), | 245 HttpAuth::ChallengeTokenizer second_challenge(second_challenge_text.begin(), |
| 248 second_challenge_text.end()); | 246 second_challenge_text.end()); |
| 249 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_REJECT, | 247 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_REJECT, |
| 250 auth_gssapi.ParseChallenge(&second_challenge)); | 248 auth_gssapi.ParseChallenge(&second_challenge)); |
| 251 } | 249 } |
| 252 | 250 |
| 253 TEST(HttpAuthGSSAPITest, ParseChallenge_NonBase64EncodedToken) { | 251 TEST(HttpAuthGSSAPITest, ParseChallenge_NonBase64EncodedToken) { |
| 254 // If a later-round challenge has an invalid base64 encoded token, it should | 252 // If a later-round challenge has an invalid base64 encoded token, it should |
| 255 // be treated as an invalid challenge. | 253 // be treated as an invalid challenge. |
| 256 test::MockGSSAPILibrary mock_library; | 254 test::MockGSSAPILibrary mock_library; |
| 257 HttpAuthGSSAPI auth_gssapi(&mock_library, "Negotiate", | 255 HttpAuthGSSAPI auth_gssapi(&mock_library, "Negotiate", |
| 258 CHROME_GSS_KRB5_MECH_OID_DESC); | 256 CHROME_GSS_KRB5_MECH_OID_DESC); |
| 259 std::string first_challenge_text = "Negotiate"; | 257 std::string first_challenge_text = "Negotiate"; |
| 260 HttpAuth::ChallengeTokenizer first_challenge(first_challenge_text.begin(), | 258 HttpAuth::ChallengeTokenizer first_challenge(first_challenge_text.begin(), |
| 261 first_challenge_text.end()); | 259 first_challenge_text.end()); |
| 262 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, | 260 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, |
| 263 auth_gssapi.ParseChallenge(&first_challenge)); | 261 auth_gssapi.ParseChallenge(&first_challenge)); |
| 264 | 262 |
| 265 EstablishInitialContext(&mock_library); | 263 EstablishInitialContext(&mock_library); |
| 266 std::string auth_token; | 264 std::string auth_token; |
| 267 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, NULL, | 265 EXPECT_EQ(OK, auth_gssapi.GenerateAuthToken(NULL, L"HTTP/intranet.google.com", |
| 268 L"HTTP/intranet.google.com", | |
| 269 &auth_token)); | 266 &auth_token)); |
| 270 std::string second_challenge_text = "Negotiate =happyjoy="; | 267 std::string second_challenge_text = "Negotiate =happyjoy="; |
| 271 HttpAuth::ChallengeTokenizer second_challenge(second_challenge_text.begin(), | 268 HttpAuth::ChallengeTokenizer second_challenge(second_challenge_text.begin(), |
| 272 second_challenge_text.end()); | 269 second_challenge_text.end()); |
| 273 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_INVALID, | 270 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_INVALID, |
| 274 auth_gssapi.ParseChallenge(&second_challenge)); | 271 auth_gssapi.ParseChallenge(&second_challenge)); |
| 275 } | 272 } |
| 276 | 273 |
| 277 } // namespace net | 274 } // namespace net |
| OLD | NEW |