Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feil scope returnerer 401 Unauthorized. Burde det være 403 Forbidden? #854

Open
dagframstad opened this issue Feb 27, 2024 · 4 comments
Open

Comments

@dagframstad
Copy link

Iht https://datatracker.ietf.org/doc/html/rfc6750#section-3.1 skal feil scope gi 403 og ikke 401.

@jan-olaveide
Copy link
Collaborator

Her trenger vi mer info og en test som reproduserer

@dagframstad
Copy link
Author

dagframstad commented Feb 27, 2024

i ProtectedRestControllerIntegrationTest

@Test
    fun signedTokenInRequestWithWrongScopeShouldReturn403() {
        val now = Date()
        expectStatusCode(
                PROTECTED_WITH_SCOPE,
                issueToken("knownissuer2", Builder()
                    .jwtID(UUID.randomUUID().toString())
                    .claim("scope", "foo.foo")
                    .notBeforeTime(now)
                    .issueTime(now)
                    .expirationTime(Date(now.time + MINUTES.toMillis(1)))
                    .build()).serialize(),
                FORBIDDEN)
    }

i AProtectedRestController

@ProtectedWithClaims(issuer = ISSUER_SHORTNAME2, claimMap = ["scope=foo.bar"])
    @GetMapping(PROTECTED_WITH_SCOPE)
    fun protectedWithClaimsScope() = "protected with required scope"
// i companion object:
const val PROTECTED_WITH_SCOPE = "/protected/scope"

Dessuten så det ikke ut til at expectStatusCode() virket, testene ble grønne uansett statuskode som ble forventet. Endret til

 private fun expectStatusCode(uri : String, token : String, httpStatus : HttpStatus) {
        mockMvc.perform(get(uri)
            .header(AUTHORIZATION_HEADER, "Bearer $token"))
            .andDo(print())
            .andExpect(status().`is`(httpStatus.value()))
    }

Usikker på om feil på alt av claims skal gi 403 eller om det bare er scope (har ikke googlet).
Kan det tenkes at det skal gis 403 om token er gyldig token, men at et eller flere claims mangler?
Er på litt tynn is her om hvilke situasjoner som skal gi 401 og hvilke som skal gi 403.

@dagframstad
Copy link
Author

@jan-olaveide trenger du mer?

@jan-olaveide
Copy link
Collaborator

jan-olaveide commented Mar 5, 2024

Bra catch med expectStatusCode. Jeg synes vi skal finne ut av dette under i samme slengen

Usikker på om feil på alt av claims skal gi 403 eller om det bare er scope (har ikke googlet).
Kan det tenkes at det skal gis 403 om token er gyldig token, men at et eller flere claims mangler?
Er på litt tynn is her om hvilke situasjoner som skal gi 401 og hvilke som skal gi 403.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants