{"record":{"id":"356d0e3335aa6a8c","repo":"t8y2/dbx","slug":"cassandra-jaas-config-s-does-not-contain-cassandr","errorCode":null,"errorMessage":"Cassandra JAAS config %s does not contain CassandraJavaClient","messagePattern":"Cassandra JAAS config (.+?) does not contain CassandraJavaClient","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/cassandra-go/kerberos.go","lineNumber":464,"sourceCode":"\tif config.configPath == \"\" {\n\t\tconfig.configPath = javaSystemProperty(\"java.security.krb5.conf\")\n\t}\n}\n\nfunc (config *kerberosConfig) applyKerberosConfigEnvironment() {\n\tif config.configPath == \"\" {\n\t\tconfig.configPath = os.Getenv(\"KRB5_CONFIG\")\n\t}\n}\n\nfunc (config *kerberosConfig) applyJAASConfig(path string) error {\n\tcontents, err := os.ReadFile(path)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"read Cassandra JAAS config %s: %w\", path, err)\n\t}\n\tblock := jaasBlockPattern.FindSubmatch(contents)\n\tif len(block) != 2 {\n\t\treturn fmt.Errorf(\"Cassandra JAAS config %s does not contain CassandraJavaClient\", path)\n\t}\n\tmodule := jaasModulePattern.FindSubmatch(block[1])\n\tif len(module) != 2 {\n\t\treturn fmt.Errorf(\"CassandraJavaClient in %s does not configure Krb5LoginModule\", path)\n\t}\n\toptions := map[string]string{}\n\tfor _, match := range jaasOptionPattern.FindAllSubmatch(module[1], -1) {\n\t\tvalue := firstNonEmpty(string(match[2]), string(match[3]), string(match[4]))\n\t\toptions[strings.ToLower(string(match[1]))] = value\n\t}\n\tif config.principal == \"\" {\n\t\tconfig.principal = options[\"principal\"]\n\t}\n\tif config.keytabPath == \"\" {\n\t\tconfig.keytabPath = options[\"keytab\"]\n\t}\n\tif config.ccachePath == \"\" {\n\t\tconfig.ccachePath = options[\"ticketcache\"]","sourceCodeStart":446,"sourceCodeEnd":482,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/cassandra-go/kerberos.go#L446-L482","documentation":"Returned by applyJAASConfig when the JAAS file was read successfully but contains no CassandraJavaClient login block (the regex jaasBlockPattern found no matching entry). The Kerberos authenticator reads its principal/keytab settings from that named block, so a JAAS file with other entries only (or a different block name) is rejected.","triggerScenarios":"Thrown at agents/drivers/cassandra-go/kerberos.go:464 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add a CassandraJavaClient { ... } block to the JAAS config with com.sun.security.auth.module.Krb5LoginModule and the correct principal/keytab","Rename any existing block that uses a different client name to CassandraJavaClient","Check for typos in the block name and file encoding"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}