NAME

Lemonldap::NG::Manager::SOAPServer - Perl extension written to access to Lemonldap::NG Web-SSO configuration or sessions via SOAP.

SYNOPSIS

Server side

use Lemonldap::NG::Manager::SOAPServer;
Lemonldap::NG::Manager::SOAPServer->start(
            configStorage => {
                    type    => "File",
                    dirName => "/usr/share/doc/lemonldap-ng/examples/conf/"
            },
            # 2 types are available :
            #   * 'config' for configuration access
            #   * 'sessions' for sessions access
            type          => 'sessions',
            # For 'sessions' type, you can choose exported functions (get
            # only by default):
            AuthorizedFunctions => 'new get set',
);

Client side

See Lemonldap::NG::Manager::Conf::SOAP for documentation on client side configuration access.

See Lemonldap::NG::Manager::Apache::Session::SOAP for documentation on client side sessions access.

Configuration access

Area protection

package My::Package;
use Lemonldap::NG::Handler::SharedConf;
@ISA = qw(Lemonldap::NG::Handler::SharedConf);

__PACKAGE__->init ( {
    localStorage        => "Cache::FileCache",
    localStorageOptions => {
              'namespace'          => 'MyNamespace',
              'default_expires_in' => 600,
    },
    configStorage       => {
              type  => 'SOAP',
              proxy => 'http://manager.example.com/soapserver.pl',
              # If soapserver is protected by HTTP Basic:
              User     => 'http-user',
              Password => 'pass',
    },
    https               => 0,
} );

Authentication portal

use Lemonldap::NG::Portal::SharedConf;

my $portal = Lemonldap::NG::Portal::SharedConf->new ( {
        configStorage => {
                type    => 'SOAP',
                proxy   => 'http://localhost/devel/test.pl',
                # If soapserver is protected by HTTP Basic:
                User     => 'http-user',
                Password => 'pass',
        }
});
# Next as usual...
if($portal->process()) {
  ...

Manager

use Lemonldap::NG::Manager;

my $m=new Lemonldap::NG::Manager(
     {
         configStorage=>{
                type  => 'SOAP',
                proxy => 'http://localhost/devel/test.pl'
                # If soapserver is protected by HTTP Basic:
                User     => 'http-user',
                Password => 'pass',
         },
          dhtmlXTreeImageLocation=> "/imgs/",
      }
) or die "Unable to start";

$m->doall();

Sessions access

Use simply Lemonldap::NG::Manager::Apache::Session::SOAP in the 'Apache session
module'parameter (instead of Apache::Session::MySQL or
Apache::Session::File).

DESCRIPTION

Lemonldap::NG::Manager::Conf provides a simple interface to access to Lemonldap::NG Web-SSO configuration. It is used by Lemonldap::NG::Handler, Lemonldap::NG::Portal and Lemonldap::NG::Manager.

Lemonldap::NG::Manager::SOAPServer provides a SOAP proxy system that can be used to access

SUBROUTINES

  • start: main subroutine. It starts SOAP CGI system. You have to set configStorage to the real configuration storage system. See Synopsys for examples.

  • process: alias for start.

  • new (constructor): (called by start). See code if you want to overload this package.

SECURITY

Since Lemonldap::NG::Manager::SOAPServer act as a CGI, you can protect configuration access by any of the HTTP protection mecanisms. See Lemonldap::NG::Manager::Conf::SOAP for the security in the client side.

In "session" mode, you can control what functions can be used by SOAP. By default, only "get" can be used: it means that only handlers can work with it. Use "AuthorizedFunctions" parameter to grant other functions.

SEE ALSO

Lemonldap::NG::Manager, Lemonldap::NG::Manager::Conf::SOAP, Lemonldap::NG::Handler, Lemonldap::NG::Portal, http://wiki.lemonldap.objectweb.org/xwiki/bin/view/NG/Presentation

AUTHOR

Xavier Guimard, <x.guimard@free.fr>

BUG REPORT

Use OW2 system to report bug or ask for features: http://forge.objectweb.org/tracker/?group_id=274

DOWNLOAD

Lemonldap::NG is available at http://forge.objectweb.org/project/showfiles.php?group_id=274

COPYRIGHT AND LICENSE

Copyright (C) 2007 by Xavier Guimard

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.