|
|
@@ -1,4 +1,4 @@
|
|
|
-// +build ad-integration
|
|
|
+// +build adintegration
|
|
|
// To turn on this test use -tags=integration in go test command
|
|
|
|
|
|
package client
|
|
|
@@ -7,11 +7,8 @@ import (
|
|
|
"encoding/hex"
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
"gopkg.in/jcmturner/gokrb5.v1/config"
|
|
|
- "gopkg.in/jcmturner/gokrb5.v1/credentials"
|
|
|
- "gopkg.in/jcmturner/gokrb5.v1/iana/etypeID"
|
|
|
"gopkg.in/jcmturner/gokrb5.v1/keytab"
|
|
|
"gopkg.in/jcmturner/gokrb5.v1/testdata"
|
|
|
- "net/http"
|
|
|
"testing"
|
|
|
)
|
|
|
|
|
|
@@ -48,4 +45,43 @@ func TestClient_GetServiceTicket_AD(t *testing.T) {
|
|
|
}
|
|
|
assert.Equal(t, spn, tkt.SName.GetPrincipalNameString())
|
|
|
assert.Equal(t, 18, key.KeyType)
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+func TestClient_SuccessfulLogin_AD_TRUST_USER_DOMAIN(t *testing.T) {
|
|
|
+ b, err := hex.DecodeString(testdata.TESTUSER1_USERKRB5_AD_KEYTAB)
|
|
|
+ kt, _ := keytab.Parse(b)
|
|
|
+ c, _ := config.NewConfigFromString(testdata.TEST_KRB5CONF)
|
|
|
+ c.Realms[0].KDC = []string{testdata.TEST_KDC_AD_TRUST_USER_DOMAIN}
|
|
|
+ c.LibDefaults.DefaultRealm = "USER.GOKRB5"
|
|
|
+ cl := NewClientWithKeytab("testuser1", "USER.GOKRB5", kt)
|
|
|
+ cl.WithConfig(c)
|
|
|
+ cl.GoKrb5Conf.DisablePAFXFast = true
|
|
|
+
|
|
|
+ err = cl.Login()
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("Error on login: %v\n", err)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestClient_GetServiceTicket_AD_TRUST_USER_DOMAIN(t *testing.T) {
|
|
|
+ b, err := hex.DecodeString(testdata.TESTUSER1_USERKRB5_AD_KEYTAB)
|
|
|
+ kt, _ := keytab.Parse(b)
|
|
|
+ c, _ := config.NewConfigFromString(testdata.TEST_KRB5CONF)
|
|
|
+ c.Realms[0].KDC = []string{testdata.TEST_KDC_AD_TRUST_USER_DOMAIN}
|
|
|
+ c.LibDefaults.DefaultRealm = "USER.GOKRB5"
|
|
|
+ cl := NewClientWithKeytab("testuser1", "USER.GOKRB5", kt)
|
|
|
+ cl.WithConfig(c)
|
|
|
+ cl.GoKrb5Conf.DisablePAFXFast = true
|
|
|
+
|
|
|
+ err = cl.Login()
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("Error on login: %v\n", err)
|
|
|
+ }
|
|
|
+ spn := "HTTP/host.res.gokrb5"
|
|
|
+ tkt, key, err := cl.GetServiceTicket(spn)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("Error getting service ticket: %v\n", err)
|
|
|
+ }
|
|
|
+ assert.Equal(t, spn, tkt.SName.GetPrincipalNameString())
|
|
|
+ assert.Equal(t, 18, key.KeyType)
|
|
|
+}
|