aserto-dev / aserto-spring

Aserto authorization filter for Spring Security.
Apache License 2.0
3 stars 1 forks source link

Handle ResourceMapperError in AsertoAuthorizationManager.check #12

Closed ronenh closed 3 months ago

ronenh commented 3 months ago

Proposed fix for https://github.com/aserto-dev/aserto-spring/issues/11.

ResourceMapper.getResource may throw exceptions of type ResourceMapperError but AsertoAuthorizationManager.check doesn't handle those errors. The result is a 500 response.

With this proposed change, the AsertoAuthorizationManager catches the ResourceMapperError, logs it, and returns AuthorizationDecision(false) to deny access.

The ideal outcome when a request is made to a path that matches no routes would be a 404, but the authorization manager has no definitive way of determining the underlying cause of the ResourceMapperError and even if it did, @PreAuthorize requires a boolean value so the only viable options are to either allow or deny the call.