瀏覽代碼

default action on kerb error response

Jonathan Turner 7 年之前
父節點
當前提交
7b8d6d34ce
共有 2 個文件被更改,包括 6 次插入6 次删除
  1. 4 3
      client/ASExchange.go
  2. 2 3
      client/TGSExchange.go

+ 4 - 3
client/ASExchange.go

@@ -41,10 +41,9 @@ func (cl *Client) ASExchange(realm string, ASReq messages.ASReq, referral int) (
 				rb, err = cl.SendToKDC(b, realm)
 				if err != nil {
 					if _, ok := err.(messages.KRBError); ok {
-						return messages.ASRep{}, krberror.Errorf(err, krberror.KDCError, "AS Exchange Error: error response from KDC")
-					} else {
-						return messages.ASRep{}, krberror.Errorf(err, krberror.NetworkingError, "AS Exchange Error: failed sending AS_REQ to KDC")
+						return messages.ASRep{}, krberror.Errorf(err, krberror.KDCError, "AS Exchange Error: kerberos error response from KDC")
 					}
+					return messages.ASRep{}, krberror.Errorf(err, krberror.NetworkingError, "AS Exchange Error: failed sending AS_REQ to KDC")
 				}
 			case errorcode.KDC_ERR_WRONG_REALM:
 				// Client referral https://tools.ietf.org/html/rfc6806.html#section-7
@@ -53,6 +52,8 @@ func (cl *Client) ASExchange(realm string, ASReq messages.ASReq, referral int) (
 				}
 				referral++
 				return cl.ASExchange(e.CRealm, ASReq, referral)
+			default:
+				return messages.ASRep{}, krberror.Errorf(err, krberror.KDCError, "AS Exchange Error: kerberos error response from KDC")
 			}
 		} else {
 			return messages.ASRep{}, krberror.Errorf(err, krberror.NetworkingError, "AS Exchange Error: failed sending AS_REQ to KDC")

+ 2 - 3
client/TGSExchange.go

@@ -29,10 +29,9 @@ func (cl *Client) TGSExchange(spn types.PrincipalName, kdcRealm string, tkt mess
 	r, err := cl.SendToKDC(b, kdcRealm)
 	if err != nil {
 		if _, ok := err.(messages.KRBError); ok {
-			return tgsReq, tgsRep, krberror.Errorf(err, krberror.KDCError, "TGS Exchange Error: error response from KDC")
-		} else {
-			return tgsReq, tgsRep, krberror.Errorf(err, krberror.NetworkingError, "TGS Exchange Error: issue sending TGS_REQ to KDC")
+			return tgsReq, tgsRep, krberror.Errorf(err, krberror.KDCError, "TGS Exchange Error: kerberos error response from KDC")
 		}
+		return tgsReq, tgsRep, krberror.Errorf(err, krberror.NetworkingError, "TGS Exchange Error: issue sending TGS_REQ to KDC")
 	}
 	err = tgsRep.Unmarshal(r)
 	if err != nil {