( meta metadata.ConnectionMetadata, handlerNetworkConnection *networkConnectionWrapper, logger log.Logger, )
| 458 | } |
| 459 | |
| 460 | func (s *serverImpl) createPubKeyCallback( |
| 461 | meta metadata.ConnectionMetadata, |
| 462 | handlerNetworkConnection *networkConnectionWrapper, |
| 463 | logger log.Logger, |
| 464 | ) func(conn ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) { |
| 465 | pubKeyHandler := s.createPubKeyAuthenticator(meta, handlerNetworkConnection, logger) |
| 466 | pubkeyCallback := func(conn ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) { |
| 467 | _, authenticatedMetadata, err := pubKeyHandler(conn, key) |
| 468 | if err != nil { |
| 469 | return nil, err |
| 470 | } |
| 471 | marshaledMetadata, err := json.Marshal(authenticatedMetadata) |
| 472 | if err != nil { |
| 473 | return nil, err |
| 474 | } |
| 475 | return &ssh.Permissions{ |
| 476 | Extensions: map[string]string{ |
| 477 | "containerssh-metadata": string(marshaledMetadata), |
| 478 | }, |
| 479 | }, err |
| 480 | } |
| 481 | return pubkeyCallback |
| 482 | } |
| 483 | |
| 484 | func (s *serverImpl) createPasswordCallback( |
| 485 | meta metadata.ConnectionMetadata, |
no test coverage detected