mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcdserver/security: use leveled log
This commit is contained in:
parent
2f795e42d0
commit
cf7cb2b8a9
@ -17,7 +17,6 @@ package security
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"log"
|
||||
"path"
|
||||
"reflect"
|
||||
"sort"
|
||||
@ -30,6 +29,7 @@ import (
|
||||
"github.com/coreos/etcd/etcdserver"
|
||||
"github.com/coreos/etcd/etcdserver/etcdserverpb"
|
||||
"github.com/coreos/etcd/pkg/types"
|
||||
"github.com/coreos/pkg/capnslog"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -43,6 +43,10 @@ const (
|
||||
GuestRoleName = "guest"
|
||||
)
|
||||
|
||||
var (
|
||||
plog = capnslog.NewPackageLogger("github.com/coreos/etcd/etcdserver", "security")
|
||||
)
|
||||
|
||||
var rootRole = Role{
|
||||
Role: RootRoleName,
|
||||
Permissions: Permissions{
|
||||
@ -186,7 +190,7 @@ func (s *Store) CreateOrUpdateUser(user User) (out User, created bool, err error
|
||||
func (s *Store) CreateUser(user User) (User, error) {
|
||||
u, err := s.createUserInternal(user)
|
||||
if err == nil {
|
||||
log.Printf("security: created user %s", user.User)
|
||||
plog.Noticef("created user %s", user.User)
|
||||
}
|
||||
return u, err
|
||||
}
|
||||
@ -225,7 +229,7 @@ func (s *Store) DeleteUser(name string) error {
|
||||
}
|
||||
return err
|
||||
}
|
||||
log.Printf("security: deleted user %s", name)
|
||||
plog.Noticef("deleted user %s", name)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -251,7 +255,7 @@ func (s *Store) UpdateUser(user User) (User, error) {
|
||||
}
|
||||
_, err = s.updateResource("/users/"+user.User, newUser)
|
||||
if err == nil {
|
||||
log.Printf("security: updated user %s", user.User)
|
||||
plog.Noticef("updated user %s", user.User)
|
||||
}
|
||||
return newUser, err
|
||||
}
|
||||
@ -320,7 +324,7 @@ func (s *Store) CreateRole(role Role) error {
|
||||
}
|
||||
}
|
||||
if err == nil {
|
||||
log.Printf("security: created new role %s", role.Role)
|
||||
plog.Noticef("created new role %s", role.Role)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@ -338,7 +342,7 @@ func (s *Store) DeleteRole(name string) error {
|
||||
}
|
||||
}
|
||||
if err == nil {
|
||||
log.Printf("security: deleted role %s", name)
|
||||
plog.Noticef("deleted role %s", name)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@ -365,7 +369,7 @@ func (s *Store) UpdateRole(role Role) (Role, error) {
|
||||
}
|
||||
_, err = s.updateResource("/roles/"+role.Role, newRole)
|
||||
if err == nil {
|
||||
log.Printf("security: updated role %s", role.Role)
|
||||
plog.Noticef("updated role %s", role.Role)
|
||||
}
|
||||
return newRole, err
|
||||
}
|
||||
@ -384,18 +388,18 @@ func (s *Store) EnableSecurity() error {
|
||||
}
|
||||
_, err = s.GetRole(GuestRoleName)
|
||||
if err != nil {
|
||||
log.Printf("security: no guest role access found, creating default")
|
||||
plog.Printf("no guest role access found, creating default")
|
||||
err := s.CreateRole(guestRole)
|
||||
if err != nil {
|
||||
log.Printf("security: error creating guest role. aborting security enable.")
|
||||
plog.Errorf("error creating guest role. aborting security enable.")
|
||||
return err
|
||||
}
|
||||
}
|
||||
err = s.enableSecurity()
|
||||
if err == nil {
|
||||
log.Printf("security: enabled security")
|
||||
plog.Noticef("security: enabled security")
|
||||
} else {
|
||||
log.Printf("error enabling security: %v", err)
|
||||
plog.Errorf("error enabling security (%v)", err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@ -406,9 +410,9 @@ func (s *Store) DisableSecurity() error {
|
||||
}
|
||||
err := s.disableSecurity()
|
||||
if err == nil {
|
||||
log.Printf("security: disabled security")
|
||||
plog.Noticef("security: disabled security")
|
||||
} else {
|
||||
log.Printf("error disabling security: %v", err)
|
||||
plog.Errorf("error disabling security (%v)", err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@ -435,14 +439,14 @@ func (u User) Merge(n User) (User, error) {
|
||||
currentRoles := types.NewUnsafeSet(u.Roles...)
|
||||
for _, g := range n.Grant {
|
||||
if currentRoles.Contains(g) {
|
||||
log.Printf("Granting duplicate role %s for user %s", g, n.User)
|
||||
plog.Noticef("granting duplicate role %s for user %s", g, n.User)
|
||||
continue
|
||||
}
|
||||
currentRoles.Add(g)
|
||||
}
|
||||
for _, r := range n.Revoke {
|
||||
if !currentRoles.Contains(r) {
|
||||
log.Printf("Revoking ungranted role %s for user %s", r, n.User)
|
||||
plog.Noticef("revoking ungranted role %s for user %s", r, n.User)
|
||||
continue
|
||||
}
|
||||
currentRoles.Remove(r)
|
||||
@ -544,7 +548,7 @@ func (rw rwPermission) Revoke(n rwPermission) (rwPermission, error) {
|
||||
currentRead := types.NewUnsafeSet(rw.Read...)
|
||||
for _, r := range n.Read {
|
||||
if !currentRead.Contains(r) {
|
||||
log.Printf("Revoking ungranted read permission %s", r)
|
||||
plog.Noticef("revoking ungranted read permission %s", r)
|
||||
continue
|
||||
}
|
||||
currentRead.Remove(r)
|
||||
@ -552,7 +556,7 @@ func (rw rwPermission) Revoke(n rwPermission) (rwPermission, error) {
|
||||
currentWrite := types.NewUnsafeSet(rw.Write...)
|
||||
for _, w := range n.Write {
|
||||
if !currentWrite.Contains(w) {
|
||||
log.Printf("Revoking ungranted write permission %s", w)
|
||||
plog.Noticef("revoking ungranted write permission %s", w)
|
||||
continue
|
||||
}
|
||||
currentWrite.Remove(w)
|
||||
|
@ -16,7 +16,6 @@ package security
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"path"
|
||||
|
||||
"github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
|
||||
@ -46,7 +45,7 @@ func (s *Store) ensureSecurityDirectories() error {
|
||||
continue
|
||||
}
|
||||
}
|
||||
log.Println("security: Trying to create security directories in the store; failed:", err)
|
||||
plog.Errorf("failed to create security directories in the store (%v)", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
@ -93,14 +92,14 @@ func (s *Store) detectSecurity() bool {
|
||||
return false
|
||||
}
|
||||
}
|
||||
log.Println("security: Trying to detect security settings failed:", err)
|
||||
plog.Errorf("failed to detect security settings (%s)", err)
|
||||
return false
|
||||
}
|
||||
|
||||
var u bool
|
||||
err = json.Unmarshal([]byte(*value.Event.Node.Value), &u)
|
||||
if err != nil {
|
||||
log.Println("security: internal bookkeeping value for enabled isn't valid JSON")
|
||||
plog.Errorf("internal bookkeeping value for enabled isn't valid JSON (%v)", err)
|
||||
return false
|
||||
}
|
||||
return u
|
||||
|
Loading…
x
Reference in New Issue
Block a user