Skip to content

Commit 4874227

Browse files
Merge pull request #516 from tableau/dev_auth_not_required_error
Changing error code for AuthErrorStates.NotRequired to 406
2 parents c6fc744 + ddb5eab commit 4874227

File tree

7 files changed

+22
-11
lines changed

7 files changed

+22
-11
lines changed

CHANGELOG

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Changelog
22

3+
## v2.4.0
4+
5+
### Improvements
6+
7+
- Add toggle to turn off evaluate API.
8+
9+
### Breaking changes
10+
11+
- Changing error code to 406 when server not configured for authentication
12+
but credentials are provided by client.
13+
314
## v2.3.2
415

516
### Improvements

tabpy/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.3.2
1+
2.4.0

tabpy/tabpy_server/handlers/base_handler.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ def should_fail_with_auth_error(self):
421421

422422
def fail_with_auth_error(self):
423423
"""
424-
Prepares server 401 response and server 400 response depending
424+
Prepares server 401 response and server 406 response depending
425425
on the value of the self.auth_error flag
426426
"""
427427
if self.auth_error == AuthErrorStates.NotAuthorized:
@@ -434,11 +434,11 @@ def fail_with_auth_error(self):
434434
log_message="Invalid credentials provided.",
435435
)
436436
else:
437-
self.logger.log(logging.ERROR, "Failing with 400 for Bad Request")
438-
self.set_status(400)
437+
self.logger.log(logging.ERROR, "Failing with 406 for Not Acceptable")
438+
self.set_status(406)
439439
self.set_header("WWW-Authenticate", f'Basic realm="{self.tabpy_state.name}"')
440440
self.error_out(
441-
400,
442-
info="Bad request.",
443-
log_message="Username or Password provided when authentication not available",
441+
406,
442+
info="Not Acceptable",
443+
log_message="Username or password provided when authentication not available.",
444444
)

tests/unit/server_tests/test_endpoint_handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,4 +161,4 @@ def test_creds_no_auth_fails(self):
161161
)
162162
},
163163
)
164-
self.assertEqual(400, response.code)
164+
self.assertEqual(406, response.code)

tests/unit/server_tests/test_endpoints_handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,4 +143,4 @@ def test_creds_no_auth_fails(self):
143143
)
144144
},
145145
)
146-
self.assertEqual(400, response.code)
146+
self.assertEqual(406, response.code)

tests/unit/server_tests/test_evaluation_plane_handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ def test_creds_no_auth_fails(self):
285285
)
286286
},
287287
)
288-
self.assertEqual(400, response.code)
288+
self.assertEqual(406, response.code)
289289

290290

291291
class TestEvaluationPlainHandlerDisabled(AsyncHTTPTestCase):

tests/unit/server_tests/test_service_info_handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,4 +137,4 @@ def test_given_server_with_no_auth_and_password_expect_correct_info_response(sel
137137
}
138138

139139
response = self.fetch("/info", headers=header)
140-
self.assertEqual(response.code, 400)
140+
self.assertEqual(response.code, 406)

0 commit comments

Comments
 (0)