Files
token-go/sso/sso_test.go
2023-06-09 19:41:30 +08:00

104 lines
2.6 KiB
Go

package sso
import (
tokenGo "github.com/weloe/token-go"
"github.com/weloe/token-go/config"
"github.com/weloe/token-go/ctx"
"github.com/weloe/token-go/model"
"github.com/weloe/token-go/util"
"testing"
)
func SendGetRequest(url string) (string, error) {
return util.SendGetRequest(url)
}
func TestNewSsoServerEnforcer(t *testing.T) {
var err error
// use default adapter
adapter := tokenGo.NewDefaultAdapter()
enforcer, err := tokenGo.NewEnforcer(adapter)
if err != nil {
t.Errorf("NewEnforcer() failed: %v", err)
}
// enable logger
enforcer.EnableLog()
ssoOptions := &config.SsoOptions{
Mode: "",
TicketTimeout: 300,
AllowUrl: "*",
IsSlo: true,
IsHttp: true,
ServerUrl: "http://token-go-sso-server.com:9000",
NotLoginView: func() interface{} {
msg := "not log in SSO-Server, please visit <a href='/sso/doLogin?name=tokengo&pwd=123456' target='_blank'> doLogin </a>"
return msg
},
DoLoginHandle: func(name string, pwd string, ctx ctx.Context) (interface{}, error) {
if name != "tokengo" {
return "name error", nil
}
if pwd != "123456" {
return "pwd error", nil
}
token, err := enforcer.Login("1001", ctx)
if err != nil {
return nil, err
}
return model.Ok().SetData(token), nil
},
SendHttp: func(url string) (string, error) {
return SendGetRequest(url)
},
}
signOptions := &config.SignOptions{
SecretKey: "kQwIOrYvnXmSDkwEiFngrKidMcdrgKor",
IsCheckNonce: true,
}
ssoEnforcer, err := NewSsoEnforcer(&Options{
SsoOptions: ssoOptions,
SignOptions: signOptions,
Enforcer: enforcer,
})
if err != nil {
t.Errorf("NewSsoEnforcer() failed: %v", err)
}
t.Logf("enforcer: %v", ssoEnforcer)
}
func TestNewSsoClient3Enforcer(t *testing.T) {
var err error
// use default adapter
adapter := tokenGo.NewDefaultAdapter()
enforcer, err := tokenGo.NewEnforcer(adapter)
if err != nil {
t.Errorf("NewEnforcer() failed: %v", err)
}
// enable logger
enforcer.EnableLog()
ssoOptions := &config.SsoOptions{
AuthUrl: "/sso/auth",
IsSlo: true,
IsHttp: true,
SloUrl: "/sso/signout",
CheckTicketUrl: "/sso/checkTicket",
ServerUrl: "http://token-go-sso-server.com:9000",
SendHttp: func(url string) (string, error) {
return SendGetRequest(url)
},
}
signOptions := &config.SignOptions{
SecretKey: "kQwIOrYvnXmSDkwEiFngrKidMcdrgKor",
IsCheckNonce: true,
}
ssoEnforcer, err := NewSsoEnforcer(&Options{
SsoOptions: ssoOptions,
SignOptions: signOptions,
Enforcer: enforcer,
})
if err != nil {
t.Errorf("NewSsoEnforcer() failed: %v", err)
}
t.Logf("enforcer: %v", ssoEnforcer)
}