[ https://issues.apache.org/jira/browse/CASSSIDECAR-331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18016126#comment-18016126 ]
Yifan Cai commented on CASSSIDECAR-331: --------------------------------------- Having a separate discussion sounds reasonable, as this is a major behavior change. To add context on requiring a sidecar schema: when authentication is not enabled, the corresponding statement should not be prepared. Currently, the implementation relies solely on the toggle {{SchemaKeyspaceConfiguration#isEnabled}}, which mixes responsibilities. Instead, schema initialization should be driven by the corresponding feature. > 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: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org