*req->db->set.active_value != '\0') {
const char *active_value =
auth_fields_find(req->fields, req->db->set.active_attribute);
- if (active_value != NULL &&
- strcmp(req->db->set.active_value, active_value) != 0) {
- *error_r = "Provided token is not valid";
+ if (active_value != NULL) {
+ if (strcmp(req->db->set.active_value, active_value) == 0) {
+ e_debug(authdb_event(req->auth_request),
+ "oauth2 active_attribute check succeeded");
+ } else {
+ e_debug(authdb_event(req->auth_request),
+ "oauth2 active_attribute check failed: expected %s=\"%s\" but got \"%s\"",
+ req->db->set.active_attribute,
+ req->db->set.active_value,
+ active_value);
+ *error_r = "Provided token is not valid";
+ *result_r = PASSDB_RESULT_PASSWORD_MISMATCH;
+ return FALSE;
+ }
+ } else {
+ e_debug(authdb_event(req->auth_request),
+ "oauth2 active_attribute \"%s\" not found in oauth2 server's response",
+ req->db->set.active_attribute);
+ *error_r = "Missing active_attribute from token";
*result_r = PASSDB_RESULT_PASSWORD_MISMATCH;
return FALSE;
}
+ } else {
+ e_debug(authdb_event(req->auth_request),
+ "oauth2 active_attribute is not configured; skipping the check");
}
return TRUE;
}