const char *active_value;
/* client identificator for oauth2 server */
const char *client_id;
+ /* not really used, but have to present by oauth2 specs */
+ const char *client_secret;
/* template to expand into passdb */
const char *pass_attrs;
DEF_STR(active_attribute),
DEF_STR(active_value),
DEF_STR(client_id),
+ DEF_STR(client_secret),
DEF_INT(timeout_msecs),
DEF_INT(max_idle_time_msecs),
DEF_INT(max_parallel_connections),
.active_attribute = "",
.active_value = "",
.client_id = "",
+ .client_secret = "",
.pass_attrs = "",
.rawlog_dir = "",
.timeout_msecs = 0,
db->oauth2_set.grant_url = db->set.grant_url,
db->oauth2_set.introspection_url = db->set.introspection_url;
db->oauth2_set.client_id = db->set.client_id;
+ db->oauth2_set.client_secret = db->set.client_secret;
db->oauth2_set.timeout_msecs = db->set.timeout_msecs;
db->oauth2_set.send_auth_headers = db->set.send_auth_headers;
db->oauth2_set.use_grant_password = db->set.use_grant_password;
http_url_escape_param(payload, password);
str_append(payload, "&client_id=");
http_url_escape_param(payload, req->set->client_id);
+ if (*req->set->client_secret != '\0') {
+ str_append(payload, "&client_secret=");
+ http_url_escape_param(payload, req->set->client_secret);
+ }
http_client_request_add_header(req->req, "Content-Type",
"application/x-www-form-urlencoded");
http_client_request_set_payload_data(req->req, payload->data, payload->used);