mirror of https://github.com/cloudreve/Cloudreve
fix(middleware): only select first client IP from X-Forwarded-For (#2748)
parent
8688069fac
commit
8deeadb1e5
|
@ -3,6 +3,10 @@ package middleware
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/cloudreve/Cloudreve/v4/application/constants"
|
"github.com/cloudreve/Cloudreve/v4/application/constants"
|
||||||
"github.com/cloudreve/Cloudreve/v4/application/dependency"
|
"github.com/cloudreve/Cloudreve/v4/application/dependency"
|
||||||
"github.com/cloudreve/Cloudreve/v4/pkg/auth/requestinfo"
|
"github.com/cloudreve/Cloudreve/v4/pkg/auth/requestinfo"
|
||||||
|
@ -14,8 +18,6 @@ import (
|
||||||
"github.com/cloudreve/Cloudreve/v4/pkg/util"
|
"github.com/cloudreve/Cloudreve/v4/pkg/util"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/gofrs/uuid"
|
"github.com/gofrs/uuid"
|
||||||
"net/http"
|
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// HashID 将给定对象的HashID转换为真实ID
|
// HashID 将给定对象的HashID转换为真实ID
|
||||||
|
@ -92,8 +94,13 @@ func MobileRequestOnly() gin.HandlerFunc {
|
||||||
// 2. Generate and inject correlation ID for diagnostic.
|
// 2. Generate and inject correlation ID for diagnostic.
|
||||||
func InitializeHandling(dep dependency.Dep) gin.HandlerFunc {
|
func InitializeHandling(dep dependency.Dep) gin.HandlerFunc {
|
||||||
return func(c *gin.Context) {
|
return func(c *gin.Context) {
|
||||||
|
clientIp := c.ClientIP()
|
||||||
|
if idx := strings.Index(clientIp, ","); idx > 0 {
|
||||||
|
clientIp = clientIp[:idx]
|
||||||
|
}
|
||||||
|
|
||||||
reqInfo := &requestinfo.RequestInfo{
|
reqInfo := &requestinfo.RequestInfo{
|
||||||
IP: c.ClientIP(),
|
IP: clientIp,
|
||||||
Host: c.Request.Host,
|
Host: c.Request.Host,
|
||||||
UserAgent: c.Request.UserAgent(),
|
UserAgent: c.Request.UserAgent(),
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue