forked from TrueCloudLab/frostfs-node
[#414] ir: Serve ControlService
Serve `ControlService` instance on configured endpoint (do not serve if not specified). Read allowed keys from config. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
4001ba2967
commit
455fd952dd
5 changed files with 73 additions and 10 deletions
|
@ -26,7 +26,7 @@ func (s *Server) HealthCheck(_ context.Context, req *control.HealthCheckRequest)
|
|||
body.SetHealthStatus(s.prm.healthChecker.HealthStatus())
|
||||
|
||||
// sign the response
|
||||
if err := SignMessage(s.prm.key, resp); err != nil {
|
||||
if err := SignMessage(&s.prm.key.PrivateKey, resp); err != nil {
|
||||
return nil, status.Error(codes.Internal, err.Error())
|
||||
}
|
||||
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
package control
|
||||
|
||||
import (
|
||||
"crypto/ecdsa"
|
||||
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
||||
)
|
||||
|
||||
// Prm groups required parameters of
|
||||
// Server's constructor.
|
||||
type Prm struct {
|
||||
key *ecdsa.PrivateKey
|
||||
key keys.PrivateKey
|
||||
|
||||
healthChecker HealthChecker
|
||||
}
|
||||
|
||||
// SetPrivateKey sets private key to sign responses.
|
||||
func (x *Prm) SetPrivateKey(key *ecdsa.PrivateKey) {
|
||||
func (x *Prm) SetPrivateKey(key keys.PrivateKey) {
|
||||
x.key = key
|
||||
}
|
||||
|
||||
|
|
|
@ -2,8 +2,6 @@ package control
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
crypto "github.com/nspcc-dev/neofs-crypto"
|
||||
)
|
||||
|
||||
// Server is an entity that serves
|
||||
|
@ -34,8 +32,6 @@ func panicOnPrmValue(n string, v interface{}) {
|
|||
func New(prm Prm, opts ...Option) *Server {
|
||||
// verify required parameters
|
||||
switch {
|
||||
case prm.key == nil:
|
||||
panicOnPrmValue("key", prm.key)
|
||||
case prm.healthChecker == nil:
|
||||
panicOnPrmValue("health checker", prm.healthChecker)
|
||||
}
|
||||
|
@ -50,6 +46,6 @@ func New(prm Prm, opts ...Option) *Server {
|
|||
return &Server{
|
||||
prm: prm,
|
||||
|
||||
allowedKeys: append(o.allowedKeys, crypto.MarshalPublicKey(&prm.key.PublicKey)),
|
||||
allowedKeys: append(o.allowedKeys, prm.key.PublicKey().Bytes()),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue