1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-09-01 15:36:37 +00:00

Use Authorization header (#675)

Co-authored-by: 杨赫然 <heran.yang@seafile.com>
This commit is contained in:
feiniks
2024-08-01 11:25:31 +08:00
committed by GitHub
parent 77fa08566b
commit a535c64d13
3 changed files with 15 additions and 4 deletions

View File

@@ -439,7 +439,9 @@ load_seahub_private_key (SeafileSession *session, const char *conf_dir)
}
out:
if (secret_key_regex)
g_regex_unref (secret_key_regex);
if (site_root_regex)
g_regex_unref (site_root_regex);
g_free (conf_path);
g_free (data);

View File

@@ -282,7 +282,7 @@ func messageCB(rsp http.ResponseWriter, r *http.Request) *appError {
func eventCB(rsp http.ResponseWriter, r *http.Request) *appError {
msg := Message{}
token := r.Header.Get("Seafile-Repo-Token")
token := getAuthorizationToken(r.Header)
if !checkAuthToken(token) {
return &appError{Error: nil,
Message: "Notification token not match",
@@ -310,6 +310,15 @@ func eventCB(rsp http.ResponseWriter, r *http.Request) *appError {
return nil
}
func getAuthorizationToken(h http.Header) string {
auth := h.Get("Authorization")
splitResult := strings.Split(auth, " ")
if len(splitResult) > 1 {
return splitResult[1]
}
return ""
}
func checkAuthToken(tokenString string) bool {
if len(tokenString) == 0 {
return false

View File

@@ -384,7 +384,7 @@ http_post (Connection *conn, const char *url, const char *token,
headers = curl_slist_append (headers, "User-Agent: Seafile/"SEAFILE_CLIENT_VERSION" ("USER_AGENT_OS")");
if (token) {
token_header = g_strdup_printf ("Seafile-Repo-Token: %s", token);
token_header = g_strdup_printf ("Authorization: Token %s", token);
headers = curl_slist_append (headers, token_header);
g_free (token_header);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);