path.Join(constants.SystemConfDir, "grpc"),
}
-func TryLoadAcl(serverId mtls.Identity) ACLChecker {
+func TryLoadAcl(serverId mtls.Identity, enableEphs bool) ACLChecker {
logger := log.WithPrefix("ACLChecker")
var (
fsErr, ephsErr error
}
}
- if ay, err := loadAclFromEphs(serverId); err == nil {
- logger.V(1).Infof("loaded ACLs for service %q from ephs", serverId.Name())
- return ay
- } else {
- ephsErr = err
+ if enableEphs {
+ if ay, err := loadAclFromEphs(serverId); err == nil {
+ logger.V(1).Infof("loaded ACLs for service %q from ephs", serverId.Name())
+ return ay
+ } else {
+ ephsErr = err
+ }
}
logger.V(1).Infof(
lru "github.com/hashicorp/golang-lru/v2"
grpc_quic "go.fuhry.dev/grpc-quic"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/credentials"
+ "google.golang.org/grpc/health/grpc_health_v1"
+ "google.golang.org/grpc/peer"
+ "google.golang.org/grpc/status"
+
"go.fuhry.dev/runtime/grpc/internal/acl"
"go.fuhry.dev/runtime/grpc/internal/common"
"go.fuhry.dev/runtime/mtls"
"go.fuhry.dev/runtime/utils/hostname"
"go.fuhry.dev/runtime/utils/log"
"go.fuhry.dev/runtime/utils/option"
- "google.golang.org/grpc"
- "google.golang.org/grpc/codes"
- "google.golang.org/grpc/credentials"
- "google.golang.org/grpc/health/grpc_health_v1"
- "google.golang.org/grpc/peer"
- "google.golang.org/grpc/status"
)
type Server struct {
port uint16
verifier mtls.MTLSPeerVerifier
acl acl.ACLChecker
+ aclEphs bool
log log.Logger
sessions *lru.Cache[string, *session]
connFac common.ConnectionFactory
})
}
+func WithoutEphsAcl() ServerOption {
+ return option.NewOption(func(s *Server) error {
+ s.aclEphs = false
+ return nil
+ })
+}
+
var defaultPort *uint
func RandomPort() uint {
identity: id,
publisher: pub,
port: port,
- acl: acl.TryLoadAcl(id),
+ acl: nil,
+ aclEphs: true,
verifier: cv,
log: log.WithPrefix(fmt.Sprintf("grpcServer:%s", id.Name())),
sessions: sessionsLru,
}
}
+ server.acl = acl.TryLoadAcl(id, server.aclEphs)
+
if server.connFac == nil {
server.connFac = common.NewDefaultConnectionFactory()
}