diff --git a/pkg/rpc/pb/model_http_auth_policy.pb.go b/pkg/rpc/pb/model_http_auth_policy.pb.go new file mode 100644 index 0000000..0b74939 --- /dev/null +++ b/pkg/rpc/pb/model_http_auth_policy.pb.go @@ -0,0 +1,186 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: models/model_http_auth_policy.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 服务认证策略 +type HTTPAuthPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + IsOn bool `protobuf:"varint,2,opt,name=isOn,proto3" json:"isOn,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` + ParamsJSON []byte `protobuf:"bytes,5,opt,name=paramsJSON,proto3" json:"paramsJSON,omitempty"` +} + +func (x *HTTPAuthPolicy) Reset() { + *x = HTTPAuthPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_models_model_http_auth_policy_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HTTPAuthPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HTTPAuthPolicy) ProtoMessage() {} + +func (x *HTTPAuthPolicy) ProtoReflect() protoreflect.Message { + mi := &file_models_model_http_auth_policy_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HTTPAuthPolicy.ProtoReflect.Descriptor instead. +func (*HTTPAuthPolicy) Descriptor() ([]byte, []int) { + return file_models_model_http_auth_policy_proto_rawDescGZIP(), []int{0} +} + +func (x *HTTPAuthPolicy) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *HTTPAuthPolicy) GetIsOn() bool { + if x != nil { + return x.IsOn + } + return false +} + +func (x *HTTPAuthPolicy) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *HTTPAuthPolicy) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *HTTPAuthPolicy) GetParamsJSON() []byte { + if x != nil { + return x.ParamsJSON + } + return nil +} + +var File_models_model_http_auth_policy_proto protoreflect.FileDescriptor + +var file_models_model_http_auth_policy_proto_rawDesc = []byte{ + 0x0a, 0x23, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x68, + 0x74, 0x74, 0x70, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x7c, 0x0a, 0x0e, 0x48, 0x54, 0x54, + 0x50, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, + 0x73, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_models_model_http_auth_policy_proto_rawDescOnce sync.Once + file_models_model_http_auth_policy_proto_rawDescData = file_models_model_http_auth_policy_proto_rawDesc +) + +func file_models_model_http_auth_policy_proto_rawDescGZIP() []byte { + file_models_model_http_auth_policy_proto_rawDescOnce.Do(func() { + file_models_model_http_auth_policy_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_http_auth_policy_proto_rawDescData) + }) + return file_models_model_http_auth_policy_proto_rawDescData +} + +var file_models_model_http_auth_policy_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_models_model_http_auth_policy_proto_goTypes = []interface{}{ + (*HTTPAuthPolicy)(nil), // 0: pb.HTTPAuthPolicy +} +var file_models_model_http_auth_policy_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_models_model_http_auth_policy_proto_init() } +func file_models_model_http_auth_policy_proto_init() { + if File_models_model_http_auth_policy_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_models_model_http_auth_policy_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HTTPAuthPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_models_model_http_auth_policy_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_models_model_http_auth_policy_proto_goTypes, + DependencyIndexes: file_models_model_http_auth_policy_proto_depIdxs, + MessageInfos: file_models_model_http_auth_policy_proto_msgTypes, + }.Build() + File_models_model_http_auth_policy_proto = out.File + file_models_model_http_auth_policy_proto_rawDesc = nil + file_models_model_http_auth_policy_proto_goTypes = nil + file_models_model_http_auth_policy_proto_depIdxs = nil +} diff --git a/pkg/rpc/pb/service_http_auth_policy.pb.go b/pkg/rpc/pb/service_http_auth_policy.pb.go new file mode 100644 index 0000000..4295e38 --- /dev/null +++ b/pkg/rpc/pb/service_http_auth_policy.pb.go @@ -0,0 +1,655 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_http_auth_policy.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 创建策略 +type CreateHTTPAuthPolicyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + ParamsJSON []byte `protobuf:"bytes,3,opt,name=paramsJSON,proto3" json:"paramsJSON,omitempty"` +} + +func (x *CreateHTTPAuthPolicyRequest) Reset() { + *x = CreateHTTPAuthPolicyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_http_auth_policy_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateHTTPAuthPolicyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateHTTPAuthPolicyRequest) ProtoMessage() {} + +func (x *CreateHTTPAuthPolicyRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_http_auth_policy_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateHTTPAuthPolicyRequest.ProtoReflect.Descriptor instead. +func (*CreateHTTPAuthPolicyRequest) Descriptor() ([]byte, []int) { + return file_service_http_auth_policy_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateHTTPAuthPolicyRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateHTTPAuthPolicyRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *CreateHTTPAuthPolicyRequest) GetParamsJSON() []byte { + if x != nil { + return x.ParamsJSON + } + return nil +} + +type CreateHTTPAuthPolicyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HttpAuthPolicyId int64 `protobuf:"varint,1,opt,name=httpAuthPolicyId,proto3" json:"httpAuthPolicyId,omitempty"` +} + +func (x *CreateHTTPAuthPolicyResponse) Reset() { + *x = CreateHTTPAuthPolicyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_http_auth_policy_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateHTTPAuthPolicyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateHTTPAuthPolicyResponse) ProtoMessage() {} + +func (x *CreateHTTPAuthPolicyResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_http_auth_policy_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateHTTPAuthPolicyResponse.ProtoReflect.Descriptor instead. +func (*CreateHTTPAuthPolicyResponse) Descriptor() ([]byte, []int) { + return file_service_http_auth_policy_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateHTTPAuthPolicyResponse) GetHttpAuthPolicyId() int64 { + if x != nil { + return x.HttpAuthPolicyId + } + return 0 +} + +// 修改策略 +type UpdateHTTPAuthPolicyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HttpAuthPolicyId int64 `protobuf:"varint,1,opt,name=httpAuthPolicyId,proto3" json:"httpAuthPolicyId,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + ParamsJSON []byte `protobuf:"bytes,3,opt,name=paramsJSON,proto3" json:"paramsJSON,omitempty"` + IsOn bool `protobuf:"varint,4,opt,name=isOn,proto3" json:"isOn,omitempty"` +} + +func (x *UpdateHTTPAuthPolicyRequest) Reset() { + *x = UpdateHTTPAuthPolicyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_http_auth_policy_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateHTTPAuthPolicyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateHTTPAuthPolicyRequest) ProtoMessage() {} + +func (x *UpdateHTTPAuthPolicyRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_http_auth_policy_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateHTTPAuthPolicyRequest.ProtoReflect.Descriptor instead. +func (*UpdateHTTPAuthPolicyRequest) Descriptor() ([]byte, []int) { + return file_service_http_auth_policy_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdateHTTPAuthPolicyRequest) GetHttpAuthPolicyId() int64 { + if x != nil { + return x.HttpAuthPolicyId + } + return 0 +} + +func (x *UpdateHTTPAuthPolicyRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateHTTPAuthPolicyRequest) GetParamsJSON() []byte { + if x != nil { + return x.ParamsJSON + } + return nil +} + +func (x *UpdateHTTPAuthPolicyRequest) GetIsOn() bool { + if x != nil { + return x.IsOn + } + return false +} + +// 查找策略信息 +type FindEnabledHTTPAuthPolicyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HttpAuthPolicyId int64 `protobuf:"varint,1,opt,name=httpAuthPolicyId,proto3" json:"httpAuthPolicyId,omitempty"` +} + +func (x *FindEnabledHTTPAuthPolicyRequest) Reset() { + *x = FindEnabledHTTPAuthPolicyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_http_auth_policy_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledHTTPAuthPolicyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledHTTPAuthPolicyRequest) ProtoMessage() {} + +func (x *FindEnabledHTTPAuthPolicyRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_http_auth_policy_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindEnabledHTTPAuthPolicyRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledHTTPAuthPolicyRequest) Descriptor() ([]byte, []int) { + return file_service_http_auth_policy_proto_rawDescGZIP(), []int{3} +} + +func (x *FindEnabledHTTPAuthPolicyRequest) GetHttpAuthPolicyId() int64 { + if x != nil { + return x.HttpAuthPolicyId + } + return 0 +} + +type FindEnabledHTTPAuthPolicyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HttpAuthPolicy *HTTPAuthPolicy `protobuf:"bytes,1,opt,name=httpAuthPolicy,proto3" json:"httpAuthPolicy,omitempty"` +} + +func (x *FindEnabledHTTPAuthPolicyResponse) Reset() { + *x = FindEnabledHTTPAuthPolicyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_http_auth_policy_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledHTTPAuthPolicyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledHTTPAuthPolicyResponse) ProtoMessage() {} + +func (x *FindEnabledHTTPAuthPolicyResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_http_auth_policy_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FindEnabledHTTPAuthPolicyResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledHTTPAuthPolicyResponse) Descriptor() ([]byte, []int) { + return file_service_http_auth_policy_proto_rawDescGZIP(), []int{4} +} + +func (x *FindEnabledHTTPAuthPolicyResponse) GetHttpAuthPolicy() *HTTPAuthPolicy { + if x != nil { + return x.HttpAuthPolicy + } + return nil +} + +var File_service_http_auth_policy_proto protoreflect.FileDescriptor + +var file_service_http_auth_policy_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x61, + 0x75, 0x74, 0x68, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x02, 0x70, 0x62, 0x1a, 0x23, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x65, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4a, 0x0a, 0x1c, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x68, + 0x74, 0x74, 0x70, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x68, 0x74, 0x74, 0x70, 0x41, 0x75, 0x74, 0x68, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x22, 0x91, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x41, + 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x10, 0x68, 0x74, 0x74, 0x70, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x22, 0x4e, 0x0a, 0x20, 0x46, + 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x41, 0x75, + 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2a, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x68, 0x74, 0x74, 0x70, 0x41, + 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x21, 0x46, + 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x41, 0x75, + 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3a, 0x0a, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x54, + 0x54, 0x50, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x68, 0x74, + 0x74, 0x70, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x32, 0xa5, 0x02, 0x0a, + 0x15, 0x48, 0x54, 0x54, 0x50, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x48, 0x54, 0x54, 0x50, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1f, + 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x41, 0x75, + 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x41, + 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x41, + 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, + 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, + 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x41, 0x75, 0x74, + 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, + 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x41, 0x75, 0x74, 0x68, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, + 0x54, 0x50, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_service_http_auth_policy_proto_rawDescOnce sync.Once + file_service_http_auth_policy_proto_rawDescData = file_service_http_auth_policy_proto_rawDesc +) + +func file_service_http_auth_policy_proto_rawDescGZIP() []byte { + file_service_http_auth_policy_proto_rawDescOnce.Do(func() { + file_service_http_auth_policy_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_http_auth_policy_proto_rawDescData) + }) + return file_service_http_auth_policy_proto_rawDescData +} + +var file_service_http_auth_policy_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_service_http_auth_policy_proto_goTypes = []interface{}{ + (*CreateHTTPAuthPolicyRequest)(nil), // 0: pb.CreateHTTPAuthPolicyRequest + (*CreateHTTPAuthPolicyResponse)(nil), // 1: pb.CreateHTTPAuthPolicyResponse + (*UpdateHTTPAuthPolicyRequest)(nil), // 2: pb.UpdateHTTPAuthPolicyRequest + (*FindEnabledHTTPAuthPolicyRequest)(nil), // 3: pb.FindEnabledHTTPAuthPolicyRequest + (*FindEnabledHTTPAuthPolicyResponse)(nil), // 4: pb.FindEnabledHTTPAuthPolicyResponse + (*HTTPAuthPolicy)(nil), // 5: pb.HTTPAuthPolicy + (*RPCSuccess)(nil), // 6: pb.RPCSuccess +} +var file_service_http_auth_policy_proto_depIdxs = []int32{ + 5, // 0: pb.FindEnabledHTTPAuthPolicyResponse.httpAuthPolicy:type_name -> pb.HTTPAuthPolicy + 0, // 1: pb.HTTPAuthPolicyService.createHTTPAuthPolicy:input_type -> pb.CreateHTTPAuthPolicyRequest + 2, // 2: pb.HTTPAuthPolicyService.updateHTTPAuthPolicy:input_type -> pb.UpdateHTTPAuthPolicyRequest + 3, // 3: pb.HTTPAuthPolicyService.findEnabledHTTPAuthPolicy:input_type -> pb.FindEnabledHTTPAuthPolicyRequest + 1, // 4: pb.HTTPAuthPolicyService.createHTTPAuthPolicy:output_type -> pb.CreateHTTPAuthPolicyResponse + 6, // 5: pb.HTTPAuthPolicyService.updateHTTPAuthPolicy:output_type -> pb.RPCSuccess + 4, // 6: pb.HTTPAuthPolicyService.findEnabledHTTPAuthPolicy:output_type -> pb.FindEnabledHTTPAuthPolicyResponse + 4, // [4:7] is the sub-list for method output_type + 1, // [1:4] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_service_http_auth_policy_proto_init() } +func file_service_http_auth_policy_proto_init() { + if File_service_http_auth_policy_proto != nil { + return + } + file_models_model_http_auth_policy_proto_init() + file_models_rpc_messages_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_http_auth_policy_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateHTTPAuthPolicyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_http_auth_policy_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateHTTPAuthPolicyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_http_auth_policy_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateHTTPAuthPolicyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_http_auth_policy_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledHTTPAuthPolicyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_http_auth_policy_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledHTTPAuthPolicyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_http_auth_policy_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_http_auth_policy_proto_goTypes, + DependencyIndexes: file_service_http_auth_policy_proto_depIdxs, + MessageInfos: file_service_http_auth_policy_proto_msgTypes, + }.Build() + File_service_http_auth_policy_proto = out.File + file_service_http_auth_policy_proto_rawDesc = nil + file_service_http_auth_policy_proto_goTypes = nil + file_service_http_auth_policy_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// HTTPAuthPolicyServiceClient is the client API for HTTPAuthPolicyService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type HTTPAuthPolicyServiceClient interface { + // 创建策略 + CreateHTTPAuthPolicy(ctx context.Context, in *CreateHTTPAuthPolicyRequest, opts ...grpc.CallOption) (*CreateHTTPAuthPolicyResponse, error) + // 修改策略 + UpdateHTTPAuthPolicy(ctx context.Context, in *UpdateHTTPAuthPolicyRequest, opts ...grpc.CallOption) (*RPCSuccess, error) + // 查找策略信息 + FindEnabledHTTPAuthPolicy(ctx context.Context, in *FindEnabledHTTPAuthPolicyRequest, opts ...grpc.CallOption) (*FindEnabledHTTPAuthPolicyResponse, error) +} + +type hTTPAuthPolicyServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewHTTPAuthPolicyServiceClient(cc grpc.ClientConnInterface) HTTPAuthPolicyServiceClient { + return &hTTPAuthPolicyServiceClient{cc} +} + +func (c *hTTPAuthPolicyServiceClient) CreateHTTPAuthPolicy(ctx context.Context, in *CreateHTTPAuthPolicyRequest, opts ...grpc.CallOption) (*CreateHTTPAuthPolicyResponse, error) { + out := new(CreateHTTPAuthPolicyResponse) + err := c.cc.Invoke(ctx, "/pb.HTTPAuthPolicyService/createHTTPAuthPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hTTPAuthPolicyServiceClient) UpdateHTTPAuthPolicy(ctx context.Context, in *UpdateHTTPAuthPolicyRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, "/pb.HTTPAuthPolicyService/updateHTTPAuthPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hTTPAuthPolicyServiceClient) FindEnabledHTTPAuthPolicy(ctx context.Context, in *FindEnabledHTTPAuthPolicyRequest, opts ...grpc.CallOption) (*FindEnabledHTTPAuthPolicyResponse, error) { + out := new(FindEnabledHTTPAuthPolicyResponse) + err := c.cc.Invoke(ctx, "/pb.HTTPAuthPolicyService/findEnabledHTTPAuthPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// HTTPAuthPolicyServiceServer is the server API for HTTPAuthPolicyService service. +type HTTPAuthPolicyServiceServer interface { + // 创建策略 + CreateHTTPAuthPolicy(context.Context, *CreateHTTPAuthPolicyRequest) (*CreateHTTPAuthPolicyResponse, error) + // 修改策略 + UpdateHTTPAuthPolicy(context.Context, *UpdateHTTPAuthPolicyRequest) (*RPCSuccess, error) + // 查找策略信息 + FindEnabledHTTPAuthPolicy(context.Context, *FindEnabledHTTPAuthPolicyRequest) (*FindEnabledHTTPAuthPolicyResponse, error) +} + +// UnimplementedHTTPAuthPolicyServiceServer can be embedded to have forward compatible implementations. +type UnimplementedHTTPAuthPolicyServiceServer struct { +} + +func (*UnimplementedHTTPAuthPolicyServiceServer) CreateHTTPAuthPolicy(context.Context, *CreateHTTPAuthPolicyRequest) (*CreateHTTPAuthPolicyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateHTTPAuthPolicy not implemented") +} +func (*UnimplementedHTTPAuthPolicyServiceServer) UpdateHTTPAuthPolicy(context.Context, *UpdateHTTPAuthPolicyRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPAuthPolicy not implemented") +} +func (*UnimplementedHTTPAuthPolicyServiceServer) FindEnabledHTTPAuthPolicy(context.Context, *FindEnabledHTTPAuthPolicyRequest) (*FindEnabledHTTPAuthPolicyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledHTTPAuthPolicy not implemented") +} + +func RegisterHTTPAuthPolicyServiceServer(s *grpc.Server, srv HTTPAuthPolicyServiceServer) { + s.RegisterService(&_HTTPAuthPolicyService_serviceDesc, srv) +} + +func _HTTPAuthPolicyService_CreateHTTPAuthPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateHTTPAuthPolicyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HTTPAuthPolicyServiceServer).CreateHTTPAuthPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.HTTPAuthPolicyService/CreateHTTPAuthPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HTTPAuthPolicyServiceServer).CreateHTTPAuthPolicy(ctx, req.(*CreateHTTPAuthPolicyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HTTPAuthPolicyService_UpdateHTTPAuthPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateHTTPAuthPolicyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HTTPAuthPolicyServiceServer).UpdateHTTPAuthPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.HTTPAuthPolicyService/UpdateHTTPAuthPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HTTPAuthPolicyServiceServer).UpdateHTTPAuthPolicy(ctx, req.(*UpdateHTTPAuthPolicyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HTTPAuthPolicyService_FindEnabledHTTPAuthPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledHTTPAuthPolicyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HTTPAuthPolicyServiceServer).FindEnabledHTTPAuthPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.HTTPAuthPolicyService/FindEnabledHTTPAuthPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HTTPAuthPolicyServiceServer).FindEnabledHTTPAuthPolicy(ctx, req.(*FindEnabledHTTPAuthPolicyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _HTTPAuthPolicyService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.HTTPAuthPolicyService", + HandlerType: (*HTTPAuthPolicyServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createHTTPAuthPolicy", + Handler: _HTTPAuthPolicyService_CreateHTTPAuthPolicy_Handler, + }, + { + MethodName: "updateHTTPAuthPolicy", + Handler: _HTTPAuthPolicyService_UpdateHTTPAuthPolicy_Handler, + }, + { + MethodName: "findEnabledHTTPAuthPolicy", + Handler: _HTTPAuthPolicyService_FindEnabledHTTPAuthPolicy_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_http_auth_policy.proto", +} diff --git a/pkg/rpc/pb/service_http_web.pb.go b/pkg/rpc/pb/service_http_web.pb.go index 3b278a2..c70cacd 100644 --- a/pkg/rpc/pb/service_http_web.pb.go +++ b/pkg/rpc/pb/service_http_web.pb.go @@ -1361,6 +1361,62 @@ func (x *FindHTTPWebHostRedirectsResponse) GetHostRedirectsJSON() []byte { return nil } +// 更改认证设置 +type UpdateHTTPWebAuthRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"` + AuthJSON []byte `protobuf:"bytes,2,opt,name=authJSON,proto3" json:"authJSON,omitempty"` +} + +func (x *UpdateHTTPWebAuthRequest) Reset() { + *x = UpdateHTTPWebAuthRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_http_web_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateHTTPWebAuthRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateHTTPWebAuthRequest) ProtoMessage() {} + +func (x *UpdateHTTPWebAuthRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_http_web_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateHTTPWebAuthRequest.ProtoReflect.Descriptor instead. +func (*UpdateHTTPWebAuthRequest) Descriptor() ([]byte, []int) { + return file_service_http_web_proto_rawDescGZIP(), []int{25} +} + +func (x *UpdateHTTPWebAuthRequest) GetWebId() int64 { + if x != nil { + return x.WebId + } + return 0 +} + +func (x *UpdateHTTPWebAuthRequest) GetAuthJSON() []byte { + if x != nil { + return x.AuthJSON + } + return nil +} + var File_service_http_web_proto protoreflect.FileDescriptor var file_service_http_web_proto_rawDesc = []byte{ @@ -1493,113 +1549,122 @@ var file_service_http_web_proto_rawDesc = []byte{ 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x68, 0x6f, - 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x32, - 0x80, 0x0d, 0x0a, 0x0e, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, - 0x57, 0x65, 0x62, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, - 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, - 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x64, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x1d, - 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, - 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, - 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, - 0x18, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, - 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, + 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, + 0x4c, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, + 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, + 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4a, 0x53, 0x4f, 0x4e, 0x32, 0xc3, 0x0d, + 0x0a, 0x0e, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x44, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, + 0x62, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, + 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x62, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x1d, 0x2e, 0x70, + 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, + 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, + 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, + 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, - 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, - 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, - 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, - 0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, - 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, - 0x47, 0x7a, 0x69, 0x70, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x47, 0x7a, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, - 0x57, 0x65, 0x62, 0x43, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x68, 0x61, - 0x72, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, - 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x1a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, + 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, + 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, + 0x50, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, + 0x57, 0x65, 0x62, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, + 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, + 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x47, 0x7a, + 0x69, 0x70, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x57, 0x65, 0x62, 0x47, 0x7a, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x12, 0x55, 0x0a, 0x1b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, - 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, - 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, - 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x15, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, - 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, - 0x57, 0x65, 0x62, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, - 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, - 0x67, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, - 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x74, 0x61, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x1d, 0x2e, + 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, + 0x62, 0x43, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x68, 0x61, 0x72, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, + 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x1a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, + 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x55, + 0x0a, 0x1b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, - 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x15, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x69, 0x72, - 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x12, 0x57, 0x0a, 0x1c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x15, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x20, + 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, + 0x62, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, + 0x62, 0x50, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x12, + 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, + 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, + 0x57, 0x65, 0x62, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x1d, 0x2e, 0x70, 0x62, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, + 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x15, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x69, 0x72, 0x65, 0x77, + 0x61, 0x6c, 0x6c, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, + 0x65, 0x62, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x12, 0x57, 0x0a, 0x1c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, + 0x57, 0x65, 0x62, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x48, 0x54, 0x54, + 0x50, 0x53, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x48, - 0x54, 0x54, 0x50, 0x53, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, - 0x6f, 0x48, 0x54, 0x54, 0x50, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, - 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, - 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, 0x65, - 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, - 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, - 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x61, 0x73, 0x74, 0x63, - 0x67, 0x69, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, - 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x61, 0x73, 0x74, 0x63, 0x67, 0x69, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x12, 0x51, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, - 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, - 0x57, 0x65, 0x62, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x1a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, - 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x65, 0x0a, 0x18, 0x66, - 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, + 0x54, 0x54, 0x50, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, + 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, 0x65, 0x62, 0x73, + 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, + 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x46, 0x61, 0x73, 0x74, 0x63, 0x67, 0x69, + 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, + 0x57, 0x65, 0x62, 0x46, 0x61, 0x73, 0x74, 0x63, 0x67, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x12, 0x51, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, + 0x65, 0x62, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x24, + 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, + 0x62, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x1a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, + 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x65, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, - 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, - 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x72, 0x65, 0x63, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x48, + 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x52, + 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, + 0x62, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1614,7 +1679,7 @@ func file_service_http_web_proto_rawDescGZIP() []byte { return file_service_http_web_proto_rawDescData } -var file_service_http_web_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_service_http_web_proto_msgTypes = make([]protoimpl.MessageInfo, 26) var file_service_http_web_proto_goTypes = []interface{}{ (*CreateHTTPWebRequest)(nil), // 0: pb.CreateHTTPWebRequest (*CreateHTTPWebResponse)(nil), // 1: pb.CreateHTTPWebResponse @@ -1641,11 +1706,12 @@ var file_service_http_web_proto_goTypes = []interface{}{ (*UpdateHTTPWebHostRedirectsRequest)(nil), // 22: pb.UpdateHTTPWebHostRedirectsRequest (*FindHTTPWebHostRedirectsRequest)(nil), // 23: pb.FindHTTPWebHostRedirectsRequest (*FindHTTPWebHostRedirectsResponse)(nil), // 24: pb.FindHTTPWebHostRedirectsResponse - (*HTTPWeb)(nil), // 25: pb.HTTPWeb - (*RPCSuccess)(nil), // 26: pb.RPCSuccess + (*UpdateHTTPWebAuthRequest)(nil), // 25: pb.UpdateHTTPWebAuthRequest + (*HTTPWeb)(nil), // 26: pb.HTTPWeb + (*RPCSuccess)(nil), // 27: pb.RPCSuccess } var file_service_http_web_proto_depIdxs = []int32{ - 25, // 0: pb.FindEnabledHTTPWebResponse.web:type_name -> pb.HTTPWeb + 26, // 0: pb.FindEnabledHTTPWebResponse.web:type_name -> pb.HTTPWeb 0, // 1: pb.HTTPWebService.createHTTPWeb:input_type -> pb.CreateHTTPWebRequest 2, // 2: pb.HTTPWebService.findEnabledHTTPWeb:input_type -> pb.FindEnabledHTTPWebRequest 4, // 3: pb.HTTPWebService.findEnabledHTTPWebConfig:input_type -> pb.FindEnabledHTTPWebConfigRequest @@ -1667,29 +1733,31 @@ var file_service_http_web_proto_depIdxs = []int32{ 21, // 19: pb.HTTPWebService.updateHTTPWebRewriteRules:input_type -> pb.UpdateHTTPWebRewriteRulesRequest 22, // 20: pb.HTTPWebService.updateHTTPWebHostRedirects:input_type -> pb.UpdateHTTPWebHostRedirectsRequest 23, // 21: pb.HTTPWebService.findHTTPWebHostRedirects:input_type -> pb.FindHTTPWebHostRedirectsRequest - 1, // 22: pb.HTTPWebService.createHTTPWeb:output_type -> pb.CreateHTTPWebResponse - 3, // 23: pb.HTTPWebService.findEnabledHTTPWeb:output_type -> pb.FindEnabledHTTPWebResponse - 5, // 24: pb.HTTPWebService.findEnabledHTTPWebConfig:output_type -> pb.FindEnabledHTTPWebConfigResponse - 26, // 25: pb.HTTPWebService.updateHTTPWeb:output_type -> pb.RPCSuccess - 26, // 26: pb.HTTPWebService.updateHTTPWebGzip:output_type -> pb.RPCSuccess - 26, // 27: pb.HTTPWebService.updateHTTPWebCharset:output_type -> pb.RPCSuccess - 26, // 28: pb.HTTPWebService.updateHTTPWebRequestHeader:output_type -> pb.RPCSuccess - 26, // 29: pb.HTTPWebService.updateHTTPWebResponseHeader:output_type -> pb.RPCSuccess - 26, // 30: pb.HTTPWebService.updateHTTPWebShutdown:output_type -> pb.RPCSuccess - 26, // 31: pb.HTTPWebService.updateHTTPWebPages:output_type -> pb.RPCSuccess - 26, // 32: pb.HTTPWebService.updateHTTPWebAccessLog:output_type -> pb.RPCSuccess - 26, // 33: pb.HTTPWebService.updateHTTPWebStat:output_type -> pb.RPCSuccess - 26, // 34: pb.HTTPWebService.updateHTTPWebCache:output_type -> pb.RPCSuccess - 26, // 35: pb.HTTPWebService.updateHTTPWebFirewall:output_type -> pb.RPCSuccess - 26, // 36: pb.HTTPWebService.updateHTTPWebLocations:output_type -> pb.RPCSuccess - 26, // 37: pb.HTTPWebService.updateHTTPWebRedirectToHTTPS:output_type -> pb.RPCSuccess - 26, // 38: pb.HTTPWebService.updateHTTPWebWebsocket:output_type -> pb.RPCSuccess - 26, // 39: pb.HTTPWebService.updateHTTPWebFastcgi:output_type -> pb.RPCSuccess - 26, // 40: pb.HTTPWebService.updateHTTPWebRewriteRules:output_type -> pb.RPCSuccess - 26, // 41: pb.HTTPWebService.updateHTTPWebHostRedirects:output_type -> pb.RPCSuccess - 24, // 42: pb.HTTPWebService.findHTTPWebHostRedirects:output_type -> pb.FindHTTPWebHostRedirectsResponse - 22, // [22:43] is the sub-list for method output_type - 1, // [1:22] is the sub-list for method input_type + 25, // 22: pb.HTTPWebService.updateHTTPWebAuth:input_type -> pb.UpdateHTTPWebAuthRequest + 1, // 23: pb.HTTPWebService.createHTTPWeb:output_type -> pb.CreateHTTPWebResponse + 3, // 24: pb.HTTPWebService.findEnabledHTTPWeb:output_type -> pb.FindEnabledHTTPWebResponse + 5, // 25: pb.HTTPWebService.findEnabledHTTPWebConfig:output_type -> pb.FindEnabledHTTPWebConfigResponse + 27, // 26: pb.HTTPWebService.updateHTTPWeb:output_type -> pb.RPCSuccess + 27, // 27: pb.HTTPWebService.updateHTTPWebGzip:output_type -> pb.RPCSuccess + 27, // 28: pb.HTTPWebService.updateHTTPWebCharset:output_type -> pb.RPCSuccess + 27, // 29: pb.HTTPWebService.updateHTTPWebRequestHeader:output_type -> pb.RPCSuccess + 27, // 30: pb.HTTPWebService.updateHTTPWebResponseHeader:output_type -> pb.RPCSuccess + 27, // 31: pb.HTTPWebService.updateHTTPWebShutdown:output_type -> pb.RPCSuccess + 27, // 32: pb.HTTPWebService.updateHTTPWebPages:output_type -> pb.RPCSuccess + 27, // 33: pb.HTTPWebService.updateHTTPWebAccessLog:output_type -> pb.RPCSuccess + 27, // 34: pb.HTTPWebService.updateHTTPWebStat:output_type -> pb.RPCSuccess + 27, // 35: pb.HTTPWebService.updateHTTPWebCache:output_type -> pb.RPCSuccess + 27, // 36: pb.HTTPWebService.updateHTTPWebFirewall:output_type -> pb.RPCSuccess + 27, // 37: pb.HTTPWebService.updateHTTPWebLocations:output_type -> pb.RPCSuccess + 27, // 38: pb.HTTPWebService.updateHTTPWebRedirectToHTTPS:output_type -> pb.RPCSuccess + 27, // 39: pb.HTTPWebService.updateHTTPWebWebsocket:output_type -> pb.RPCSuccess + 27, // 40: pb.HTTPWebService.updateHTTPWebFastcgi:output_type -> pb.RPCSuccess + 27, // 41: pb.HTTPWebService.updateHTTPWebRewriteRules:output_type -> pb.RPCSuccess + 27, // 42: pb.HTTPWebService.updateHTTPWebHostRedirects:output_type -> pb.RPCSuccess + 24, // 43: pb.HTTPWebService.findHTTPWebHostRedirects:output_type -> pb.FindHTTPWebHostRedirectsResponse + 27, // 44: pb.HTTPWebService.updateHTTPWebAuth:output_type -> pb.RPCSuccess + 23, // [23:45] is the sub-list for method output_type + 1, // [1:23] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name @@ -2003,6 +2071,18 @@ func file_service_http_web_proto_init() { return nil } } + file_service_http_web_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateHTTPWebAuthRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -2010,7 +2090,7 @@ func file_service_http_web_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_http_web_proto_rawDesc, NumEnums: 0, - NumMessages: 25, + NumMessages: 26, NumExtensions: 0, NumServices: 1, }, @@ -2078,6 +2158,8 @@ type HTTPWebServiceClient interface { UpdateHTTPWebHostRedirects(ctx context.Context, in *UpdateHTTPWebHostRedirectsRequest, opts ...grpc.CallOption) (*RPCSuccess, error) // 查找主机跳转设置 FindHTTPWebHostRedirects(ctx context.Context, in *FindHTTPWebHostRedirectsRequest, opts ...grpc.CallOption) (*FindHTTPWebHostRedirectsResponse, error) + // 更改认证设置 + UpdateHTTPWebAuth(ctx context.Context, in *UpdateHTTPWebAuthRequest, opts ...grpc.CallOption) (*RPCSuccess, error) } type hTTPWebServiceClient struct { @@ -2277,6 +2359,15 @@ func (c *hTTPWebServiceClient) FindHTTPWebHostRedirects(ctx context.Context, in return out, nil } +func (c *hTTPWebServiceClient) UpdateHTTPWebAuth(ctx context.Context, in *UpdateHTTPWebAuthRequest, opts ...grpc.CallOption) (*RPCSuccess, error) { + out := new(RPCSuccess) + err := c.cc.Invoke(ctx, "/pb.HTTPWebService/updateHTTPWebAuth", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // HTTPWebServiceServer is the server API for HTTPWebService service. type HTTPWebServiceServer interface { // 创建Web配置 @@ -2321,6 +2412,8 @@ type HTTPWebServiceServer interface { UpdateHTTPWebHostRedirects(context.Context, *UpdateHTTPWebHostRedirectsRequest) (*RPCSuccess, error) // 查找主机跳转设置 FindHTTPWebHostRedirects(context.Context, *FindHTTPWebHostRedirectsRequest) (*FindHTTPWebHostRedirectsResponse, error) + // 更改认证设置 + UpdateHTTPWebAuth(context.Context, *UpdateHTTPWebAuthRequest) (*RPCSuccess, error) } // UnimplementedHTTPWebServiceServer can be embedded to have forward compatible implementations. @@ -2390,6 +2483,9 @@ func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebHostRedirects(context.Con func (*UnimplementedHTTPWebServiceServer) FindHTTPWebHostRedirects(context.Context, *FindHTTPWebHostRedirectsRequest) (*FindHTTPWebHostRedirectsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FindHTTPWebHostRedirects not implemented") } +func (*UnimplementedHTTPWebServiceServer) UpdateHTTPWebAuth(context.Context, *UpdateHTTPWebAuthRequest) (*RPCSuccess, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateHTTPWebAuth not implemented") +} func RegisterHTTPWebServiceServer(s *grpc.Server, srv HTTPWebServiceServer) { s.RegisterService(&_HTTPWebService_serviceDesc, srv) @@ -2773,6 +2869,24 @@ func _HTTPWebService_FindHTTPWebHostRedirects_Handler(srv interface{}, ctx conte return interceptor(ctx, in, info, handler) } +func _HTTPWebService_UpdateHTTPWebAuth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateHTTPWebAuthRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HTTPWebServiceServer).UpdateHTTPWebAuth(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.HTTPWebService/UpdateHTTPWebAuth", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HTTPWebServiceServer).UpdateHTTPWebAuth(ctx, req.(*UpdateHTTPWebAuthRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _HTTPWebService_serviceDesc = grpc.ServiceDesc{ ServiceName: "pb.HTTPWebService", HandlerType: (*HTTPWebServiceServer)(nil), @@ -2861,6 +2975,10 @@ var _HTTPWebService_serviceDesc = grpc.ServiceDesc{ MethodName: "findHTTPWebHostRedirects", Handler: _HTTPWebService_FindHTTPWebHostRedirects_Handler, }, + { + MethodName: "updateHTTPWebAuth", + Handler: _HTTPWebService_UpdateHTTPWebAuth_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "service_http_web.proto", diff --git a/pkg/rpc/protos/models/model_http_auth_policy.proto b/pkg/rpc/protos/models/model_http_auth_policy.proto new file mode 100644 index 0000000..374199a --- /dev/null +++ b/pkg/rpc/protos/models/model_http_auth_policy.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +// 服务认证策略 +message HTTPAuthPolicy { + int64 id = 1; + bool isOn = 2; + string name = 3; + string type = 4; + bytes paramsJSON = 5; +} \ No newline at end of file diff --git a/pkg/rpc/protos/service_http_auth_policy.proto b/pkg/rpc/protos/service_http_auth_policy.proto new file mode 100644 index 0000000..3a7cc1f --- /dev/null +++ b/pkg/rpc/protos/service_http_auth_policy.proto @@ -0,0 +1,47 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "models/model_http_auth_policy.proto"; +import "models/rpc_messages.proto"; + +// 服务认证策略服务 +service HTTPAuthPolicyService { + // 创建策略 + rpc createHTTPAuthPolicy (CreateHTTPAuthPolicyRequest) returns (CreateHTTPAuthPolicyResponse); + + // 修改策略 + rpc updateHTTPAuthPolicy (UpdateHTTPAuthPolicyRequest) returns (RPCSuccess); + + // 查找策略信息 + rpc findEnabledHTTPAuthPolicy (FindEnabledHTTPAuthPolicyRequest) returns (FindEnabledHTTPAuthPolicyResponse); +} + +// 创建策略 +message CreateHTTPAuthPolicyRequest { + string name = 1; + string type = 2; + bytes paramsJSON = 3; +} + +message CreateHTTPAuthPolicyResponse { + int64 httpAuthPolicyId = 1; +} + +// 修改策略 +message UpdateHTTPAuthPolicyRequest { + int64 httpAuthPolicyId = 1; + string name = 2; + bytes paramsJSON = 3; + bool isOn = 4; +} + +// 查找策略信息 +message FindEnabledHTTPAuthPolicyRequest { + int64 httpAuthPolicyId = 1; +} + +message FindEnabledHTTPAuthPolicyResponse { + HTTPAuthPolicy httpAuthPolicy = 1; +} diff --git a/pkg/rpc/protos/service_http_web.proto b/pkg/rpc/protos/service_http_web.proto index 4463f13..f11d2e3 100644 --- a/pkg/rpc/protos/service_http_web.proto +++ b/pkg/rpc/protos/service_http_web.proto @@ -69,6 +69,9 @@ service HTTPWebService { // 查找主机跳转设置 rpc findHTTPWebHostRedirects (FindHTTPWebHostRedirectsRequest) returns (FindHTTPWebHostRedirectsResponse); + + // 更改认证设置 + rpc updateHTTPWebAuth (UpdateHTTPWebAuthRequest) returns (RPCSuccess); } // 创建Web配置 @@ -207,4 +210,10 @@ message FindHTTPWebHostRedirectsRequest { message FindHTTPWebHostRedirectsResponse { bytes hostRedirectsJSON = 1; +} + +// 更改认证设置 +message UpdateHTTPWebAuthRequest { + int64 webId = 1; + bytes authJSON = 2; } \ No newline at end of file diff --git a/pkg/serverconfigs/http_auth_basic_method.go b/pkg/serverconfigs/http_auth_basic_method.go new file mode 100644 index 0000000..be688fe --- /dev/null +++ b/pkg/serverconfigs/http_auth_basic_method.go @@ -0,0 +1,70 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package serverconfigs + +import ( + "encoding/base64" + "encoding/json" + stringutil "github.com/iwind/TeaGo/utils/string" + "net/http" +) + +// HTTPAuthBasicMethodUser BasicAuth中的用户 +type HTTPAuthBasicMethodUser struct { + Username string `json:"username"` + Password string `json:"password"` + Encoder string `json:"encoding"` +} + +func (this *HTTPAuthBasicMethodUser) Validate(password string) (bool, error) { + switch this.Encoder { + case "md5": + return this.Password == stringutil.Md5(password), nil + case "base64": + return this.Password == base64.StdEncoding.EncodeToString([]byte(password)), nil + default: + return this.Password == password, nil + } +} + +// HTTPAuthBasicMethod BasicAuth方法定义 +type HTTPAuthBasicMethod struct { + Users []*HTTPAuthBasicMethodUser `json:"users"` + + userMap map[string]*HTTPAuthBasicMethodUser // username => *User +} + +func NewHTTPAuthBasicMethod() *HTTPAuthBasicMethod { + return &HTTPAuthBasicMethod{} +} + +func (this *HTTPAuthBasicMethod) Init(params map[string]interface{}) error { + this.userMap = map[string]*HTTPAuthBasicMethodUser{} + + paramsJSON, err := json.Marshal(params) + if err != nil { + return err + } + err = json.Unmarshal(paramsJSON, this) + if err != nil { + return err + } + + for _, user := range this.Users { + this.userMap[user.Username] = user + } + + return nil +} + +func (this *HTTPAuthBasicMethod) Filter(req *http.Request, doSubReq func(subReq *http.Request) (status int, err error), formatter func(string) string) (bool, error) { + username, password, ok := req.BasicAuth() + if !ok { + return false, nil + } + user, ok := this.userMap[username] + if !ok { + return false, nil + } + return user.Validate(password) +} diff --git a/pkg/serverconfigs/http_auth_basic_method_test.go b/pkg/serverconfigs/http_auth_basic_method_test.go new file mode 100644 index 0000000..5a9d8dc --- /dev/null +++ b/pkg/serverconfigs/http_auth_basic_method_test.go @@ -0,0 +1,84 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package serverconfigs + +import ( + "encoding/base64" + "github.com/iwind/TeaGo/assert" + "github.com/iwind/TeaGo/maps" + stringutil "github.com/iwind/TeaGo/utils/string" + "net/http" + "testing" +) + +func TestHTTPAuthBasicMethodUser_Validate(t *testing.T) { + a := assert.NewAssertion(t) + + { + user := &HTTPAuthBasicMethodUser{ + Password: "123456", + } + b, err := user.Validate("123456") + if err != nil { + t.Fatal(err) + } + a.IsTrue(b) + } + + { + user := &HTTPAuthBasicMethodUser{ + Password: "654321", + } + b, err := user.Validate("123456") + if err != nil { + t.Fatal(err) + } + a.IsFalse(b) + } + + { + user := &HTTPAuthBasicMethodUser{ + Password: stringutil.Md5("123456"), + Encoder: "md5", + } + b, err := user.Validate("123456") + if err != nil { + t.Fatal(err) + } + a.IsTrue(b) + } + + { + user := &HTTPAuthBasicMethodUser{ + Password: base64.StdEncoding.EncodeToString([]byte("123456")), + Encoder: "base64", + } + b, err := user.Validate("123456") + if err != nil { + t.Fatal(err) + } + a.IsTrue(b) + } +} + +func TestHTTPAuthBasicMethod_Filter(t *testing.T) { + + method := &HTTPAuthBasicMethod{} + err := method.Init(map[string]interface{}{ + "users": []maps.Map{ + { + "username": "hello", + "password": "world", + }, + }, + }) + if err != nil { + t.Fatal(err) + } + req, err := http.NewRequest(http.MethodGet, "http://teaos.cn/", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("Authorization", "Basic "+base64.StdEncoding.EncodeToString([]byte("hello:world"))) + t.Log(method.Filter(req, nil, nil)) +} diff --git a/pkg/serverconfigs/http_auth_config.go b/pkg/serverconfigs/http_auth_config.go new file mode 100644 index 0000000..2c971fc --- /dev/null +++ b/pkg/serverconfigs/http_auth_config.go @@ -0,0 +1,20 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package serverconfigs + +// HTTPAuthConfig 认证配置 +type HTTPAuthConfig struct { + IsPrior bool `yaml:"isPrior" json:"isPrior"` + IsOn bool `yaml:"isOn" json:"isOn"` + PolicyRefs []*HTTPAuthPolicyRef `yaml:"policyRefs" json:"policyRefs"` +} + +func (this *HTTPAuthConfig) Init() error { + for _, ref := range this.PolicyRefs { + err := ref.Init() + if err != nil { + return err + } + } + return nil +} diff --git a/pkg/serverconfigs/http_auth_method_interface.go b/pkg/serverconfigs/http_auth_method_interface.go new file mode 100644 index 0000000..256c17d --- /dev/null +++ b/pkg/serverconfigs/http_auth_method_interface.go @@ -0,0 +1,14 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package serverconfigs + +import "net/http" + +// HTTPAuthMethodInterface HTTP认证接口定义 +type HTTPAuthMethodInterface interface { + // Init 初始化 + Init(params map[string]interface{}) error + + // Filter 过滤 + Filter(req *http.Request, subReqFunc func(subReq *http.Request) (status int, err error), formatter func(string) string) (bool, error) +} diff --git a/pkg/serverconfigs/http_auth_policy.go b/pkg/serverconfigs/http_auth_policy.go new file mode 100644 index 0000000..8fdc9d3 --- /dev/null +++ b/pkg/serverconfigs/http_auth_policy.go @@ -0,0 +1,55 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package serverconfigs + +import ( + "errors" + "net/http" +) + +type HTTPAuthType = string + +const ( + HTTPAuthTypeBasicAuth HTTPAuthType = "basicAuth" // BasicAuth + HTTPAuthTypeSubRequest HTTPAuthType = "subRequest" // 子请求 +) + +// HTTPAuthPolicy HTTP认证策略 +type HTTPAuthPolicy struct { + Id int64 `json:"id"` + Name string `json:"name"` + IsOn bool `json:"isOn"` + Type HTTPAuthType `json:"type"` + Params map[string]interface{} `json:"params"` + + method HTTPAuthMethodInterface +} + +// Init 初始化 +func (this *HTTPAuthPolicy) Init() error { + switch this.Type { + case HTTPAuthTypeBasicAuth: + this.method = NewHTTPAuthBasicMethod() + case HTTPAuthTypeSubRequest: + this.method = NewHTTPAuthSubRequestMethod() + } + + if this.method == nil { + return errors.New("unknown auth method '" + this.Type + "'") + } + err := this.method.Init(this.Params) + if err != nil { + return err + } + + return nil +} + +// Filter 过滤 +func (this *HTTPAuthPolicy) Filter(req *http.Request, subReqFunc func(subReq *http.Request) (status int, err error), formatter func(string) string) (bool, error) { + if this.method == nil { + // 如果设置正确的方法,我们直接允许请求 + return true, nil + } + return this.method.Filter(req, subReqFunc, formatter) +} diff --git a/pkg/serverconfigs/http_auth_policy_ref.go b/pkg/serverconfigs/http_auth_policy_ref.go new file mode 100644 index 0000000..578431e --- /dev/null +++ b/pkg/serverconfigs/http_auth_policy_ref.go @@ -0,0 +1,20 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package serverconfigs + +// HTTPAuthPolicyRef 认证策略引用 +type HTTPAuthPolicyRef struct { + IsOn bool `yaml:"isOn" json:"isOn"` + AuthPolicyId int64 `yaml:"authPolicyId" json:"authPolicyId"` + AuthPolicy *HTTPAuthPolicy `yaml:"authPolicy" json:"authPolicy"` +} + +func (this *HTTPAuthPolicyRef) Init() error { + if this.AuthPolicy != nil { + err := this.AuthPolicy.Init() + if err != nil { + return err + } + } + return nil +} diff --git a/pkg/serverconfigs/http_auth_sub_request_method.go b/pkg/serverconfigs/http_auth_sub_request_method.go new file mode 100644 index 0000000..a511a25 --- /dev/null +++ b/pkg/serverconfigs/http_auth_sub_request_method.go @@ -0,0 +1,96 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package serverconfigs + +import ( + "crypto/tls" + "encoding/json" + "net/http" + "regexp" + "time" +) + +var httpAuthSubRequestHTTPClient = &http.Client{ + Timeout: 10 * time.Second, + Transport: &http.Transport{ + TLSClientConfig: &tls.Config{ + InsecureSkipVerify: true, + }, + }, +} + +// HTTPAuthSubRequestMethod 使用URL认证 +type HTTPAuthSubRequestMethod struct { + URL string `json:"url"` + Method string `json:"method"` + + // TODO 增加自定义Header、超时、证书等 + + isFullURL bool +} + +func NewHTTPAuthSubRequestMethod() *HTTPAuthSubRequestMethod { + return &HTTPAuthSubRequestMethod{} +} + +// Init 初始化 +func (this *HTTPAuthSubRequestMethod) Init(params map[string]interface{}) error { + paramsJSON, err := json.Marshal(params) + if err != nil { + return err + } + err = json.Unmarshal(paramsJSON, this) + if err != nil { + return err + } + + // 是否是完整的URL + this.isFullURL = false + if regexp.MustCompile(`^(?i)(http|https)://`).MatchString(this.URL) { + this.isFullURL = true + } else { + if len(this.URL) == 0 || this.URL[0] != '/' { + this.URL = "/" + this.URL + } + } + + return nil +} + +// Filter 过滤 +func (this *HTTPAuthSubRequestMethod) Filter(req *http.Request, doSubReq func(subReq *http.Request) (status int, err error), formatter func(string) string) (bool, error) { + var method = this.Method + if len(method) == 0 { + method = req.Method + } + + var url = formatter(this.URL) + if !this.isFullURL { + url = req.URL.Scheme + "://" + req.URL.Host + url + } + newReq, err := http.NewRequest(method, url, nil) + if err != nil { + return false, err + } + for k, v := range req.Header { + newReq.Header[k] = v + } + + if !this.isFullURL { + status, err := doSubReq(newReq) + if err != nil { + return false, err + } + return status >= 200 && status < 300, nil + } + + resp, err := httpAuthSubRequestHTTPClient.Do(newReq) + if err != nil { + return false, err + } + defer func() { + _ = resp.Body.Close() + }() + + return resp.StatusCode >= 200 && resp.StatusCode < 300, nil +} diff --git a/pkg/serverconfigs/http_auth_sub_request_method_test.go b/pkg/serverconfigs/http_auth_sub_request_method_test.go new file mode 100644 index 0000000..2dff18b --- /dev/null +++ b/pkg/serverconfigs/http_auth_sub_request_method_test.go @@ -0,0 +1,64 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package serverconfigs + +import ( + "github.com/iwind/TeaGo/rands" + "net/http" + "strings" + "testing" +) + +func TestHTTPAuthRequestMethod_Filter(t *testing.T) { + method := &HTTPAuthSubRequestMethod{} + err := method.Init(map[string]interface{}{ + "url": "http://127.0.0.1:2345/", + "method": http.MethodPost, + }) + if err != nil { + t.Fatal(err) + } + req, err := http.NewRequest(http.MethodGet, "https://teaos.cn/", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("Hello", "World") + req.Header.Set("User-Agent", "GoEdge/1.0") + b, err := method.Filter(req, func(subReq *http.Request) (status int, err error) { + return + }, func(s string) string { + return s + }) + if err != nil { + t.Fatal(err) + } + t.Log("result:", b) +} + +func TestHTTPAuthRequestMethod_Filter_Path(t *testing.T) { + method := &HTTPAuthSubRequestMethod{} + err := method.Init(map[string]interface{}{ + "url": "/hello?${var}", + "method": http.MethodGet, + }) + if err != nil { + t.Fatal(err) + } + req, err := http.NewRequest(http.MethodGet, "http://teaos.cn/", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("Hello", "World") + req.Header.Set("User-Agent", "GoEdge/1.0") + b, err := method.Filter(req, func(subReq *http.Request) (status int, err error) { + status = rands.Int(200, 400) + t.Log("execute sub request:", subReq.URL, status) + return + }, func(s string) string { + return strings.ReplaceAll(s, "${var}", "$VAR") + }) + if err != nil { + t.Fatal(err) + } + t.Log("result:", b) +} diff --git a/pkg/serverconfigs/http_web_config.go b/pkg/serverconfigs/http_web_config.go index 7885494..c517b21 100644 --- a/pkg/serverconfigs/http_web_config.go +++ b/pkg/serverconfigs/http_web_config.go @@ -39,6 +39,7 @@ type HTTPWebConfig struct { FilterPolicies []*HTTPFilterPolicy `yaml:"filterPolicies" json:"filterPolicies"` // 筛选策略 HostRedirects []*HTTPHostRedirectConfig `yaml:"hostRedirects" json:"hostRedirects"` // 主机跳转 + Auth *HTTPAuthConfig `yaml:"auth" json:"auth"` // 认证配置 } func (this *HTTPWebConfig) Init() error { @@ -224,6 +225,14 @@ func (this *HTTPWebConfig) Init() error { } } + // auth + if this.Auth != nil { + err := this.Auth.Init() + if err != nil { + return err + } + } + return nil }