Я работаю над Java веб-приложений и теперь я пытаюсь подключить мой веб-сайт с QTIWorksГенерация OAuth подписи в Java
У меня есть ключ потребителя и секрет, мне нужно сгенерировать OAuth подпись, чтобы связаться с QTIWorks через LTI
<html>
<head> </head>
<body>
<form action="https://webapps.ph.ed.ac.uk/qtiworks-dev2/lti/domainlaunch" name="ltiLaunchForm" id="ltiLaunchForm" method="post" target="basicltiLaunchFrame" enctype="application/x-www-form-urlencoded" style="display: block;">
<input type="hidden" name="context_id" value="cid-00113">
<input type="hidden" name="context_label" value="SI106">
<input type="hidden" name="context_title" value="Design of Personal Environments 1">
<input type="hidden" name="ext_note" value="Instructor from first course">
<input type="hidden" name="launch_presentation_locale" value="en_us">
<input type="hidden" name="lis_person_contact_email_primary" value="[email protected]">
<input type="hidden" name="lis_person_name_family" value="Instructor">
<input type="hidden" name="lis_person_name_given" value="Siân">
<input type="hidden" name="lis_person_sourcedid" value="school.edu:user">
<input type="hidden" name="resource_link_description" value="This learning space is private">
<input type="hidden" name="resource_link_id" value="res-0012612">
<input type="hidden" name="resource_link_title" value="My Weekly Wiki">
<input type="hidden" name="roles" value="Instructor">
<input type="hidden" name="tool_consumer_info_product_family_code" value="sakai-unit">
<input type="hidden" name="tool_consumer_info_version" value="0.9">
<input type="hidden" name="tool_consumer_instance_description" value="University of School (LMSng)">
<input type="hidden" name="tool_consumer_instance_guid" value="lmsng.school.edu">
<input type="hidden" name="user_id" value="user-0016">
<input type="hidden" name="oauth_callback" value="about:blank">
<input type="hidden" name="lis_outcome_service_url" value="....">
<input type="hidden" name="lis_result_sourcedid" value="{"zap" : "Siân JSON 1234 Sourcedid <>&lt;"}">
<input type="hidden" name="custom_simple_key" value="custom_simple_value">
<input type="hidden" name="custom_complex____________key" value="[email protected]#$^*(){}[]½Value">
<input type="hidden" name="lti_version" value="LTI-1p0">
<input type="hidden" name="lti_message_type" value="basic-lti-launch-request">
<input type="submit" name="ext_submit" value="Finish Launch">
<input type="hidden" name="oauth_version" value="1.0">
<input type="hidden" name="oauth_nonce" value="505005bff1c2cf2e1750ed914e489a9b">
<input type="hidden" name="oauth_timestamp" value="1427022367">
<input type="hidden" name="oauth_consumer_key" value="my consumer key">
<input type="hidden" name="oauth_signature_method" value="HMAC-SHA1">
<input type="hidden" name="oauth_signature" value="I need generate this value">
<input type="hidden" name="ext_submit" value="Finish Launch">
<input type="submit" name="submit" value="submit"></form>
<iframe name="basicltiLaunchFrame" id="basicltiLaunchFrame" src="" width="100%" height="900" scrolling="auto" frameborder="1" transparency="">
</iframe>
</body>
Мне нужно создать OAuth подпись на этой линии
<input type="hidden" name="oauth_signature" value="I need generate this value">
Как я могу это сделать?
Это на самом деле не совсем правильно. Это не так просто, как просто запуск SHA-1 - вам нужно вычислить базовую строку на основе всех свойств в позе * и * URL-адреса, которые вы отправили, добавить ключ и секрет, вычислить подпись, а затем добавить подпись к данным сообщения. LTI 1.x использует OAuth 1.0a https://tools.ietf.org/html/rfc5849 для его подписания. – drchuck