Commit 2d082bd
committed
fix(auth): stop misreporting login failures and revoking credentials
`HubApi.login` caught `HubError` -- the base class of every SDK exception --
and re-raised everything as `AuthenticationError("...token was rejected by
the server")` while calling `clear_token()`. Three problems followed:
* network, timeout and 5xx failures were all reported as an invalid token
* the server's own message and RequestId were discarded, leaving no way to
diagnose the failure or trace it server-side
* a failed attempt deleted the credential already on disk, so a single
mistyped token logged the user out of a working session
Both ModelScope sites answer an unknown token with the same HTTP 400 and
business code 10010103009, so the server cannot distinguish "invalid token"
from "token issued by the other site" -- only the client knows which site it
addressed, which is why that disambiguation now happens here.
Changes:
* classify 4xx by the server business code, mapping 10010103009 to
AuthenticationError (E3001); 5xx stays a retryable ServerError so a
transient outage is never reclassified as permanent
* propagate non-authentication failures unchanged, preserving their type,
error code, message and RequestId
* leave persisted credentials untouched on failure and roll back only the
in-memory state of the instance
* probe the peer site when the endpoint was not pinned, and point at
`--endpoint` when the token turns out to be valid there
* centralise endpoint normalisation in `HubConfig.normalize_endpoint` so a
bare or upper-case scheme no longer fails deep inside the transport layer
* remove every credential artefact together on teardown, and propagate a
cleared token to an already constructed legacy client
* print the full error cause chain under `--verbose`
Adds 29 regression tests that stub only the `requests` transport, so the
config, facade, legacy client and error-translation layers all take part.1 parent 74a6357 commit 2d082bd
7 files changed
Lines changed: 687 additions & 49 deletions
File tree
- src/modelscope_hub
- cli
- tests
- cli
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
159 | | - | |
| 159 | + | |
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
| |||
188 | 188 | | |
189 | 189 | | |
190 | 190 | | |
191 | | - | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
192 | 194 | | |
193 | 195 | | |
194 | 196 | | |
| |||
483 | 485 | | |
484 | 486 | | |
485 | 487 | | |
486 | | - | |
487 | | - | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
488 | 501 | | |
489 | 502 | | |
490 | 503 | | |
| |||
497 | 510 | | |
498 | 511 | | |
499 | 512 | | |
| 513 | + | |
| 514 | + | |
500 | 515 | | |
501 | 516 | | |
502 | 517 | | |
| |||
505 | 520 | | |
506 | 521 | | |
507 | 522 | | |
508 | | - | |
509 | | - | |
510 | | - | |
511 | | - | |
512 | | - | |
513 | | - | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
514 | 529 | | |
515 | 530 | | |
516 | 531 | | |
| |||
524 | 539 | | |
525 | 540 | | |
526 | 541 | | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
527 | 627 | | |
528 | 628 | | |
529 | 629 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
92 | | - | |
| 92 | + | |
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
194 | 233 | | |
195 | 234 | | |
196 | 235 | | |
| |||
200 | 239 | | |
201 | 240 | | |
202 | 241 | | |
| 242 | + | |
203 | 243 | | |
204 | | - | |
| 244 | + | |
205 | 245 | | |
206 | 246 | | |
207 | 247 | | |
| |||
218 | 258 | | |
219 | 259 | | |
220 | 260 | | |
221 | | - | |
222 | | - | |
223 | | - | |
| 261 | + | |
224 | 262 | | |
225 | 263 | | |
226 | | - | |
227 | | - | |
228 | | - | |
| 264 | + | |
229 | 265 | | |
230 | 266 | | |
231 | 267 | | |
| |||
235 | 271 | | |
236 | 272 | | |
237 | 273 | | |
238 | | - | |
| 274 | + | |
239 | 275 | | |
240 | 276 | | |
241 | 277 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
41 | 49 | | |
42 | 50 | | |
43 | 51 | | |
| |||
85 | 93 | | |
86 | 94 | | |
87 | 95 | | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
| 96 | + | |
92 | 97 | | |
93 | 98 | | |
94 | 99 | | |
| |||
101 | 106 | | |
102 | 107 | | |
103 | 108 | | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
104 | 128 | | |
105 | 129 | | |
106 | 130 | | |
| |||
186 | 210 | | |
187 | 211 | | |
188 | 212 | | |
189 | | - | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
190 | 219 | | |
191 | 220 | | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
197 | 226 | | |
198 | 227 | | |
199 | 228 | | |
| |||
0 commit comments