[ic] Using Interchange as a SOAP server
Mike Heins
mike at perusion.com
Thu Apr 14 10:12:51 EDT 2005
Quoting Dr. Michael Streubel (michael.streubel at ibizplanet.com):
>
>
> Mike Heins wrote:
>
> >Quoting Chris Sendall (cjs2 at admin.cam.ac.uk):
> >
> >
> >>If there are no SOAP_Control definitions in interchange.cfg then the
> >>catalog.cfg
> >>is not checked
> >>
> >>
> >
> >Exactly as designed. Since the SOAP module allows direct subroutine
> >calls to the Interchange core, we don't want to allow them unless
> >they are specifically enabled.
> >
> >If you want a promiscuous server then you need to put in interchange.cfg:
> >
> > SOAP_Control Tag always
> >
> >If you wanted to prevent only a few tags you would do:
> >
> > SOAP_Control Tag always
> > SOAP_Control Tag/writefile never
> > SOAP_Control Tag/dangerous never
> >
> >
> >
>
> Thanks for elucidating. But how about the reverse? I want a server
> with closed borders, but only one of my catalogs opens the door for a
> specific tag.
I suppose we could add a mechanism to disable SOAP for all but
some catalogs, i.e. with a check of AllowGlobal.
AllowGlobal somecat
Then with soap_gate:
sub soap_gate {
my (@args, $status, $subref, $spath);
my @controllers;
if($Global::AllowGlobal->{$Vend::Cat}) {
@controllers = $Vend::Cfg->{SOAP_Control};
}
else {
# check first global control configuration which takes
# precedence, then catalog control configuration
@controllers = ($Global::SOAP_Control, $Vend::Cfg->{SOAP_Control});
}
for $subref (@controllers) {
@args = @_;
[snip]
}
die errmsg("Unauthorized access to '%s' method\n", join('/', @_))
unless $status;
return 1;
}
We could also add a SOAP_Delegate configuration directive that
would do the same thing.
--
Mike Heins
Perusion -- Expert Interchange Consulting http://www.perusion.com/
phone +1.765.647.1295 tollfree 800-949-1889 <mike at perusion.com>
For a successful technology, reality must take precedence over public
relations, for Nature cannot be fooled. -- Dick Feynman
More information about the interchange-users
mailing list