Я пытаюсь создать связь между наборами данных (пакетами) CKAN из моей командной строки Linux с помощью следующей команды
curl -v http://192.168.1.200/ckan/api/action/package_relationship_create -d '{"subject":"rkb-explorer-irit","object":"rkb-explorer-wiki","type":"dependency_of","comment":"some comment"}' -H "Authorization:76985a7a-f550-4b8d-8352-d7b828460fdc"
и со следующим кодом PHP
$postFields = array("subject" => $subject, "object" => $object, "type" => $type, "comment" => $comment);
$ch = curl_init($url);
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Content-type: application/json'),
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($postFields),
CURLOPT_HTTPAUTH => $apiKey
);
curl_setopt_array( $ch, $options );
$result = curl_exec($ch);
и это работает. Но у меня проблема с авторизацией. Независимо от того, предоставляю ли я ключ API или нет, отношения все равно создаются!
Итак, как настроить мой CKAN, чтобы исключить такую ситуацию? Когда я пытаюсь создать набор данных из командной строки без ключа API, он мне отказывает, и в этой ситуации все в порядке.
Как я уже сказал, я хочу отключить любое действие по созданию, обновлению или удалению с неправильным API и без API. Как я могу это сделать?