Skip to content
Snippets Groups Projects
Commit cab1b715 authored by Olgun Cengiz's avatar Olgun Cengiz :drum:
Browse files

Merge branch '8-142-implement_ca_cert' into '9-configurable-maxmessagesize'

# Conflicts:
#   config.yaml.sample
#   handler/generate_keypair.go
#   handler/handler.go
#   handler/revoke.go
#   main.go
#   server/server.go
parents 4ef5a9d9 6d429ab5
No related branches found
No related tags found
4 merge requests!19Ci,!18Resolve "142-Implement_CA_cert",!17Resolve "Configurable MaxMessageSize",!16Resolve "Configurable MaxMessageSize"
[[constraint]] [[constraint]]
branch = "master" branch = "142-Implement_CA_cert"
name = "code.vereign.com/code/viam-apis" name = "code.vereign.com/code/viam-apis"
[[constraint]] [[constraint]]
......
dataStorageClientUrl: localhost:7777 # Make sure you have a "config.yaml" file on the root folder of this repo
grpcClientUrl: localhost:7877
restClientUrl: localhost:7878
# Certificate Related Config # You can use this sample YAML file to configure your installation
# Connection Information
dataStorageUrl: localhost:7777
grpcListenAddress: localhost:7877
restListenAddress: localhost:7878
# Choose a certificate method for providing PEM strings
# 1 = Read from file (*.crt and *.key files)
# 2 = Read from Vault server (this will require additional config information for Vault)
certificateMethod: 1
# Read Certificates From Folder and Files
certDir: cert certDir: cert
certFile: server.crt certFile: server.crt
certKey: server.key certKey: server.key
vereignCertFile: vereign_ca.cer vereignCertFile: vereign_ca.cer
vereignCertKey: vereign_ca.key vereignCertKey: vereign_ca.key
caCertFile: ca.crt
# Maximum Message Size (in megabytes) # Maximum Message Size (in megabytes)
maxMessageSize: 32 maxMessageSize: 32
\ No newline at end of file
# Read Certificates From Vault Server
vaultAddress: http://10.6.10.119:8200
vaultToken: 00000000-0000-0000-0000-000000000000
vaultPath: /developers/data/devteam/cert
certificateKey: certificateKey
privateKey: privateKey
caCertificateKey: caCertificateKey
...@@ -39,7 +39,7 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context, ...@@ -39,7 +39,7 @@ func (s *KeyStorageServerImpl) GenerateKeyPair(ctx context.Context,
auth := s.CreateAuthentication(ctx) auth := s.CreateAuthentication(ctx)
client := &client.DataStorageClientImpl{} client := &client.DataStorageClientImpl{}
client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.MaxMessageSize) client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.KeyFilePath, s.CaCertFilePath, s.MaxMessageSize)
defer client.CloseClient() defer client.CloseClient()
generateKeyPairResponse := &api.GenerateKeyPairResponse{} generateKeyPairResponse := &api.GenerateKeyPairResponse{}
......
...@@ -36,6 +36,8 @@ import ( ...@@ -36,6 +36,8 @@ import (
type KeyStorageServerImpl struct { type KeyStorageServerImpl struct {
DataStorageUrl string DataStorageUrl string
CertFilePath string CertFilePath string
KeyFilePath string
CaCertFilePath string
VereignCertFilePath string VereignCertFilePath string
VereignPrivateKeyFilePath string VereignPrivateKeyFilePath string
MaxMessageSize int MaxMessageSize int
...@@ -61,7 +63,7 @@ func (s *KeyStorageServerImpl) GetKey(ctx context.Context, in *api.GetKeyRequest ...@@ -61,7 +63,7 @@ func (s *KeyStorageServerImpl) GetKey(ctx context.Context, in *api.GetKeyRequest
auth := s.CreateAuthentication(ctx) auth := s.CreateAuthentication(ctx)
client := &client.DataStorageClientImpl{} client := &client.DataStorageClientImpl{}
client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.MaxMessageSize) client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.KeyFilePath, s.CaCertFilePath, s.MaxMessageSize)
defer client.CloseClient() defer client.CloseClient()
getKeyResponse := &api.GetKeyResponse{} getKeyResponse := &api.GetKeyResponse{}
...@@ -108,7 +110,7 @@ func (s *KeyStorageServerImpl) SetKey(ctx context.Context, in *api.SetKeyRequest ...@@ -108,7 +110,7 @@ func (s *KeyStorageServerImpl) SetKey(ctx context.Context, in *api.SetKeyRequest
auth := s.CreateAuthentication(ctx) auth := s.CreateAuthentication(ctx)
client := &client.DataStorageClientImpl{} client := &client.DataStorageClientImpl{}
client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.MaxMessageSize) client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.KeyFilePath, s.CaCertFilePath, s.MaxMessageSize)
defer client.CloseClient() defer client.CloseClient()
setKeyResponse := &api.SetKeyResponse{} setKeyResponse := &api.SetKeyResponse{}
...@@ -156,7 +158,7 @@ func (s *KeyStorageServerImpl) ReserveKeyUUID(ctx context.Context, in *api.Reser ...@@ -156,7 +158,7 @@ func (s *KeyStorageServerImpl) ReserveKeyUUID(ctx context.Context, in *api.Reser
auth := s.CreateAuthentication(ctx) auth := s.CreateAuthentication(ctx)
client := &client.DataStorageClientImpl{} client := &client.DataStorageClientImpl{}
client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.MaxMessageSize) client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.KeyFilePath, s.CaCertFilePath, s.MaxMessageSize)
defer client.CloseClient() defer client.CloseClient()
reserveKeyUUIDResponse := &api.ReserveKeyUUIDResponse{} reserveKeyUUIDResponse := &api.ReserveKeyUUIDResponse{}
......
...@@ -29,7 +29,7 @@ func (s *KeyStorageServerImpl) Revoke(ctx context.Context, in *api.RevokeRequest ...@@ -29,7 +29,7 @@ func (s *KeyStorageServerImpl) Revoke(ctx context.Context, in *api.RevokeRequest
auth := s.CreateAuthentication(ctx) auth := s.CreateAuthentication(ctx)
client := &client.DataStorageClientImpl{} client := &client.DataStorageClientImpl{}
client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.MaxMessageSize) client.SetUpClient(auth, s.DataStorageUrl, s.CertFilePath, s.KeyFilePath, s.CaCertFilePath, s.MaxMessageSize)
defer client.CloseClient() defer client.CloseClient()
revokeResponse := &api.RevokeResponse{} revokeResponse := &api.RevokeResponse{}
......
...@@ -35,12 +35,13 @@ func main() { ...@@ -35,12 +35,13 @@ func main() {
return return
} }
grpcAddress := viper.GetString("grpcClientUrl") grpcAddress := viper.GetString("grpcListenAddress")
restAddress := viper.GetString("restClientUrl") restAddress := viper.GetString("restListenAddress")
dataStorageAddress := viper.GetString("dataStorageClientUrl") dataStorageAddress := viper.GetString("dataStorageUrl")
certFilePath := certDir + "/" + viper.GetString("certFile") certFilePath := certDir + "/" + viper.GetString("certFile")
privateKeyFilePath := certDir + "/" + viper.GetString("certKey") privateKeyFilePath := certDir + "/" + viper.GetString("certKey")
caCertFilePath := certDir + "/" + viper.GetString("caCertFile")
vereignCertFilePath := certDir + "/" + viper.GetString("vereignCertFile") vereignCertFilePath := certDir + "/" + viper.GetString("vereignCertFile")
vereignPrivateKeyFilePath := certDir + "/" + viper.GetString("vereignCertKey") vereignPrivateKeyFilePath := certDir + "/" + viper.GetString("vereignCertKey")
...@@ -48,7 +49,7 @@ func main() { ...@@ -48,7 +49,7 @@ func main() {
// fire the gRPC server in a goroutine // fire the gRPC server in a goroutine
go func() { go func() {
err := server.StartGRPCServer(grpcAddress, certFilePath, privateKeyFilePath, vereignCertFilePath, err := server.StartGRPCServer(grpcAddress, certFilePath, privateKeyFilePath, caCertFilePath, vereignCertFilePath,
vereignPrivateKeyFilePath, dataStorageAddress, maxMessageSize) vereignPrivateKeyFilePath, dataStorageAddress, maxMessageSize)
if err != nil { if err != nil {
log.Fatalf("failed to start gRPC server: %s", err) log.Fatalf("failed to start gRPC server: %s", err)
......
...@@ -9,14 +9,15 @@ func SetConfigValues() { ...@@ -9,14 +9,15 @@ func SetConfigValues() {
// Set Default Values For Config Variables // Set Default Values For Config Variables
// Vereign API Related // Vereign API Related
viper.SetDefault("grpcClientUrl", "localhost:7877") viper.SetDefault("grpcListenAddress", "localhost:7877")
viper.SetDefault("restClientUrl", "localhost:7878") viper.SetDefault("restListenAddress", "localhost:7878")
viper.SetDefault("dataStorageClientUrl", "localhost:7777") viper.SetDefault("dataStorageUrl", "localhost:7777")
// Certificates Related // Certificates Related
viper.SetDefault("certDir", "cert") viper.SetDefault("certDir", "cert")
viper.SetDefault("certFile", "server.crt") viper.SetDefault("certFile", "server.crt")
viper.SetDefault("certKey", "server.key") viper.SetDefault("certKey", "server.key")
viper.SetDefault("caCertFile", "ca.crt")
viper.SetDefault("vereignCertFile", "vereign_ca.cer") viper.SetDefault("vereignCertFile", "vereign_ca.cer")
viper.SetDefault("vereignCertKey", "vereign_ca.key") viper.SetDefault("vereignCertKey", "vereign_ca.key")
...@@ -28,4 +29,11 @@ func SetConfigValues() { ...@@ -28,4 +29,11 @@ func SetConfigValues() {
if err := viper.ReadInConfig(); err != nil { if err := viper.ReadInConfig(); err != nil {
log.Printf("can't read config: %s, will use default values", err) log.Printf("can't read config: %s, will use default values", err)
} }
// Print all config values to log file
log.Printf("All Settings From Config:")
as := viper.AllSettings()
for key, _ := range as {
log.Printf("%s => %s", key, viper.GetString(key))
}
} }
\ No newline at end of file
...@@ -47,6 +47,8 @@ const ( ...@@ -47,6 +47,8 @@ const (
) )
var pkgCertFile string var pkgCertFile string
var pkgKeyFile string
var pkgCaCertFile string
func credMatcher(headerName string) (mdName string, ok bool) { func credMatcher(headerName string) (mdName string, ok bool) {
if headerName == "Session" { if headerName == "Session" {
...@@ -70,7 +72,7 @@ func authenticateClient(ctx context.Context, s *handler.KeyStorageServerImpl, in ...@@ -70,7 +72,7 @@ func authenticateClient(ctx context.Context, s *handler.KeyStorageServerImpl, in
} }
sessionClient := &client.DataStorageClientImpl{} sessionClient := &client.DataStorageClientImpl{}
sessionClient.SetUpClient(viamAuth, viper.GetString("dataStorageClientUrl"), pkgCertFile, viper.GetInt("maxMessageSize")) sessionClient.SetUpClient(viamAuth, viper.GetString("dataStorageUrl"), pkgCertFile, pkgKeyFile, pkgCaCertFile, viper.GetInt("maxMessageSize"))
defer sessionClient.CloseClient() defer sessionClient.CloseClient()
if clientAuth.Uuid == viamAuth.Uuid { if clientAuth.Uuid == viamAuth.Uuid {
...@@ -107,8 +109,10 @@ func unaryInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServ ...@@ -107,8 +109,10 @@ func unaryInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServ
return handler1(ctx, req) return handler1(ctx, req)
} }
func StartGRPCServer(address, certFilePath, privateKeyFilePath, vereignCertFilePath, vereignPrivateKeyFilePath, dataStorageAddress string, maxMessageSize int) error { func StartGRPCServer(address, certFilePath, privateKeyFilePath, caCertFilePath, vereignCertFilePath, vereignPrivateKeyFilePath, dataStorageAddress string, maxMessageSize int) error {
pkgCertFile = certFilePath pkgCertFile = certFilePath
pkgKeyFile = privateKeyFilePath
pkgCaCertFile = caCertFilePath
// create a listener on TCP port // create a listener on TCP port
lis, err := net.Listen("tcp", address) lis, err := net.Listen("tcp", address)
...@@ -120,6 +124,8 @@ func StartGRPCServer(address, certFilePath, privateKeyFilePath, vereignCertFileP ...@@ -120,6 +124,8 @@ func StartGRPCServer(address, certFilePath, privateKeyFilePath, vereignCertFileP
s := handler.KeyStorageServerImpl{ s := handler.KeyStorageServerImpl{
DataStorageUrl: dataStorageAddress, DataStorageUrl: dataStorageAddress,
CertFilePath: certFilePath, CertFilePath: certFilePath,
KeyFilePath: privateKeyFilePath,
CaCertFilePath: caCertFilePath,
VereignCertFilePath: vereignCertFilePath, VereignCertFilePath: vereignCertFilePath,
VereignPrivateKeyFilePath: vereignPrivateKeyFilePath, VereignPrivateKeyFilePath: vereignPrivateKeyFilePath,
MaxMessageSize: maxMessageSize, MaxMessageSize: maxMessageSize,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment