struct http_auth_credentials creds;
/* no authentication specified */
- if (doveadm_settings->doveadm_api_key == NULL &&
+ if (doveadm_settings->doveadm_api_key[0] == '\0' &&
*conn->client.set->doveadm_password == '\0') {
http_server_request_fail_close(conn->http_server_request, 500, "Internal Server Error");
i_error("No authentication defined in configuration. Add API key or password");
if (strcmp(creds.data, str_c(b64_value)) == 0) auth = TRUE;
else i_error("Invalid authencition attempt to HTTP API");
}
- else if (strcasecmp(creds.scheme, "X-Doveadm-API") == 0 && doveadm_settings->doveadm_api_key != NULL) {
+ else if (strcasecmp(creds.scheme, "X-Doveadm-API") == 0 && doveadm_settings->doveadm_api_key[0] != '\0') {
string_t *b64_value = str_new(conn->client.pool, 32);
base64_encode(doveadm_settings->doveadm_api_key, strlen(doveadm_settings->doveadm_api_key), b64_value);
if (strcmp(creds.data, str_c(b64_value)) == 0) auth = TRUE;
}
if (auth == FALSE) {
conn->http_response = http_server_response_create(conn->http_server_request, 401, "Authentication required");
- if (doveadm_settings->doveadm_api_key != NULL)
+ if (doveadm_settings->doveadm_api_key[0] != '\0')
http_server_response_add_header(conn->http_response,
"WWW-Authenticate", "X-Dovecot-API Realm=\"doveadm\""
);