mirror of
				https://github.com/bjdgyc/anylink.git
				synced 2025-10-26 03:29:18 +08:00 
			
		
		
		
	修复 radius 验证测试 panic 的问题
This commit is contained in:
		| @@ -3,6 +3,7 @@ package admin | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"net/http" | ||||
| 	"runtime/debug" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/bjdgyc/anylink/base" | ||||
| @@ -120,3 +121,17 @@ func authMiddleware(next http.Handler) http.Handler { | ||||
|  | ||||
| 	return http.HandlerFunc(fn) | ||||
| } | ||||
|  | ||||
| func recoverHttp(next http.Handler) http.Handler { | ||||
| 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||
| 		defer func() { | ||||
| 			if err := recover(); err != nil { | ||||
| 				stack := debug.Stack() | ||||
| 				base.Error(err, string(stack)) | ||||
| 				// http.Error(w, "Internal Server Error", 500) | ||||
| 				RespError(w, 500, "Internal Server Error") | ||||
| 			} | ||||
| 		}() | ||||
| 		next.ServeHTTP(w, r) | ||||
| 	}) | ||||
| } | ||||
|   | ||||
| @@ -21,6 +21,7 @@ var UiData embed.FS | ||||
| func StartAdmin() { | ||||
|  | ||||
| 	r := mux.NewRouter() | ||||
| 	r.Use(recoverHttp, authMiddleware, handlers.CompressHandler) | ||||
| 	// 所有路由添加安全头 | ||||
| 	r.Use(func(next http.Handler) http.Handler { | ||||
| 		return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | ||||
| @@ -29,8 +30,6 @@ func StartAdmin() { | ||||
| 			next.ServeHTTP(w, req) | ||||
| 		}) | ||||
| 	}) | ||||
| 	r.Use(authMiddleware) | ||||
| 	r.Use(handlers.CompressHandler) | ||||
|  | ||||
| 	// 监控检测 | ||||
| 	r.HandleFunc("/status.html", func(w http.ResponseWriter, r *http.Request) { | ||||
|   | ||||
| @@ -51,6 +51,9 @@ admin_addr = ":8800" | ||||
| #开启tcp proxy protocol协议 | ||||
| proxy_protocol = false | ||||
|  | ||||
| #开启go标准库http.Server的日志 | ||||
| http_server_log=false | ||||
|  | ||||
| #虚拟网络类型[tun macvtap tap] | ||||
| link_mode = "tun" | ||||
|  | ||||
|   | ||||
| @@ -75,8 +75,11 @@ func (auth AuthRadius) checkUser(name, pwd string, g *Group, ext map[string]inte | ||||
| 			return fmt.Errorf("%s %s", name, "Radius set nasip 出现错误") | ||||
| 		} | ||||
| 	} | ||||
| 	macAddr := ext["mac_addr"].(string) | ||||
| 	macAddr := "" | ||||
| 	if ext["mac_addr"] != nil { | ||||
| 		macAddr = ext["mac_addr"].(string) | ||||
| 		base.Trace("AuthRadius", ext, macAddr) | ||||
| 	} | ||||
| 	if macAddr != "" { | ||||
| 		err = rfc2865.CallingStationID_AddString(packet, macAddr) | ||||
| 		if err != nil { | ||||
| @@ -94,5 +97,4 @@ func (auth AuthRadius) checkUser(name, pwd string, g *Group, ext map[string]inte | ||||
| 		return fmt.Errorf("%s %s", name, "Radius:用户名或密码错误") | ||||
| 	} | ||||
| 	return nil | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user