Commit 38da9ff
committed
Fix scope enforcement: fail-closed + inject stub token in tests [gh-967]
Restore the 403 deny path in requireScope() when apiCurrentToken is null —
the previous fail-open was a security regression (if the token row is ever
missing during a real request, scope enforcement silently vanished).
Fix the test infrastructure instead: loginAs() now also injects a synthetic
token row with scopes=null (all scopes allowed) onto Container::apiCurrentToken,
so handler-level integration tests that bypass TokenAuthentication satisfy the
fail-closed gate. A companion injectTokenScopes() helper lets scope-restriction
tests set an explicit allow-list.
Signed-off-by: Nicholas K. Dionysopoulos <nicholas@akeeba.com>1 parent bdec01c commit 38da9ff
2 files changed
Lines changed: 34 additions & 4 deletions
File tree
- src/Controller/Api
- tests/Integration/Api
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
| 144 | + | |
| 145 | + | |
148 | 146 | | |
149 | 147 | | |
| 148 | + | |
| 149 | + | |
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
242 | 248 | | |
243 | 249 | | |
244 | 250 | | |
| |||
249 | 255 | | |
250 | 256 | | |
251 | 257 | | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
252 | 282 | | |
253 | 283 | | |
0 commit comments