Skip to content

Commit 1868f09

Browse files
author
Lauren Voswinkel
committed
More adjustments
1 parent 127b4ac commit 1868f09

File tree

2 files changed

+229
-236
lines changed

2 files changed

+229
-236
lines changed

plugins/database/hana/hana.go

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ import (
77
"strings"
88

99
"github.com/hashicorp/vault/api"
10+
"github.com/hashicorp/vault/sdk/database/dbplugin/v5"
1011
"github.com/hashicorp/vault/sdk/database/helper/connutil"
1112
"github.com/hashicorp/vault/sdk/database/helper/credsutil"
1213
"github.com/hashicorp/vault/sdk/database/helper/dbutil"
13-
"github.com/hashicorp/vault/sdk/database/newdbplugin"
1414
"github.com/hashicorp/vault/sdk/helper/dbtxn"
1515
"github.com/hashicorp/vault/sdk/helper/strutil"
1616

@@ -27,13 +27,13 @@ type HANA struct {
2727
*connutil.SQLConnectionProducer
2828
}
2929

30-
var _ newdbplugin.Database = &HANA{}
30+
var _ dbplugin.Database = &HANA{}
3131

3232
// New implements builtinplugins.BuiltinFactory
3333
func New() (interface{}, error) {
3434
db := new()
3535
// Wrap the plugin with middleware to sanitize errors
36-
dbType := newdbplugin.NewDatabaseErrorSanitizerMiddleware(db, db.secretValues)
36+
dbType := dbplugin.NewDatabaseErrorSanitizerMiddleware(db, db.secretValues)
3737

3838
return dbType, nil
3939
}
@@ -53,13 +53,13 @@ func (h *HANA) secretValues() map[string]string {
5353
}
5454
}
5555

56-
func (h *HANA) Initialize(ctx context.Context, req newdbplugin.InitializeRequest) (newdbplugin.InitializeResponse, error) {
56+
func (h *HANA) Initialize(ctx context.Context, req dbplugin.InitializeRequest) (dbplugin.InitializeResponse, error) {
5757
conf, err := h.Init(ctx, req.Config, req.VerifyConnection)
5858
if err != nil {
59-
return newdbplugin.InitializeResponse{}, fmt.Errorf("error initializing db: %w", err)
59+
return dbplugin.InitializeResponse{}, fmt.Errorf("error initializing db: %w", err)
6060
}
6161

62-
return newdbplugin.InitializeResponse{
62+
return dbplugin.InitializeResponse{
6363
Config: conf,
6464
}, nil
6565
}
@@ -71,7 +71,7 @@ func Run(apiTLSConfig *api.TLSConfig) error {
7171
return err
7272
}
7373

74-
newdbplugin.Serve(dbType.(newdbplugin.Database), api.VaultPluginTLSProvider(apiTLSConfig))
74+
dbplugin.Serve(dbType.(dbplugin.Database), api.VaultPluginTLSProvider(apiTLSConfig))
7575

7676
return nil
7777
}
@@ -92,19 +92,19 @@ func (h *HANA) getConnection(ctx context.Context) (*sql.DB, error) {
9292

9393
// CreateUser generates the username/password on the underlying HANA secret backend
9494
// as instructed by the CreationStatement provided.
95-
func (h *HANA) NewUser(ctx context.Context, req newdbplugin.NewUserRequest) (response newdbplugin.NewUserResponse, err error) {
95+
func (h *HANA) NewUser(ctx context.Context, req dbplugin.NewUserRequest) (response dbplugin.NewUserResponse, err error) {
9696
// Grab the lock
9797
h.Lock()
9898
defer h.Unlock()
9999

100100
// Get the connection
101101
db, err := h.getConnection(ctx)
102102
if err != nil {
103-
return newdbplugin.NewUserResponse{}, err
103+
return dbplugin.NewUserResponse{}, err
104104
}
105105

106106
if len(req.Statements.Commands) == 0 {
107-
return newdbplugin.NewUserResponse{}, dbutil.ErrEmptyCreationStatement
107+
return dbplugin.NewUserResponse{}, dbutil.ErrEmptyCreationStatement
108108
}
109109

110110
dispName := credsutil.DisplayName(req.UsernameConfig.DisplayName, 32)
@@ -116,7 +116,7 @@ func (h *HANA) NewUser(ctx context.Context, req newdbplugin.NewUserRequest) (res
116116
// Generate username
117117
username, err := credsutil.GenerateUsername(dispName, roleName, maxLen, separator, caps)
118118
if err != nil {
119-
return newdbplugin.NewUserResponse{}, err
119+
return dbplugin.NewUserResponse{}, err
120120
}
121121

122122
// HANA does not allow hyphens in usernames, and highly prefers capital letters
@@ -135,7 +135,7 @@ func (h *HANA) NewUser(ctx context.Context, req newdbplugin.NewUserRequest) (res
135135
// Start a transaction
136136
tx, err := db.BeginTx(ctx, nil)
137137
if err != nil {
138-
return newdbplugin.NewUserResponse{}, err
138+
return dbplugin.NewUserResponse{}, err
139139
}
140140
defer tx.Rollback()
141141

@@ -154,69 +154,69 @@ func (h *HANA) NewUser(ctx context.Context, req newdbplugin.NewUserRequest) (res
154154
}
155155

156156
if err := dbtxn.ExecuteTxQuery(ctx, tx, m, query); err != nil {
157-
return newdbplugin.NewUserResponse{}, err
157+
return dbplugin.NewUserResponse{}, err
158158
}
159159
}
160160
}
161161

162162
// Commit the transaction
163163
if err := tx.Commit(); err != nil {
164-
return newdbplugin.NewUserResponse{}, err
164+
return dbplugin.NewUserResponse{}, err
165165
}
166166

167-
resp := newdbplugin.NewUserResponse{
167+
resp := dbplugin.NewUserResponse{
168168
Username: username,
169169
}
170170

171171
return resp, nil
172172
}
173173

174174
// Renewing hana user just means altering user's valid until property
175-
func (h *HANA) UpdateUser(ctx context.Context, req newdbplugin.UpdateUserRequest) (newdbplugin.UpdateUserResponse, error) {
175+
func (h *HANA) UpdateUser(ctx context.Context, req dbplugin.UpdateUserRequest) (dbplugin.UpdateUserResponse, error) {
176176
h.Lock()
177177
defer h.Unlock()
178178

179179
// No change requested
180180
if req.Password == nil && req.Expiration == nil {
181-
return newdbplugin.UpdateUserResponse{}, nil
181+
return dbplugin.UpdateUserResponse{}, nil
182182
}
183183

184184
// Get connection
185185
db, err := h.getConnection(ctx)
186186
if err != nil {
187-
return newdbplugin.UpdateUserResponse{}, err
187+
return dbplugin.UpdateUserResponse{}, err
188188
}
189189

190190
// Start a transaction
191191
tx, err := db.BeginTx(ctx, nil)
192192
if err != nil {
193-
return newdbplugin.UpdateUserResponse{}, err
193+
return dbplugin.UpdateUserResponse{}, err
194194
}
195195
defer tx.Rollback()
196196

197197
if req.Password != nil {
198198
err = h.updateUserPassword(ctx, tx, req.Username, req.Password)
199199
if err != nil {
200-
return newdbplugin.UpdateUserResponse{}, err
200+
return dbplugin.UpdateUserResponse{}, err
201201
}
202202
}
203203

204204
if req.Expiration != nil {
205205
err = h.updateUserExpiration(ctx, tx, req.Username, req.Expiration)
206206
if err != nil {
207-
return newdbplugin.UpdateUserResponse{}, err
207+
return dbplugin.UpdateUserResponse{}, err
208208
}
209209
}
210210

211211
// Commit the transaction
212212
if err := tx.Commit(); err != nil {
213-
return newdbplugin.UpdateUserResponse{}, err
213+
return dbplugin.UpdateUserResponse{}, err
214214
}
215215

216-
return newdbplugin.UpdateUserResponse{}, nil
216+
return dbplugin.UpdateUserResponse{}, nil
217217
}
218218

219-
func (h *HANA) updateUserPassword(ctx context.Context, tx *sql.Tx, username string, req *newdbplugin.ChangePassword) error {
219+
func (h *HANA) updateUserPassword(ctx context.Context, tx *sql.Tx, username string, req *dbplugin.ChangePassword) error {
220220
password := req.NewPassword
221221

222222
if username == "" || password == "" {
@@ -250,7 +250,7 @@ func (h *HANA) updateUserPassword(ctx context.Context, tx *sql.Tx, username stri
250250
return nil
251251
}
252252

253-
func (h *HANA) updateUserExpiration(ctx context.Context, tx *sql.Tx, username string, req *newdbplugin.ChangeExpiration) error {
253+
func (h *HANA) updateUserExpiration(ctx context.Context, tx *sql.Tx, username string, req *dbplugin.ChangeExpiration) error {
254254
// If expiration is in the role SQL, HANA will deactivate the user when time is up,
255255
// regardless of whether vault is alive to revoke lease
256256
expirationStr := req.NewExpiration.String()
@@ -287,7 +287,7 @@ func (h *HANA) updateUserExpiration(ctx context.Context, tx *sql.Tx, username st
287287
}
288288

289289
// Revoking hana user will deactivate user and try to perform a soft drop
290-
func (h *HANA) DeleteUser(ctx context.Context, req newdbplugin.DeleteUserRequest) (newdbplugin.DeleteUserResponse, error) {
290+
func (h *HANA) DeleteUser(ctx context.Context, req dbplugin.DeleteUserRequest) (dbplugin.DeleteUserResponse, error) {
291291
h.Lock()
292292
defer h.Unlock()
293293

@@ -299,13 +299,13 @@ func (h *HANA) DeleteUser(ctx context.Context, req newdbplugin.DeleteUserRequest
299299
// Get connection
300300
db, err := h.getConnection(ctx)
301301
if err != nil {
302-
return newdbplugin.DeleteUserResponse{}, err
302+
return dbplugin.DeleteUserResponse{}, err
303303
}
304304

305305
// Start a transaction
306306
tx, err := db.BeginTx(ctx, nil)
307307
if err != nil {
308-
return newdbplugin.DeleteUserResponse{}, err
308+
return dbplugin.DeleteUserResponse{}, err
309309
}
310310
defer tx.Rollback()
311311

@@ -321,53 +321,53 @@ func (h *HANA) DeleteUser(ctx context.Context, req newdbplugin.DeleteUserRequest
321321
"name": req.Username,
322322
}
323323
if err := dbtxn.ExecuteTxQuery(ctx, tx, m, query); err != nil {
324-
return newdbplugin.DeleteUserResponse{}, err
324+
return dbplugin.DeleteUserResponse{}, err
325325
}
326326
}
327327
}
328328

329-
return newdbplugin.DeleteUserResponse{}, tx.Commit()
329+
return dbplugin.DeleteUserResponse{}, tx.Commit()
330330
}
331331

332-
func (h *HANA) revokeUserDefault(ctx context.Context, req newdbplugin.DeleteUserRequest) (newdbplugin.DeleteUserResponse, error) {
332+
func (h *HANA) revokeUserDefault(ctx context.Context, req dbplugin.DeleteUserRequest) (dbplugin.DeleteUserResponse, error) {
333333
// Get connection
334334
db, err := h.getConnection(ctx)
335335
if err != nil {
336-
return newdbplugin.DeleteUserResponse{}, err
336+
return dbplugin.DeleteUserResponse{}, err
337337
}
338338

339339
// Start a transaction
340340
tx, err := db.BeginTx(ctx, nil)
341341
if err != nil {
342-
return newdbplugin.DeleteUserResponse{}, err
342+
return dbplugin.DeleteUserResponse{}, err
343343
}
344344
defer tx.Rollback()
345345

346346
// Disable server login for user
347347
disableStmt, err := tx.PrepareContext(ctx, fmt.Sprintf("ALTER USER %s DEACTIVATE USER NOW", req.Username))
348348
if err != nil {
349-
return newdbplugin.DeleteUserResponse{}, err
349+
return dbplugin.DeleteUserResponse{}, err
350350
}
351351
defer disableStmt.Close()
352352
if _, err := disableStmt.ExecContext(ctx); err != nil {
353-
return newdbplugin.DeleteUserResponse{}, err
353+
return dbplugin.DeleteUserResponse{}, err
354354
}
355355

356356
// Invalidates current sessions and performs soft drop (drop if no dependencies)
357357
// if hard drop is desired, custom revoke statements should be written for role
358358
dropStmt, err := tx.PrepareContext(ctx, fmt.Sprintf("DROP USER %s RESTRICT", req.Username))
359359
if err != nil {
360-
return newdbplugin.DeleteUserResponse{}, err
360+
return dbplugin.DeleteUserResponse{}, err
361361
}
362362
defer dropStmt.Close()
363363
if _, err := dropStmt.ExecContext(ctx); err != nil {
364-
return newdbplugin.DeleteUserResponse{}, err
364+
return dbplugin.DeleteUserResponse{}, err
365365
}
366366

367367
// Commit transaction
368368
if err := tx.Commit(); err != nil {
369-
return newdbplugin.DeleteUserResponse{}, err
369+
return dbplugin.DeleteUserResponse{}, err
370370
}
371371

372-
return newdbplugin.DeleteUserResponse{}, nil
372+
return dbplugin.DeleteUserResponse{}, nil
373373
}

0 commit comments

Comments
 (0)