mirror of
https://github.com/weloe/token-go.git
synced 2025-10-05 15:36:50 +08:00
refactor: delete enforcer.webctx
This commit is contained in:
47
enforcer.go
47
enforcer.go
@@ -20,11 +20,10 @@ type Enforcer struct {
|
|||||||
generateFunc model.GenerateTokenFunc
|
generateFunc model.GenerateTokenFunc
|
||||||
adapter persist.Adapter
|
adapter persist.Adapter
|
||||||
watcher persist.Watcher
|
watcher persist.Watcher
|
||||||
webCtx ctx.Context
|
|
||||||
logger log.Logger
|
logger log.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewEnforcer(tokenConfig *config.TokenConfig, adapter persist.Adapter, ctx ctx.Context) (*Enforcer, error) {
|
func NewEnforcer(tokenConfig *config.TokenConfig, adapter persist.Adapter) (*Enforcer, error) {
|
||||||
fm := model.LoadFunctionMap()
|
fm := model.LoadFunctionMap()
|
||||||
if tokenConfig == nil || adapter == nil {
|
if tokenConfig == nil || adapter == nil {
|
||||||
return nil, errors.New("NewEnforcer() params should be not nil")
|
return nil, errors.New("NewEnforcer() params should be not nil")
|
||||||
@@ -34,7 +33,6 @@ func NewEnforcer(tokenConfig *config.TokenConfig, adapter persist.Adapter, ctx c
|
|||||||
config: *tokenConfig,
|
config: *tokenConfig,
|
||||||
generateFunc: fm,
|
generateFunc: fm,
|
||||||
adapter: adapter,
|
adapter: adapter,
|
||||||
webCtx: ctx,
|
|
||||||
logger: &log.DefaultLogger{},
|
logger: &log.DefaultLogger{},
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
@@ -47,7 +45,7 @@ func NewHttpContext(req *http.Request, writer http.ResponseWriter) ctx.Context {
|
|||||||
return httpCtx.NewHttpContext(req, writer)
|
return httpCtx.NewHttpContext(req, writer)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDefaultEnforcer(adapter persist.Adapter, ctx ctx.Context) (*Enforcer, error) {
|
func NewDefaultEnforcer(adapter persist.Adapter) (*Enforcer, error) {
|
||||||
fm := model.LoadFunctionMap()
|
fm := model.LoadFunctionMap()
|
||||||
if adapter == nil {
|
if adapter == nil {
|
||||||
return nil, errors.New("NewDefaultEnforcer() params should be not nil")
|
return nil, errors.New("NewDefaultEnforcer() params should be not nil")
|
||||||
@@ -57,12 +55,11 @@ func NewDefaultEnforcer(adapter persist.Adapter, ctx ctx.Context) (*Enforcer, er
|
|||||||
config: *config.DefaultTokenConfig(),
|
config: *config.DefaultTokenConfig(),
|
||||||
generateFunc: fm,
|
generateFunc: fm,
|
||||||
adapter: adapter,
|
adapter: adapter,
|
||||||
webCtx: ctx,
|
|
||||||
logger: &log.DefaultLogger{},
|
logger: &log.DefaultLogger{},
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewEnforcerByFile(conf string, adapter persist.Adapter, ctx ctx.Context) (*Enforcer, error) {
|
func NewEnforcerByFile(conf string, adapter persist.Adapter) (*Enforcer, error) {
|
||||||
if conf == "" || adapter == nil {
|
if conf == "" || adapter == nil {
|
||||||
return nil, errors.New("NewEnforcerByFile() params should be not nil")
|
return nil, errors.New("NewEnforcerByFile() params should be not nil")
|
||||||
}
|
}
|
||||||
@@ -78,15 +75,10 @@ func NewEnforcerByFile(conf string, adapter persist.Adapter, ctx ctx.Context) (*
|
|||||||
config: *(newConfig.(*config.FileConfig).TokenConfig),
|
config: *(newConfig.(*config.FileConfig).TokenConfig),
|
||||||
generateFunc: fm,
|
generateFunc: fm,
|
||||||
adapter: adapter,
|
adapter: adapter,
|
||||||
webCtx: ctx,
|
|
||||||
logger: &log.DefaultLogger{},
|
logger: &log.DefaultLogger{},
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Enforcer) SetContext(context ctx.Context) {
|
|
||||||
e.webCtx = context
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *Enforcer) SetType(t string) {
|
func (e *Enforcer) SetType(t string) {
|
||||||
e.loginType = t
|
e.loginType = t
|
||||||
}
|
}
|
||||||
@@ -120,12 +112,12 @@ func (e *Enforcer) IsLogEnable() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Login login by id and default loginModel, return tokenValue and error
|
// Login login by id and default loginModel, return tokenValue and error
|
||||||
func (e *Enforcer) Login(id string) (string, error) {
|
func (e *Enforcer) Login(id string, ctx ctx.Context) (string, error) {
|
||||||
return e.LoginByModel(id, model.DefaultLoginModel())
|
return e.LoginByModel(id, model.DefaultLoginModel(), ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoginByModel login by id and loginModel, return tokenValue and error
|
// LoginByModel login by id and loginModel, return tokenValue and error
|
||||||
func (e *Enforcer) LoginByModel(id string, loginModel *model.Login) (string, error) {
|
func (e *Enforcer) LoginByModel(id string, loginModel *model.Login, ctx ctx.Context) (string, error) {
|
||||||
var err error
|
var err error
|
||||||
var session *model.Session
|
var session *model.Session
|
||||||
var tokenValue string
|
var tokenValue string
|
||||||
@@ -167,7 +159,7 @@ func (e *Enforcer) LoginByModel(id string, loginModel *model.Login) (string, err
|
|||||||
}
|
}
|
||||||
|
|
||||||
// response token
|
// response token
|
||||||
err = e.responseToken(tokenValue, loginModel)
|
err = e.responseToken(tokenValue, loginModel, ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
@@ -251,15 +243,15 @@ func (e *Enforcer) Replaced(id string, device string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Logout user logout
|
// Logout user logout
|
||||||
func (e *Enforcer) Logout() error {
|
func (e *Enforcer) Logout(ctx ctx.Context) error {
|
||||||
tokenConfig := e.config
|
tokenConfig := e.config
|
||||||
|
|
||||||
token := e.GetRequestToken()
|
token := e.GetRequestToken(ctx)
|
||||||
if token == "" {
|
if token == "" {
|
||||||
return errors.New("logout() failed: token doesn't exist")
|
return errors.New("logout() failed: token doesn't exist")
|
||||||
}
|
}
|
||||||
if e.config.IsReadCookie {
|
if e.config.IsReadCookie {
|
||||||
e.webCtx.Response().DeleteCookie(tokenConfig.TokenName,
|
ctx.Response().DeleteCookie(tokenConfig.TokenName,
|
||||||
tokenConfig.CookieConfig.Path,
|
tokenConfig.CookieConfig.Path,
|
||||||
tokenConfig.CookieConfig.Domain)
|
tokenConfig.CookieConfig.Domain)
|
||||||
}
|
}
|
||||||
@@ -301,8 +293,8 @@ func (e *Enforcer) IsLoginById(id string) (bool, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// IsLogin check if user logged in by token.
|
// IsLogin check if user logged in by token.
|
||||||
func (e *Enforcer) IsLogin() (bool, error) {
|
func (e *Enforcer) IsLogin(ctx ctx.Context) (bool, error) {
|
||||||
tokenValue := e.GetRequestToken()
|
tokenValue := e.GetRequestToken(ctx)
|
||||||
if tokenValue == "" {
|
if tokenValue == "" {
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
@@ -314,8 +306,8 @@ func (e *Enforcer) IsLogin() (bool, error) {
|
|||||||
return e.validateValue(str)
|
return e.validateValue(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Enforcer) GetLoginId() (string, error) {
|
func (e *Enforcer) GetLoginId(ctx ctx.Context) (string, error) {
|
||||||
tokenValue := e.GetRequestToken()
|
tokenValue := e.GetRequestToken(ctx)
|
||||||
str := e.adapter.GetStr(e.spliceTokenKey(tokenValue))
|
str := e.adapter.GetStr(e.spliceTokenKey(tokenValue))
|
||||||
if str == "" {
|
if str == "" {
|
||||||
return "", errors.New("GetLoginId() failed: not logged in")
|
return "", errors.New("GetLoginId() failed: not logged in")
|
||||||
@@ -371,21 +363,24 @@ func (e *Enforcer) Kickout(id string, device string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetRequestToken read token from requestHeader | cookie | requestBody
|
// GetRequestToken read token from requestHeader | cookie | requestBody
|
||||||
func (e *Enforcer) GetRequestToken() string {
|
func (e *Enforcer) GetRequestToken(ctx ctx.Context) string {
|
||||||
var tokenValue string
|
var tokenValue string
|
||||||
|
if ctx == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
if e.config.IsReadHeader {
|
if e.config.IsReadHeader {
|
||||||
if tokenValue = e.webCtx.Request().Header(e.config.TokenName); tokenValue != "" {
|
if tokenValue = ctx.Request().Header(e.config.TokenName); tokenValue != "" {
|
||||||
return tokenValue
|
return tokenValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if e.config.IsReadCookie {
|
if e.config.IsReadCookie {
|
||||||
if tokenValue = e.webCtx.Request().Cookie(e.config.TokenName); tokenValue != "" {
|
if tokenValue = ctx.Request().Cookie(e.config.TokenName); tokenValue != "" {
|
||||||
return tokenValue
|
return tokenValue
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if e.config.IsReadBody {
|
if e.config.IsReadBody {
|
||||||
if tokenValue = e.webCtx.Request().PostForm(e.config.TokenName); tokenValue != "" {
|
if tokenValue = ctx.Request().PostForm(e.config.TokenName); tokenValue != "" {
|
||||||
return tokenValue
|
return tokenValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -10,23 +10,22 @@ import (
|
|||||||
var _ IEnforcer = &Enforcer{}
|
var _ IEnforcer = &Enforcer{}
|
||||||
|
|
||||||
type IEnforcer interface {
|
type IEnforcer interface {
|
||||||
Login(id string) (string, error)
|
Login(id string, ctx ctx.Context) (string, error)
|
||||||
LoginByModel(id string, loginModel *model.Login) (string, error)
|
LoginByModel(id string, loginModel *model.Login, ctx ctx.Context) (string, error)
|
||||||
Logout() error
|
Logout(ctx ctx.Context) error
|
||||||
IsLogin() (bool, error)
|
IsLogin(ctx ctx.Context) (bool, error)
|
||||||
IsLoginById(id string) (bool, error)
|
IsLoginById(id string) (bool, error)
|
||||||
GetLoginId() (string, error)
|
GetLoginId(ctx ctx.Context) (string, error)
|
||||||
|
|
||||||
Replaced(id string, device string) error
|
Replaced(id string, device string) error
|
||||||
// Banned TODO
|
// Banned TODO
|
||||||
Banned(id string, service string) error
|
Banned(id string, service string) error
|
||||||
Kickout(id string, device string) error
|
Kickout(id string, device string) error
|
||||||
|
|
||||||
GetRequestToken() string
|
GetRequestToken(ctx ctx.Context) string
|
||||||
|
|
||||||
SetType(t string)
|
SetType(t string)
|
||||||
GetType() string
|
GetType() string
|
||||||
SetContext(ctx ctx.Context)
|
|
||||||
GetAdapter() persist.Adapter
|
GetAdapter() persist.Adapter
|
||||||
SetAdapter(adapter persist.Adapter)
|
SetAdapter(adapter persist.Adapter)
|
||||||
SetWatcher(watcher persist.Watcher)
|
SetWatcher(watcher persist.Watcher)
|
||||||
|
@@ -3,6 +3,7 @@ package token_go
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/weloe/token-go/constant"
|
"github.com/weloe/token-go/constant"
|
||||||
|
"github.com/weloe/token-go/ctx"
|
||||||
"github.com/weloe/token-go/model"
|
"github.com/weloe/token-go/model"
|
||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
@@ -47,8 +48,10 @@ func (e *Enforcer) createLoginToken(id string, loginModel *model.Login) (string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// responseToken set token to cookie or header
|
// responseToken set token to cookie or header
|
||||||
func (e *Enforcer) responseToken(tokenValue string, loginModel *model.Login) error {
|
func (e *Enforcer) responseToken(tokenValue string, loginModel *model.Login, ctx ctx.Context) error {
|
||||||
|
if ctx == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
tokenConfig := e.config
|
tokenConfig := e.config
|
||||||
|
|
||||||
// set token to cookie
|
// set token to cookie
|
||||||
@@ -58,7 +61,7 @@ func (e *Enforcer) responseToken(tokenValue string, loginModel *model.Login) err
|
|||||||
cookieTimeout = -1
|
cookieTimeout = -1
|
||||||
}
|
}
|
||||||
// add cookie use tokenConfig.CookieConfig
|
// add cookie use tokenConfig.CookieConfig
|
||||||
e.webCtx.Response().AddCookie(tokenConfig.TokenName,
|
ctx.Response().AddCookie(tokenConfig.TokenName,
|
||||||
tokenValue,
|
tokenValue,
|
||||||
tokenConfig.CookieConfig.Path,
|
tokenConfig.CookieConfig.Path,
|
||||||
tokenConfig.CookieConfig.Domain,
|
tokenConfig.CookieConfig.Domain,
|
||||||
@@ -67,7 +70,7 @@ func (e *Enforcer) responseToken(tokenValue string, loginModel *model.Login) err
|
|||||||
|
|
||||||
// set token to header
|
// set token to header
|
||||||
if loginModel.IsWriteHeader {
|
if loginModel.IsWriteHeader {
|
||||||
e.webCtx.Response().SetHeader(tokenConfig.TokenName, tokenValue)
|
ctx.Response().SetHeader(tokenConfig.TokenName, tokenValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
@@ -32,7 +32,9 @@ func NewTestHttpContext(t *testing.T) (error, ctx.Context) {
|
|||||||
func TestNewEnforcer(t *testing.T) {
|
func TestNewEnforcer(t *testing.T) {
|
||||||
adapter := NewDefaultAdapter()
|
adapter := NewDefaultAdapter()
|
||||||
ctx := httpCtx.NewHttpContext(nil, nil)
|
ctx := httpCtx.NewHttpContext(nil, nil)
|
||||||
|
if ctx == nil {
|
||||||
|
t.Errorf("NewHttpContext failed: %v", ctx)
|
||||||
|
}
|
||||||
tokenConfig := &config.TokenConfig{
|
tokenConfig := &config.TokenConfig{
|
||||||
TokenName: "testToken",
|
TokenName: "testToken",
|
||||||
Timeout: 60,
|
Timeout: 60,
|
||||||
@@ -45,7 +47,7 @@ func TestNewEnforcer(t *testing.T) {
|
|||||||
}
|
}
|
||||||
logger := &log.DefaultLogger{}
|
logger := &log.DefaultLogger{}
|
||||||
|
|
||||||
enforcer, err := NewEnforcer(tokenConfig, adapter, ctx)
|
enforcer, err := NewEnforcer(tokenConfig, adapter)
|
||||||
enforcer.SetType("u")
|
enforcer.SetType("u")
|
||||||
if enforcer.GetType() != "u" {
|
if enforcer.GetType() != "u" {
|
||||||
t.Error("enforcer.loginType should be user")
|
t.Error("enforcer.loginType should be user")
|
||||||
@@ -67,13 +69,9 @@ func TestNewEnforcer(t *testing.T) {
|
|||||||
t.Error("enforcer.adapter should be equal to the passed adapter parameter")
|
t.Error("enforcer.adapter should be equal to the passed adapter parameter")
|
||||||
}
|
}
|
||||||
|
|
||||||
if enforcer.webCtx != ctx {
|
|
||||||
t.Error("enforcer.webCtx should be equal to the passed ctx parameter")
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTestEnforcer(t *testing.T) (error, *Enforcer) {
|
func NewTestEnforcer(t *testing.T) (error, *Enforcer, ctx.Context) {
|
||||||
reqBody := bytes.NewBufferString("test request body")
|
reqBody := bytes.NewBufferString("test request body")
|
||||||
req, err := http.NewRequest("POST", "/test", reqBody)
|
req, err := http.NewRequest("POST", "/test", reqBody)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -89,11 +87,11 @@ func NewTestEnforcer(t *testing.T) (error, *Enforcer) {
|
|||||||
|
|
||||||
tokenConfig := config.DefaultTokenConfig()
|
tokenConfig := config.DefaultTokenConfig()
|
||||||
|
|
||||||
enforcer, err := NewEnforcer(tokenConfig, adapter, ctx)
|
enforcer, err := NewEnforcer(tokenConfig, adapter)
|
||||||
return err, enforcer
|
return err, enforcer, ctx
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTestConcurrentEnforcer(t *testing.T) (error, *Enforcer) {
|
func NewTestConcurrentEnforcer(t *testing.T) (error, *Enforcer, ctx.Context) {
|
||||||
reqBody := bytes.NewBufferString("test request body")
|
reqBody := bytes.NewBufferString("test request body")
|
||||||
req, err := http.NewRequest("POST", "/test", reqBody)
|
req, err := http.NewRequest("POST", "/test", reqBody)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -111,11 +109,11 @@ func NewTestConcurrentEnforcer(t *testing.T) (error, *Enforcer) {
|
|||||||
tokenConfig.IsConcurrent = true
|
tokenConfig.IsConcurrent = true
|
||||||
tokenConfig.IsShare = false
|
tokenConfig.IsShare = false
|
||||||
|
|
||||||
enforcer, err := NewEnforcer(tokenConfig, adapter, ctx)
|
enforcer, err := NewEnforcer(tokenConfig, adapter)
|
||||||
return err, enforcer
|
return err, enforcer, ctx
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTestNotConcurrentEnforcer(t *testing.T) (error, *Enforcer) {
|
func NewTestNotConcurrentEnforcer(t *testing.T) (error, *Enforcer, ctx.Context) {
|
||||||
reqBody := bytes.NewBufferString("test request body")
|
reqBody := bytes.NewBufferString("test request body")
|
||||||
req, err := http.NewRequest("POST", "/test", reqBody)
|
req, err := http.NewRequest("POST", "/test", reqBody)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -133,12 +131,12 @@ func NewTestNotConcurrentEnforcer(t *testing.T) (error, *Enforcer) {
|
|||||||
tokenConfig.IsConcurrent = false
|
tokenConfig.IsConcurrent = false
|
||||||
tokenConfig.IsShare = false
|
tokenConfig.IsShare = false
|
||||||
|
|
||||||
enforcer, err := NewEnforcer(tokenConfig, adapter, ctx)
|
enforcer, err := NewEnforcer(tokenConfig, adapter)
|
||||||
return err, enforcer
|
return err, enforcer, ctx
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNewEnforcerByFile(t *testing.T) {
|
func TestNewEnforcerByFile(t *testing.T) {
|
||||||
err, ctx := NewTestHttpContext(t)
|
err, _ := NewTestHttpContext(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Unexpected error: %v", err)
|
t.Errorf("Unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
@@ -146,7 +144,7 @@ func TestNewEnforcerByFile(t *testing.T) {
|
|||||||
adapter := persist.NewDefaultAdapter()
|
adapter := persist.NewDefaultAdapter()
|
||||||
conf := "testConf"
|
conf := "testConf"
|
||||||
|
|
||||||
enforcer, err := NewEnforcerByFile(conf, adapter, ctx)
|
enforcer, err := NewEnforcerByFile(conf, adapter)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Unexpected error: %v", err)
|
t.Errorf("Unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
@@ -158,24 +156,22 @@ func TestNewEnforcerByFile(t *testing.T) {
|
|||||||
if enforcer.adapter != adapter {
|
if enforcer.adapter != adapter {
|
||||||
t.Error("enforcer.adapter should be equal to the passed adapter parameter")
|
t.Error("enforcer.adapter should be equal to the passed adapter parameter")
|
||||||
}
|
}
|
||||||
if enforcer.webCtx != ctx {
|
|
||||||
t.Error("enforcer.webCtx should be equal to the passed ctx parameter")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEnforcer_Login(t *testing.T) {
|
func TestEnforcer_Login(t *testing.T) {
|
||||||
err, enforcer := NewTestEnforcer(t)
|
err, enforcer, ctx := NewTestEnforcer(t)
|
||||||
enforcer.EnableLog()
|
enforcer.EnableLog()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("NewEnforcer() failed: %v", err)
|
t.Errorf("NewEnforcer() failed: %v", err)
|
||||||
}
|
}
|
||||||
loginId := "1"
|
loginId := "1"
|
||||||
_, err = enforcer.Login(loginId)
|
_, err = enforcer.Login(loginId, ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("LoginByModel() failed: %v", err)
|
t.Errorf("LoginByModel() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = enforcer.LoginByModel(loginId, model.DefaultLoginModel())
|
_, err = enforcer.LoginByModel(loginId, model.DefaultLoginModel(), ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("LoginByModel() failed: %v", err)
|
t.Errorf("LoginByModel() failed: %v", err)
|
||||||
}
|
}
|
||||||
@@ -204,18 +200,18 @@ func TestEnforcer_Login(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestEnforcer_GetLoginId(t *testing.T) {
|
func TestEnforcer_GetLoginId(t *testing.T) {
|
||||||
err, enforcer := NewTestEnforcer(t)
|
err, enforcer, ctx := NewTestEnforcer(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("NewEnforcer() failed: %v", err)
|
t.Errorf("NewEnforcer() failed: %v", err)
|
||||||
}
|
}
|
||||||
loginModel := model.DefaultLoginModel()
|
loginModel := model.DefaultLoginModel()
|
||||||
loginModel.Token = "233"
|
loginModel.Token = "233"
|
||||||
_, err = enforcer.LoginByModel("id", loginModel)
|
_, err = enforcer.LoginByModel("id", loginModel, ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Login() failed: %v", err)
|
t.Errorf("Login() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
id, err := enforcer.GetLoginId()
|
id, err := enforcer.GetLoginId(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("GetLoginId() failed: %v", err)
|
t.Errorf("GetLoginId() failed: %v", err)
|
||||||
}
|
}
|
||||||
@@ -227,14 +223,14 @@ func TestEnforcer_GetLoginId(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestEnforcer_Logout(t *testing.T) {
|
func TestEnforcer_Logout(t *testing.T) {
|
||||||
err, enforcer := NewTestEnforcer(t)
|
err, enforcer, ctx := NewTestEnforcer(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("NewEnforcer() failed: %v", err)
|
t.Errorf("NewEnforcer() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
loginModel := model.DefaultLoginModel()
|
loginModel := model.DefaultLoginModel()
|
||||||
loginModel.Token = "233"
|
loginModel.Token = "233"
|
||||||
token, err := enforcer.LoginByModel("id", loginModel)
|
token, err := enforcer.LoginByModel("id", loginModel, ctx)
|
||||||
if token != "233" {
|
if token != "233" {
|
||||||
t.Errorf("LoginByModel() failed: unexpected token value %s, want '233' ", token)
|
t.Errorf("LoginByModel() failed: unexpected token value %s, want '233' ", token)
|
||||||
}
|
}
|
||||||
@@ -242,12 +238,12 @@ func TestEnforcer_Logout(t *testing.T) {
|
|||||||
t.Errorf("Login() failed: %v", err)
|
t.Errorf("Login() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = enforcer.Logout()
|
err = enforcer.Logout(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Logout() failed: %v", err)
|
t.Errorf("Logout() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
login, err := enforcer.IsLogin()
|
login, err := enforcer.IsLogin(ctx)
|
||||||
if login {
|
if login {
|
||||||
t.Errorf("IsLogin() failed: unexpected value %v", login)
|
t.Errorf("IsLogin() failed: unexpected value %v", login)
|
||||||
}
|
}
|
||||||
@@ -257,14 +253,14 @@ func TestEnforcer_Logout(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestEnforcer_Kickout(t *testing.T) {
|
func TestEnforcer_Kickout(t *testing.T) {
|
||||||
err, enforcer := NewTestEnforcer(t)
|
err, enforcer, ctx := NewTestEnforcer(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("NewEnforcer() failed: %v", err)
|
t.Errorf("NewEnforcer() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
loginModel := model.DefaultLoginModel()
|
loginModel := model.DefaultLoginModel()
|
||||||
loginModel.Token = "233"
|
loginModel.Token = "233"
|
||||||
_, err = enforcer.LoginByModel("id", loginModel)
|
_, err = enforcer.LoginByModel("id", loginModel, ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Login() failed: %v", err)
|
t.Errorf("Login() failed: %v", err)
|
||||||
}
|
}
|
||||||
@@ -278,7 +274,7 @@ func TestEnforcer_Kickout(t *testing.T) {
|
|||||||
if session != nil {
|
if session != nil {
|
||||||
t.Errorf("unexpected session value %v", session)
|
t.Errorf("unexpected session value %v", session)
|
||||||
}
|
}
|
||||||
login, err := enforcer.IsLogin()
|
login, err := enforcer.IsLogin(ctx)
|
||||||
if login {
|
if login {
|
||||||
t.Errorf("IsLogin() failed: unexpected value %v", login)
|
t.Errorf("IsLogin() failed: unexpected value %v", login)
|
||||||
}
|
}
|
||||||
@@ -290,7 +286,7 @@ func TestEnforcer_Kickout(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestEnforcerNotConcurrentNotShareLogin(t *testing.T) {
|
func TestEnforcerNotConcurrentNotShareLogin(t *testing.T) {
|
||||||
err, enforcer := NewTestNotConcurrentEnforcer(t)
|
err, enforcer, ctx := NewTestNotConcurrentEnforcer(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("NewEnforcer() failed: %v", err)
|
t.Errorf("NewEnforcer() failed: %v", err)
|
||||||
}
|
}
|
||||||
@@ -298,7 +294,7 @@ func TestEnforcerNotConcurrentNotShareLogin(t *testing.T) {
|
|||||||
loginModel := model.DefaultLoginModel()
|
loginModel := model.DefaultLoginModel()
|
||||||
|
|
||||||
for i := 0; i < 4; i++ {
|
for i := 0; i < 4; i++ {
|
||||||
_, err = enforcer.LoginByModel("id", loginModel)
|
_, err = enforcer.LoginByModel("id", loginModel, ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Login() failed: %v", err)
|
t.Errorf("Login() failed: %v", err)
|
||||||
}
|
}
|
||||||
@@ -311,14 +307,14 @@ func TestEnforcerNotConcurrentNotShareLogin(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestEnforcer_ConcurrentShare(t *testing.T) {
|
func TestEnforcer_ConcurrentShare(t *testing.T) {
|
||||||
err, enforcer := NewTestEnforcer(t)
|
err, enforcer, ctx := NewTestEnforcer(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("NewEnforcer() failed: %v", err)
|
t.Errorf("NewEnforcer() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
loginModel := model.DefaultLoginModel()
|
loginModel := model.DefaultLoginModel()
|
||||||
for i := 0; i < 5; i++ {
|
for i := 0; i < 5; i++ {
|
||||||
_, err = enforcer.LoginByModel("id", loginModel)
|
_, err = enforcer.LoginByModel("id", loginModel, ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Login() failed: %v", err)
|
t.Errorf("Login() failed: %v", err)
|
||||||
}
|
}
|
||||||
@@ -330,14 +326,14 @@ func TestEnforcer_ConcurrentShare(t *testing.T) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
func TestEnforcer_ConcurrentNotShareMultiLogin(t *testing.T) {
|
func TestEnforcer_ConcurrentNotShareMultiLogin(t *testing.T) {
|
||||||
err, enforcer := NewTestConcurrentEnforcer(t)
|
err, enforcer, ctx := NewTestConcurrentEnforcer(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("NewEnforcer() failed: %v", err)
|
t.Errorf("NewEnforcer() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
loginModel := model.DefaultLoginModel()
|
loginModel := model.DefaultLoginModel()
|
||||||
for i := 0; i < 14; i++ {
|
for i := 0; i < 14; i++ {
|
||||||
_, err = enforcer.LoginByModel("id", loginModel)
|
_, err = enforcer.LoginByModel("id", loginModel, ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Login() failed: %v", err)
|
t.Errorf("Login() failed: %v", err)
|
||||||
}
|
}
|
||||||
@@ -351,11 +347,14 @@ func TestEnforcer_ConcurrentNotShareMultiLogin(t *testing.T) {
|
|||||||
|
|
||||||
func TestNewDefaultEnforcer(t *testing.T) {
|
func TestNewDefaultEnforcer(t *testing.T) {
|
||||||
err, ctx := NewTestHttpContext(t)
|
err, ctx := NewTestHttpContext(t)
|
||||||
|
if ctx == nil {
|
||||||
|
t.Errorf("NewTestHttpContext() failed: %v", err)
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("NewTestHttpContext() failed: %v", err)
|
t.Errorf("NewTestHttpContext() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
enforcer, err := NewDefaultEnforcer(persist.NewDefaultAdapter(), ctx)
|
enforcer, err := NewDefaultEnforcer(persist.NewDefaultAdapter())
|
||||||
if err != nil || enforcer == nil {
|
if err != nil || enforcer == nil {
|
||||||
t.Errorf("NewEnforcer() failed: %v", err)
|
t.Errorf("NewEnforcer() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user