From da68071e97d59ff8044707b83eb011dbbfb2ec41 Mon Sep 17 00:00:00 2001 From: mountain Date: Mon, 25 Dec 2023 22:08:22 +0900 Subject: [PATCH] =?UTF-8?q?dev=EC=9A=A9=20serverHTTP=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/maingate.go | 8 +++++--- core/service.go | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/core/maingate.go b/core/maingate.go index 6d6b43c..5e9d287 100644 --- a/core/maingate.go +++ b/core/maingate.go @@ -454,9 +454,11 @@ func (mg *Maingate) RegisterHandlers(ctx context.Context, serveMux *http.ServeMu } logger.Println("Service is registered :", mg.service().ServiceCode) - serveMux.HandleFunc(gocommon.MakeHttpHandlerPattern(prefix, mg.service().ServiceCode, "/"), func(w http.ResponseWriter, r *http.Request) { - mg.service().serveHTTP(w, r) - }) + if *devflag { + serveMux.HandleFunc(gocommon.MakeHttpHandlerPattern(prefix, mg.service().ServiceCode, "/"), mg.service().serveHTTP_dev) + } else { + serveMux.HandleFunc(gocommon.MakeHttpHandlerPattern(prefix, mg.service().ServiceCode, "/"), mg.service().serveHTTP) + } serveMux.HandleFunc(gocommon.MakeHttpHandlerPattern(prefix, "api/"), mg.api) configraw, _ := json.Marshal(config) diff --git a/core/service.go b/core/service.go index abc80f3..8734d77 100644 --- a/core/service.go +++ b/core/service.go @@ -533,6 +533,18 @@ func (sh *serviceDescription) linkinfo(w http.ResponseWriter, r *http.Request) { } +func (sh *serviceDescription) authorize_dev(w http.ResponseWriter, r *http.Request) { + if r.Method == "DELETE" { + sk := r.Header.Get("AS-X-SESSION") + if authinfo, err := sh.sessionProvider.Query(sk); err == nil { + sh.sessionProvider.Delete(authinfo.Account) + } + + return + } + sh.authorize(w, r) +} + func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request) { defer func() { s := recover() @@ -698,6 +710,14 @@ func (sh *serviceDescription) findVersionSplit(version string) []byte { return sh.divisionsSplits["default"] } +func (sh *serviceDescription) serveHTTP_dev(w http.ResponseWriter, r *http.Request) { + if strings.HasSuffix(r.URL.Path, "/auth") { + sh.authorize_dev(w, r) + } else { + sh.serveHTTP(w, r) + } +} + func (sh *serviceDescription) serveHTTP(w http.ResponseWriter, r *http.Request) { defer func() { s := recover()