This question about Using an extension: Answered
ERROR: (405) Bad Request: REST denied
Since we've updated the plugin to the neweset version and we want to generate the cache initially with
`cd <foswiki-root>/bin; ./rest /DBCachePlugin/updateCache`
we get the following error:
ERROR: (405) Bad Request: REST denied.
Any hints how to solve this problem?
Regards
--
JeroNimo - 28 May 2015
Known problem calling rest on the cmdline. Try this patch
diff --git a/lib/Foswiki/UI/Rest.pm b/lib/Foswiki/UI/Rest.pm
index f24e7bf..5c2b777 100644
--- a/lib/Foswiki/UI/Rest.pm
+++ b/lib/Foswiki/UI/Rest.pm
@@ -190,6 +190,7 @@ sub rest {
# Check the method is allowed
if ( $record->{http_allow} && defined $req->method() ) {
+ unless ( $session->inContext('command_line') ) {
my %allowed = map { $_ => 1 } split( /[,\s]+/, $record->{http_allow} );
unless ( $allowed{ uc( $req->method() ) } ) {
$res->header( -type => 'text/html', -status => '405' );
@@ -198,12 +199,14 @@ sub rest {
$res->print($err);
throw Foswiki::EngineException( 404, $err, $res );
}
+ }
}
# Check someone is logged in
if ( $record->{authenticate} ) {
unless ( $session->inContext('authenticated')
- || $Foswiki::cfg{LoginManager} eq 'none' )
+ || $Foswiki::cfg{LoginManager} eq 'none'
+ || $session->inContext('command_line') )
{
$res->header( -type => 'text/html', -status => '401' );
$err = "ERROR: (401) $pathInfo requires you to be logged in";
@@ -213,7 +216,11 @@ sub rest {
}
# Validate the request
- if ( $record->{validate} ) {
+ if ( $record->{validate}
+ && $Foswiki::cfg{Validation}{Method} ne 'none'
+ && !$session->inContext('command_line') )
+ {
+
my $nonce = $req->param('validation_key');
if (
!defined($nonce)
While you are at it - and in case you've got
$Foswiki::cfg{Register}{AllowLoginName}
enabled - have this patch as well so that you are recognized as
admin
on the commandline.
--- old/lib/Foswiki/Engine/CLI.pm
+++ foswiki/lib/Foswiki/Engine/CLI.pm
@@ -77,7 +77,12 @@
delete $this->{user};
}
else {
- $req->remoteUser( $Foswiki::cfg{AdminUserWikiName} );
+ if ( $Foswiki::cfg{Register}{AllowLoginName} ) {
+ $req->remoteUser( $Foswiki::cfg{AdminUserLogin} );
+ }
+ else {
+ $req->remoteUser( $Foswiki::cfg{AdminUserWikiName} );
+ }
}
}
Also: remove
rest
from
$Foswiki::cfg{AuthScripts}
.
This is fixed in Foswiki-1.2.0.
--
MichaelDaum - 28 May 2015
Thanks Michael,
I had the same symptom and applied the patch. Then it worked. Cool
--
BramVanOosterhout - 13 Jun 2015