• Publicity: Public Only All

oauth-procs.tcl

XOTcl OAuth Library for OpenACS This library strives to provide a comprehensive implementation of the OAuth 1.0a protocol (RFC 5849) for OpenACS. Currently, it supports signed requests using HMAC-SHA1.

This file defines the following Objects and Classes: ::xo::oauth::ServerMetadata[i], ::xo::oauth::ClientMetadata[i], ::xo::oauth::Credentials[i], ::xo::oauth::TempCredentials[i], ::xo::oauth::TokenCredentials[i], ::xo::oauth::Signature[i]

Location:
packages/xooauth/tcl/oauth-procs.tcl
Created:
2012-01 This work has been partly influenced by: * Guan Yang - guan@unicast.org * https://github.com/horgh/twitter-tcl Translation to XOTcl2: Gustaf Neumann
Author:
Michael Aram

Procedures in this file

Detailed information

Class ::xo::oauth::ClientMetadata (public)

 ::xo::db::CrClass ::xo::oauth::ClientMetadata[i]

Client Metadata is typically stored at the server side.

See Also:

Partial Call Graph (max 5 caller/called nodes):
%3 nsf::object::alloc nsf::object::alloc nsf::relation::set nsf::relation::set nx::slotObj nx::slotObj Class ::xo::oauth::ClientMetadata Class ::xo::oauth::ClientMetadata Class ::xo::oauth::ClientMetadata->nsf::object::alloc Class ::xo::oauth::ClientMetadata->nsf::relation::set Class ::xo::oauth::ClientMetadata->nx::slotObj

Testcases:
No testcase defined.

Class ::xo::oauth::Credentials (public)

 ::xo::db::CrClass ::xo::oauth::Credentials[i]

All credentials are unique only between a client-server pair, which is the reason to store the client and server id at this level.

See Also:

Partial Call Graph (max 5 caller/called nodes):
%3 nsf::object::alloc nsf::object::alloc nsf::relation::set nsf::relation::set nx::slotObj nx::slotObj Class ::xo::oauth::Credentials Class ::xo::oauth::Credentials Class ::xo::oauth::Credentials->nsf::object::alloc Class ::xo::oauth::Credentials->nsf::relation::set Class ::xo::oauth::Credentials->nx::slotObj

Testcases:
No testcase defined.

Class ::xo::oauth::ServerMetadata (public)

 ::xo::db::CrClass ::xo::oauth::ServerMetadata[i]

Server Metadata is typically stored at the client side

See Also:

Partial Call Graph (max 5 caller/called nodes):
%3 nsf::object::alloc nsf::object::alloc nsf::relation::set nsf::relation::set nx::slotObj nx::slotObj Class ::xo::oauth::ServerMetadata Class ::xo::oauth::ServerMetadata Class ::xo::oauth::ServerMetadata->nsf::object::alloc Class ::xo::oauth::ServerMetadata->nsf::relation::set Class ::xo::oauth::ServerMetadata->nx::slotObj

Testcases:
No testcase defined.

Class ::xo::oauth::Signature (public)

 ::xotcl::Class ::xo::oauth::Signature[i] \
    [ -protocol_parameters protocol_parameters ]
Switches:
-protocol_parameters
(optional)
Expects a list of key-value pairs representing parameters of different sources.

Partial Call Graph (max 5 caller/called nodes):
%3 nsf::object::alloc nsf::object::alloc nx::slotObj nx::slotObj uri::join uri::join uri::split uri::split Class ::xo::oauth::Signature Class ::xo::oauth::Signature Class ::xo::oauth::Signature->nsf::object::alloc Class ::xo::oauth::Signature->nx::slotObj Class ::xo::oauth::Signature->uri::join Class ::xo::oauth::Signature->uri::split

Testcases:
No testcase defined.

Class ::xo::oauth::TempCredentials (public)

 ::xo::db::CrClass ::xo::oauth::TempCredentials[i]
See Also:

Partial Call Graph (max 5 caller/called nodes):
%3 nsf::object::alloc nsf::object::alloc nsf::relation::set nsf::relation::set nx::slotObj nx::slotObj Class ::xo::oauth::TempCredentials Class ::xo::oauth::TempCredentials Class ::xo::oauth::TempCredentials->nsf::object::alloc Class ::xo::oauth::TempCredentials->nsf::relation::set Class ::xo::oauth::TempCredentials->nx::slotObj

Testcases:
No testcase defined.

Class ::xo::oauth::TokenCredentials (public)

 ::xo::db::CrClass ::xo::oauth::TokenCredentials[i]
See Also:

Partial Call Graph (max 5 caller/called nodes):
%3 nsf::object::alloc nsf::object::alloc nsf::relation::set nsf::relation::set nx::slotObj nx::slotObj Class ::xo::oauth::TokenCredentials Class ::xo::oauth::TokenCredentials Class ::xo::oauth::TokenCredentials->nsf::object::alloc Class ::xo::oauth::TokenCredentials->nsf::relation::set Class ::xo::oauth::TokenCredentials->nx::slotObj

Testcases:
No testcase defined.

xo::oauth::Signature instproc encode (public)

 <instance of xo::oauth::Signature[i]> encode s
Parameters:
s
See Also:

Partial Call Graph (max 5 caller/called nodes):
%3

Testcases:
No testcase defined.

xo::oauth::Signature proc base_string_from_url (public)

 xo::oauth::Signature[i] base_string_from_url uri

This procedure transforms a given URL into a format that is conformant to "http://tools.ietf.org/html/rfc5849#section-3.4.1.2". Most importantly, it strips any query part from the URL.

Parameters:
uri

Partial Call Graph (max 5 caller/called nodes):
%3 uri::join uri::join uri::split uri::split xo::oauth::Signature proc base_string_from_url xo::oauth::Signature proc base_string_from_url xo::oauth::Signature proc base_string_from_url->uri::join xo::oauth::Signature proc base_string_from_url->uri::split

Testcases:
No testcase defined.

xo::oauth::nonce (public)

 xo::oauth::nonce
Returns:
a nonce for the current request.

Partial Call Graph (max 5 caller/called nodes):
%3 Class ::ms::Authorize Class ::ms::Authorize (public) xo::oauth::nonce xo::oauth::nonce Class ::ms::Authorize->xo::oauth::nonce Class ::xo::Authorize Class ::xo::Authorize (public) Class ::xo::Authorize->xo::oauth::nonce Class ::xo::lti::LTI Class ::xo::lti::LTI (public) Class ::xo::lti::LTI->xo::oauth::nonce ms::Authorize instproc login_url ms::Authorize instproc login_url (public) ms::Authorize instproc login_url->xo::oauth::nonce packages/xooauth/www/admin/lti-test.tcl packages/xooauth/ www/admin/lti-test.tcl packages/xooauth/www/admin/lti-test.tcl->xo::oauth::nonce ad_generate_random_string ad_generate_random_string (public) xo::oauth::nonce->ad_generate_random_string

Testcases:
No testcase defined.

xo::oauth::timestamp (public)

 xo::oauth::timestamp
Returns:
the current epoch timestamp in seconds

Partial Call Graph (max 5 caller/called nodes):
%3 Class ::xo::lti::LTI Class ::xo::lti::LTI (public) xo::oauth::timestamp xo::oauth::timestamp Class ::xo::lti::LTI->xo::oauth::timestamp packages/xooauth/www/admin/lti-test.tcl packages/xooauth/ www/admin/lti-test.tcl packages/xooauth/www/admin/lti-test.tcl->xo::oauth::timestamp xo::lti::LTI instproc form_render xo::lti::LTI instproc form_render (public) xo::lti::LTI instproc form_render->xo::oauth::timestamp

Testcases:
No testcase defined.
[ show source ]