mirror of
https://github.com/minio/minio.git
synced 2025-11-08 21:24:55 -05:00
jwt: Cache the bcrypt password hash. (#3526)
Creds don't require secretKeyHash to be calculated everytime, cache it instead and re-use. This is an optimization for bcrypt. Relevant results from the benchmark done locally, negative value means improvement in this scenario. ``` benchmark old ns/op new ns/op delta BenchmarkAuthenticateNode-4 160590992 80125647 -50.11% BenchmarkAuthenticateWeb-4 160556692 80432144 -49.90% benchmark old allocs new allocs delta BenchmarkAuthenticateNode-4 87 75 -13.79% BenchmarkAuthenticateWeb-4 87 75 -13.79% benchmark old bytes new bytes delta BenchmarkAuthenticateNode-4 15222 9785 -35.72% BenchmarkAuthenticateWeb-4 15222 9785 -35.72% ```
This commit is contained in:
20
cmd/main.go
20
cmd/main.go
@@ -190,20 +190,14 @@ func minioInit(ctx *cli.Context) {
|
||||
enableLoggers()
|
||||
|
||||
// Fetch access keys from environment variables and update the config.
|
||||
globalEnvAccessKey = os.Getenv("MINIO_ACCESS_KEY")
|
||||
globalEnvSecretKey = os.Getenv("MINIO_SECRET_KEY")
|
||||
if globalEnvAccessKey != "" && globalEnvSecretKey != "" {
|
||||
accessKey := os.Getenv("MINIO_ACCESS_KEY")
|
||||
secretKey := os.Getenv("MINIO_SECRET_KEY")
|
||||
if accessKey != "" && secretKey != "" {
|
||||
creds, err := getCredential(accessKey, secretKey)
|
||||
fatalIf(err, "Credentials are invalid, please set proper credentials `minio server --help`")
|
||||
|
||||
// Set new credentials.
|
||||
serverConfig.SetCredential(credential{
|
||||
AccessKey: globalEnvAccessKey,
|
||||
SecretKey: globalEnvSecretKey,
|
||||
})
|
||||
}
|
||||
if !isAccessKeyValid(serverConfig.GetCredential().AccessKey) {
|
||||
fatalIf(errInvalidArgument, "Invalid access key. Accept only a string starting with a alphabetic and containing from 5 to 20 characters.")
|
||||
}
|
||||
if !isSecretKeyValid(serverConfig.GetCredential().SecretKey) {
|
||||
fatalIf(errInvalidArgument, "Invalid secret key. Accept only a string containing from 8 to 40 characters.")
|
||||
serverConfig.SetCredential(creds)
|
||||
}
|
||||
|
||||
// Init the error tracing module.
|
||||
|
||||
Reference in New Issue
Block a user