Migrated auth preferences.

This commit is contained in:
Russell Jones 2017-03-22 16:53:36 -07:00
parent 4722b2d6da
commit 51c347e35c

View file

@ -286,7 +286,7 @@ func Init(cfg InitConfig, dynamicConfig bool) (*AuthServer, *Identity, error) {
} }
// migrate any legacy resources to new format // migrate any legacy resources to new format
err = migrateLegacyResources(asrv) err = migrateLegacyResources(cfg, asrv)
if err != nil { if err != nil {
return nil, nil, trace.Wrap(err) return nil, nil, trace.Wrap(err)
} }
@ -294,7 +294,7 @@ func Init(cfg InitConfig, dynamicConfig bool) (*AuthServer, *Identity, error) {
return asrv, identity, nil return asrv, identity, nil
} }
func migrateLegacyResources(asrv *AuthServer) error { func migrateLegacyResources(cfg InitConfig, asrv *AuthServer) error {
err := migrateUsers(asrv) err := migrateUsers(asrv)
if err != nil { if err != nil {
return trace.Wrap(err) return trace.Wrap(err)
@ -305,6 +305,11 @@ func migrateLegacyResources(asrv *AuthServer) error {
return trace.Wrap(err) return trace.Wrap(err)
} }
err = migrateAuthPreference(cfg, asrv)
if err != nil {
return trace.Wrap(err)
}
return nil return nil
} }
@ -379,6 +384,40 @@ func migrateCertAuthority(asrv *AuthServer) error {
return nil return nil
} }
func migrateAuthPreference(cfg InitConfig, asrv *AuthServer) error {
// if no cluster auth preferences exist, upload them from file config
_, err := asrv.GetClusterAuthPreference()
if err != nil {
if trace.IsNotFound(err) {
err = asrv.SetClusterAuthPreference(cfg.AuthPreference)
if err != nil {
return trace.Wrap(err)
}
log.Infof("[MIGRATION] Set Cluster Authentication Preference: %v", cfg.AuthPreference)
} else {
return trace.Wrap(err)
}
}
// if no u2f settings exist, upload from file config
if cfg.U2F != nil {
_, err = asrv.GetUniversalSecondFactor()
if err != nil {
if trace.IsNotFound(err) {
err = asrv.SetUniversalSecondFactor(cfg.U2F)
if err != nil {
return trace.Wrap(err)
}
log.Infof("[MIGRATION] Set Universal Second Factor Settings: %v", cfg.U2F)
} else {
return trace.Wrap(err)
}
}
}
return nil
}
// isFirstStart returns 'true' if the auth server is starting for the 1st time // isFirstStart returns 'true' if the auth server is starting for the 1st time
// on this server. // on this server.
func isFirstStart(authServer *AuthServer, cfg InitConfig) (bool, error) { func isFirstStart(authServer *AuthServer, cfg InitConfig) (bool, error) {