The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

WebService::Cmis::Agent::TokenAuth - token-based authentication handler

DESCRIPTION

This user agent adds tocken-based authentication for subsequent calls to the CMIS backend while the first one is still performed using HTTP basic auth. Alfresco is one server that implements token-based authentication.

  my $client = WebService::Cmis::getClient(
    url => "http://cmis.alfresco.com/service/cmis",
    useragent => new WebService::Cmis::Agent::TokenAuth(
      loginUrl => "http://cmis.alfresco.com/service/api/login?u={username}&pw={password}",
      logoutUrl => "http://cmis.alfresco.com/service/api/login/ticket/{ticket}"
    )
  );
  
  $client->login(
    user => "user",
    password => "password",
  );

  my $repo = $client->getRepository;

Parent class: WebService::Cmis::Agent

METHODS

new(%params)

Create a new WebService::Cmis::Agent::TokenAuth. It remembers the session state using a token that is used instead of the normal user credentials to authenticate.

Parameters:

  • user

  • password

  • loginUrl - url used for ticket-based authentication; example:

      "http://cmis.alfresco.com/service/api/login?u={username}&pw={password}"
  • logoutUrl - url used for ticket-based authentication; example:

      "http://cmis.alfresco.com/service/api/login/ticket/{ticket}"

See LWP::UserAgent for more options.

login(%params) -> $ticket

logs in to the web service

Parameters:

  • user

  • password

  • ticket

Login using basic auth. A ticket will be aquired to be used for later logins for the same user.

  my $ticket = $client->login({
    user => "user", 
    password => "pasword"
  });

  $client->login({
    user => "user", 
    ticket => "ticket"
  });
logout()

logs out of the web service deleting a ticket previously aquired

get_basic_credentials()

overrides the method in LWP::UserAgent to implement the given authentication mechanism.

COPYRIGHT AND LICENSE

Copyright 2012-2013 Michael Daum

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://dev.perl.org/licenses/artistic.html.