}
}
- ret = cli_credentials_get_ccache(cred, event_ctx, lp_ctx,
- &ccache, error_string);
+
+ if (cred->ccache_obtained == CRED_UNINITIALISED) {
+ /* Only attempt to re-acquire ccache if it is not already in place.
+ * this is important for client-side use within frameworks with already acquired tickets
+ * like Apache+mod_auth_kerb+Python
+ */
+ ret = cli_credentials_get_ccache(cred, event_ctx, lp_ctx,
+ &ccache, error_string);
+ } else {
+ ccache = cred->ccache;
+ }
+
if (ret) {
if (cli_credentials_get_kerberos_state(cred) == CRED_MUST_USE_KERBEROS) {
DEBUG(1, ("Failed to get kerberos credentials (kerberos required): %s\n", *error_string));