上传json序列化保护
This commit is contained in:
parent
d60181b948
commit
2f2894af6a
@ -3,6 +3,8 @@ package factory
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"go_dreamfactory/lego/utils/codec/codecore"
|
||||
"go_dreamfactory/lego/utils/codec/utils"
|
||||
"io"
|
||||
"reflect"
|
||||
"sort"
|
||||
@ -10,8 +12,6 @@ import (
|
||||
"unicode"
|
||||
"unsafe"
|
||||
|
||||
"go_dreamfactory/lego/utils/codec/codecore"
|
||||
|
||||
"github.com/modern-go/reflect2"
|
||||
)
|
||||
|
||||
@ -108,6 +108,9 @@ func describeStruct(ctx *codecore.Ctx, typ reflect2.Type) *StructDescriptor {
|
||||
bindings := []*Binding{}
|
||||
for i := 0; i < structType.NumField(); i++ {
|
||||
field := structType.Field(i)
|
||||
if !utils.IsExported(field.Name()) { //内部字段不处理
|
||||
continue
|
||||
}
|
||||
tag, hastag := field.Tag().Lookup(ctx.Config.TagKey)
|
||||
if ctx.Config.OnlyTaggedField && !hastag && !field.Anonymous() {
|
||||
continue
|
||||
|
12
lego/utils/codec/utils/utils.go
Normal file
12
lego/utils/codec/utils/utils.go
Normal file
@ -0,0 +1,12 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"unicode"
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
||||
///是否是内部字段
|
||||
func IsExported(name string) bool {
|
||||
rune, _ := utf8.DecodeRuneInString(name)
|
||||
return unicode.IsUpper(rune)
|
||||
}
|
Loading…
Reference in New Issue
Block a user