Skip to content

Commit 15fd46f

Browse files
author
Brian McCallister
committed
simplify caserver, we don't need a router
1 parent 6481155 commit 15fd46f

File tree

3 files changed

+18
-27
lines changed

3 files changed

+18
-27
lines changed

pkg/caclient/caclient.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,18 @@ import (
77
"fmt"
88
"io/ioutil"
99
"net/http"
10-
"net/url"
1110

1211
"github.com/brianm/epithet/pkg/caserver"
1312
)
1413

1514
// Client is a CA Client
1615
type Client struct {
1716
httpClient *http.Client
18-
caURL *url.URL
17+
caURL string
1918
}
2019

2120
// New creates a new CA Client
22-
func New(url *url.URL, options ...Option) *Client {
21+
func New(url string, options ...Option) *Client {
2322
client := &Client{
2423
caURL: url,
2524
httpClient: http.DefaultClient,
@@ -58,7 +57,7 @@ func (c *Client) GetCert(ctx context.Context, req *caserver.CreateCertRequest) (
5857
return nil, err
5958
}
6059

61-
rq, err := http.NewRequest("POST", c.caURL.String(), bytes.NewReader(body))
60+
rq, err := http.NewRequest("POST", c.caURL, bytes.NewReader(body))
6261
if err != nil {
6362
return nil, err
6463
}

pkg/caserver/caserver.go

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ import (
1010

1111
"github.com/brianm/epithet/pkg/ca"
1212
"github.com/brianm/epithet/pkg/sshcert"
13-
"github.com/go-chi/chi"
14-
"github.com/go-chi/chi/middleware"
1513
"github.com/sirupsen/logrus"
1614
)
1715

@@ -22,25 +20,22 @@ func New(c *ca.CA) http.Handler {
2220
cas := &caServer{
2321
c: c,
2422
}
25-
26-
r := chi.NewRouter()
27-
r.Use(middleware.RequestID)
28-
r.Use(middleware.RealIP)
29-
r.Use(middleware.Logger)
30-
r.Use(middleware.Recoverer)
31-
32-
r.Use(middleware.Timeout(60 * time.Second))
33-
34-
r.Get("/", cas.GetPubKey)
35-
r.Post("/", cas.CreateCert)
36-
37-
return r
23+
return cas
3824
}
3925

4026
type caServer struct {
4127
c *ca.CA
4228
}
4329

30+
func (s *caServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
31+
switch r.Method {
32+
case "GET":
33+
s.getPubKey(w, r)
34+
case "POST":
35+
s.createCert(w, r)
36+
}
37+
}
38+
4439
// CreateCertRequest asks for a signed cert
4540
type CreateCertRequest struct {
4641
PublicKey sshcert.RawPublicKey `json:"publicKey"`
@@ -57,7 +52,7 @@ type CreateCertResponse struct {
5752
// RequestBodySizeLimit is the maximum request body size
5853
const RequestBodySizeLimit = 8192
5954

60-
func (s *caServer) CreateCert(w http.ResponseWriter, r *http.Request) {
55+
func (s *caServer) createCert(w http.ResponseWriter, r *http.Request) {
6156
ccr := CreateCertRequest{}
6257
lr := io.LimitReader(r.Body, RequestBodySizeLimit)
6358

@@ -110,7 +105,7 @@ func (s *caServer) CreateCert(w http.ResponseWriter, r *http.Request) {
110105
}
111106
}
112107

113-
func (s *caServer) GetPubKey(w http.ResponseWriter, r *http.Request) {
108+
func (s *caServer) getPubKey(w http.ResponseWriter, r *http.Request) {
114109
w.Header().Add("Content-type", "text/plain")
115110
w.WriteHeader(200)
116111
w.Write([]byte(s.c.PublicKey()))

test/integration_test.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"log"
77
"net"
88
"net/http/httptest"
9-
"net/url"
109
"os/exec"
1110
"testing"
1211

@@ -31,7 +30,7 @@ func Test_EndToEnd(t *testing.T) {
3130
c, err := ca.New(_caPubKey, _caPrivKey)
3231
require.NoError(err)
3332

34-
cad, err := startCA(c)
33+
cad, err := startCAServer(c)
3534
require.NoError(err)
3635
defer cad.Close()
3736

@@ -42,9 +41,7 @@ func Test_EndToEnd(t *testing.T) {
4241
pubKey, privKey, err := sshcert.GenerateKeys()
4342
require.NoError(err)
4443

45-
caurl, err := url.Parse(cad.srv.URL + "/")
46-
require.NoError(err)
47-
cac := caclient.New(caurl)
44+
cac := caclient.New(cad.srv.URL)
4845

4946
car, err := cac.GetCert(ctx, &caserver.CreateCertRequest{
5047
PublicKey: pubKey,
@@ -72,7 +69,7 @@ type caServer struct {
7269
srv *httptest.Server
7370
}
7471

75-
func startCA(c *ca.CA) (*caServer, error) {
72+
func startCAServer(c *ca.CA) (*caServer, error) {
7673
handler := caserver.New(c)
7774
srv := httptest.NewServer(handler)
7875

0 commit comments

Comments
 (0)