Skip to content
/ etcd Public
forked from etcd-io/etcd

Commit

Permalink
integration: test lease revoke routine with JWT token
Browse files Browse the repository at this point in the history
etcd-io#9698 wasn't really testing
the panic code path when leases are expiry.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
  • Loading branch information
gyuho committed May 24, 2018
1 parent 20cf7f4 commit fbb0330
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
14 changes: 13 additions & 1 deletion integration/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ var (
ClientCertAuth: true,
}

defaultTokenJWT = "jwt,pub-key=./fixtures/server.crt,priv-key=./fixtures/server.key.insecure,sign-method=RS256,ttl=1s"

lg = zap.NewNop()
)

Expand All @@ -123,6 +125,8 @@ type ClusterConfig struct {

DiscoveryURL string

AuthToken string

UseGRPC bool

QuotaBackendBytes int64
Expand Down Expand Up @@ -272,6 +276,7 @@ func (c *cluster) mustNewMember(t *testing.T) *member {
m := mustNewMember(t,
memberConfig{
name: c.name(rand.Int()),
authToken: c.cfg.AuthToken,
peerTLS: c.cfg.PeerTLS,
clientTLS: c.cfg.ClientTLS,
quotaBackendBytes: c.cfg.QuotaBackendBytes,
Expand Down Expand Up @@ -557,6 +562,7 @@ type memberConfig struct {
name string
peerTLS *transport.TLSInfo
clientTLS *transport.TLSInfo
authToken string
quotaBackendBytes int64
maxTxnOps uint
maxRequestBytes uint
Expand Down Expand Up @@ -632,7 +638,13 @@ func mustNewMember(t *testing.T, mcfg memberConfig) *member {
if mcfg.snapshotCatchUpEntries != 0 {
m.SnapshotCatchUpEntries = mcfg.snapshotCatchUpEntries
}
m.AuthToken = "simple" // for the purpose of integration testing, simple token is enough

// for the purpose of integration testing, simple token is enough
m.AuthToken = "simple"
if mcfg.authToken != "" {
m.AuthToken = mcfg.authToken
}

m.BcryptCost = uint(bcrypt.MinCost) // use min bcrypt cost to speedy up integration testing

m.grpcServerOpts = []grpc.ServerOption{}
Expand Down
16 changes: 15 additions & 1 deletion integration/v3_auth_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,23 @@ func TestV3AuthRevision(t *testing.T) {
// TestV3AuthWithLeaseRevokeWithRoot ensures that granted leases
// with root user be revoked after TTL.
func TestV3AuthWithLeaseRevokeWithRoot(t *testing.T) {
testV3AuthWithLeaseRevokeWithRoot(t, false)
}

// TestV3AuthWithLeaseRevokeWithRootJWT creates a lease with a JWT-token enabled cluster.
// And tests if server is able to revoke expiry lease item.
func TestV3AuthWithLeaseRevokeWithRootJWT(t *testing.T) {
testV3AuthWithLeaseRevokeWithRoot(t, true)
}

func testV3AuthWithLeaseRevokeWithRoot(t *testing.T, jwt bool) {
defer testutil.AfterTest(t)

clus := NewClusterV3(t, &ClusterConfig{Size: 1})
ccfg := &ClusterConfig{Size: 1}
if jwt {
ccfg.AuthToken = defaultTokenJWT
}
clus := NewClusterV3(t, ccfg)
defer clus.Terminate(t)

api := toGRPC(clus.Client(0))
Expand Down

0 comments on commit fbb0330

Please sign in to comment.