[
https://issues.apache.org/jira/browse/CASSSIDECAR-331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18016042#comment-18016042
]
Saranya Krishnakumar commented on CASSSIDECAR-331:
--------------------------------------------------
Thanks Yifan, makes sense. For authentication and authorization, sidecar schema
may not be necessary with custom implementation of authentication handler and
authorization provider. But if we are removing is_enabled flag, then for the
default implementations we will not require the validate step. I can remove
is_enabled flag as part of this patch since everyone is good with removing the
flag.
> NullPointerException When Authentication Is Enabled but sidecar_internal
> Schema Is Disabled
> -------------------------------------------------------------------------------------------
>
> Key: CASSSIDECAR-331
> URL: https://issues.apache.org/jira/browse/CASSSIDECAR-331
> Project: Sidecar for Apache Cassandra
> Issue Type: Bug
> Components: Security
> Reporter: Isaac Reath
> Assignee: Saranya Krishnakumar
> Priority: Major
> Time Spent: 20m
> Remaining Estimate: 0h
>
> When authentication is enabled but the sidecar_internal schema is disabled, a
> NullPointerException occurs in Sidecar. This results in a generic 401
> Unauthorized response:
> {"status":"Unauthorized","code":401,"message":"Unexpected error encountered
> in handler"}
>
>
> The issue originates in
> {{{}SystemAuthDatabaseAccessor#findRoleFromIdentity{}}}, where
> {{tableSchema}} is null. The {{SystemAuthDatabaseAccessor.tableSchema}}
> object initialized through the
> {{SidecarInternalKeyspace#registerTableSchema}} function on startup. Although
> {{SidecarInternalKeyspace#registerTableSchema}} is always called on startup,
> it is a no-op if {{is_enabled}} is set to {{{}false{}}}. As a result,
> {{tableSchema}} is never initialized, leading to the NPE when we go to use it
> for authentication. Diagnosing this requires running Sidecar in a debugger,
> as Vert.x does not log the root exception clearly.
> Since access_control.enabled implicitly depends on {{{}schema.is_enabled{}}},
> this should be validated at startup. If {{access_control}} is enabled but
> {{schema}} is not, Sidecar should fail fast with a clear error.
> Proposed Fix:
> Add startup validation to check for this config mismatch & fail with a clear
> error stating that authentication requires sidecar_internal to be enabled.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]