aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjerebear12 <72420925+jerebear12@users.noreply.github.com>2024-03-18 13:08:16 -0500
committerGitHub <noreply@github.com>2024-03-18 11:08:16 -0700
commit7091269e65372bbc9f8b476dcbbeb4124ba6eb34 (patch)
tree68e46d21d6d47832e220c50332238ef70a1dfa48
parent8a2b3879b98d17eb0b49fedfcec78c6a66ac7655 (diff)
downloadseaweedfs-7091269e65372bbc9f8b476dcbbeb4124ba6eb34.tar.xz
seaweedfs-7091269e65372bbc9f8b476dcbbeb4124ba6eb34.zip
fix get file metadata bug (#5394)
* Removed problematic if statement This if statement was causing the value of option.AllowedOrigins to be always equal to "*". Now the values in the config file will be used when present. This allows for people who don't need this feature to not update their security.toml files. * Update filer_server_handers_read.go * Updated filer responses to invalid requests
-rw-r--r--weed/server/filer_server_handlers_read.go12
-rw-r--r--weed/server/filer_server_handlers_read_dir.go5
2 files changed, 11 insertions, 6 deletions
diff --git a/weed/server/filer_server_handlers_read.go b/weed/server/filer_server_handlers_read.go
index 0f4037237..c139060e4 100644
--- a/weed/server/filer_server_handlers_read.go
+++ b/weed/server/filer_server_handlers_read.go
@@ -3,6 +3,7 @@ package weed_server
import (
"bytes"
"context"
+ "errors"
"fmt"
"io"
"math"
@@ -117,9 +118,12 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request)
w.WriteHeader(http.StatusForbidden)
return
}
- if query.Get("metadata") == "true" && fs.option.ExposeDirectoryData != false {
- writeJsonQuiet(w, r, http.StatusOK, entry)
- return
+ if query.Get("metadata") == "true" {
+ // Don't return directory meta if config value is set to true
+ if fs.option.ExposeDirectoryData == false {
+ writeJsonError(w, r, http.StatusForbidden, errors.New("directory listing is disabled"))
+ return
+ }
}
if entry.Attr.Mime == "" || (entry.Attr.Mime == s3_constants.FolderMimeType && r.Header.Get(s3_constants.AmzIdentityId) == "") {
// return index of directory for non s3 gateway
@@ -135,7 +139,7 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request)
return
}
- if query.Get("metadata") == "true" && fs.option.ExposeDirectoryData != false {
+ if query.Get("metadata") == "true" {
if query.Get("resolveManifest") == "true" {
if entry.Chunks, _, err = filer.ResolveChunkManifest(
fs.filer.MasterClient.GetLookupFileIdFunction(),
diff --git a/weed/server/filer_server_handlers_read_dir.go b/weed/server/filer_server_handlers_read_dir.go
index be38fba1d..0531527bb 100644
--- a/weed/server/filer_server_handlers_read_dir.go
+++ b/weed/server/filer_server_handlers_read_dir.go
@@ -2,6 +2,7 @@ package weed_server
import (
"context"
+ "errors"
"net/http"
"strconv"
"strings"
@@ -12,14 +13,14 @@ import (
"github.com/seaweedfs/seaweedfs/weed/util"
)
-// listDirectoryHandler lists directories and folers under a directory
+// listDirectoryHandler lists directories and folders under a directory
// files are sorted by name and paginated via "lastFileName" and "limit".
// sub directories are listed on the first page, when "lastFileName"
// is empty.
func (fs *FilerServer) listDirectoryHandler(w http.ResponseWriter, r *http.Request) {
if fs.option.ExposeDirectoryData == false {
- http.NotFound(w, r)
+ writeJsonError(w, r, http.StatusForbidden, errors.New("ui is disabled"))
return
}