Remove grpc.DefaultClient() reference from policies and use only one gprc client.

This commit is contained in:
Daniel Swärd
2023-07-28 12:21:02 +02:00
parent 44d9c50f1e
commit ce4ad80ce2
3 changed files with 12 additions and 14 deletions
+7 -11
View File
@@ -68,7 +68,10 @@ func Server(cfg *config.Config) *cli.Command {
if err != nil {
return err
}
err = grpc.Configure(grpc.GetClientOptions(cfg.GRPCClientTLS)...)
cfg.GrpcClient, err = grpc.NewClient(
append(
grpc.GetClientOptions(cfg.GRPCClientTLS),
grpc.WithTraceProvider(traceProvider))...)
if err != nil {
return err
}
@@ -269,14 +272,7 @@ func (h *StaticRouteHandler) backchannelLogout(w http.ResponseWriter, r *http.Re
}
func loadMiddlewares(ctx context.Context, logger log.Logger, cfg *config.Config, userInfoCache microstore.Store, traceProvider trace.TracerProvider) alice.Chain {
grpcClient, err := grpc.NewClient(
append(
grpc.GetClientOptions(cfg.GRPCClientTLS),
grpc.WithTraceProvider(traceProvider))...)
if err != nil {
logger.Fatal().Err(err).Msg("Failed to get gateway client")
}
rolesClient := settingssvc.NewRoleService("com.owncloud.api.settings", grpcClient)
rolesClient := settingssvc.NewRoleService("com.owncloud.api.settings", cfg.GrpcClient)
gatewaySelector, err := pool.GatewaySelector(cfg.Reva.Address, append(cfg.Reva.GetRevaOptions(), pool.WithRegistry(registry.GetRegistry()))...)
if err != nil {
logger.Fatal().Err(err).Msg("Failed to get gateway selector")
@@ -322,7 +318,7 @@ func loadMiddlewares(ctx context.Context, logger log.Logger, cfg *config.Config,
logger.Fatal().Msgf("Invalid role assignment driver '%s'", cfg.RoleAssignment.Driver)
}
storeClient := storesvc.NewStoreService("com.owncloud.api.store", grpcClient)
storeClient := storesvc.NewStoreService("com.owncloud.api.store", cfg.GrpcClient)
if err != nil {
logger.Error().Err(err).
Str("gateway", cfg.Reva.Address).
@@ -415,7 +411,7 @@ func loadMiddlewares(ctx context.Context, logger log.Logger, cfg *config.Config,
middleware.Logger(logger),
middleware.PolicySelectorConfig(*cfg.PolicySelector),
),
middleware.Policies(logger, cfg.PoliciesMiddleware.Query),
middleware.Policies(logger, cfg.PoliciesMiddleware.Query, cfg.GrpcClient),
// finally, trigger home creation when a user logs in
middleware.CreateHome(
middleware.Logger(logger),
+2
View File
@@ -5,6 +5,7 @@ import (
"time"
"github.com/owncloud/ocis/v2/ocis-pkg/shared"
"go-micro.dev/v4/client"
)
// Config combines all available configuration parts.
@@ -21,6 +22,7 @@ type Config struct {
Reva *shared.Reva `yaml:"reva"`
GRPCClientTLS *shared.GRPCClientTLS `yaml:"grpc_client_tls"`
GrpcClient client.Client `yaml:"-"`
RoleQuotas map[string]uint64 `yaml:"role_quotas"`
Policies []Policy `yaml:"policies"`
+3 -3
View File
@@ -9,11 +9,11 @@ import (
"github.com/go-chi/chi/v5/middleware"
"github.com/go-chi/render"
"github.com/owncloud/ocis/v2/ocis-pkg/log"
"github.com/owncloud/ocis/v2/ocis-pkg/service/grpc"
pMessage "github.com/owncloud/ocis/v2/protogen/gen/ocis/messages/policies/v0"
pService "github.com/owncloud/ocis/v2/protogen/gen/ocis/services/policies/v0"
"github.com/owncloud/ocis/v2/services/webdav/pkg/net"
tusd "github.com/tus/tusd/pkg/handler"
"go-micro.dev/v4/client"
)
type (
@@ -34,8 +34,8 @@ type (
const DeniedMessage = "Operation denied due to security policies"
// Policies verifies if a request is granted or not.
func Policies(logger log.Logger, qs string) func(next http.Handler) http.Handler {
pClient := pService.NewPoliciesProviderService("com.owncloud.api.policies", grpc.DefaultClient())
func Policies(logger log.Logger, qs string, grpcClient client.Client) func(next http.Handler) http.Handler {
pClient := pService.NewPoliciesProviderService("com.owncloud.api.policies", grpcClient)
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {