@@ -25,11 +25,9 @@ type GSS struct {
2525func NewGSS () (* GSS , error ) {
2626 g := & GSS {}
2727 err := g .init ()
28-
2928 if err != nil {
3029 return nil , err
3130 }
32-
3331 return g , nil
3432}
3533
@@ -50,32 +48,25 @@ func (g *GSS) init() error {
5048 }
5149
5250 ccpath := "/tmp/krb5cc_" + u .Uid
53-
54- ccname := os .Getenv ("KRB5CCNAME" )
55- if strings .HasPrefix (ccname , "FILE:" ) {
51+ if ccname := os .Getenv ("KRB5CCNAME" ); strings .HasPrefix (ccname , "FILE:" ) {
5652 ccpath = strings .SplitN (ccname , ":" , 2 )[1 ]
5753 }
58-
5954 ccache , err := credentials .LoadCCache (ccpath )
6055 if err != nil {
6156 return err
6257 }
63-
6458 cl , err := client .NewFromCCache (ccache , cfg , client .DisablePAFXFAST (true ))
6559 if err != nil {
6660 return err
6761 }
6862
6963 cl .Login ()
70-
7164 g .cli = cl
72-
7365 return nil
7466}
7567
7668// GetInitToken implements the GSS interface.
7769func (g * GSS ) GetInitToken (host string , service string ) ([]byte , error ) {
78-
7970 // Resolve the hostname down to an 'A' record, if required (usually, it is)
8071 if g .cli .Config .LibDefaults .DNSCanonicalizeHostname {
8172 var err error
@@ -84,26 +75,19 @@ func (g *GSS) GetInitToken(host string, service string) ([]byte, error) {
8475 return nil , err
8576 }
8677 }
87-
88- spn := service + "/" + host
89-
90- return g .GetInitTokenFromSpn (spn )
78+ return g .GetInitTokenFromSpn (service + "/" + host )
9179}
9280
9381// GetInitTokenFromSpn implements the GSS interface.
9482func (g * GSS ) GetInitTokenFromSpn (spn string ) ([]byte , error ) {
95- s := spnego .SPNEGOClient (g .cli , spn )
96-
97- st , err := s .InitSecContext ()
83+ st , err := spnego .SPNEGOClient (g .cli , spn ).InitSecContext ()
9884 if err != nil {
9985 return nil , fmt .Errorf ("kerberos error (InitSecContext): %w" , err )
10086 }
101-
10287 b , err := st .Marshal ()
10388 if err != nil {
10489 return nil , fmt .Errorf ("kerberos error (Marshaling token): %w" , err )
10590 }
106-
10791 return b , nil
10892}
10993
@@ -114,11 +98,9 @@ func (g *GSS) Continue(inToken []byte) (done bool, outToken []byte, err error) {
11498 if err != nil {
11599 return true , nil , fmt .Errorf ("kerberos error (Unmarshaling token): %w" , err )
116100 }
117-
118101 state := t .NegTokenResp .State ()
119102 if state != spnego .NegStateAcceptCompleted {
120103 return true , nil , fmt .Errorf ("kerberos: expected state 'Completed' - got %d" , state )
121104 }
122-
123105 return true , nil , nil
124106}
0 commit comments