* chore: Update dependencies in go.mod and go.sum
* chore: Update submodule commit for crypto
* refactor: Update hook functions to return ssh.PipePackageHookMethod for better integration
* fix: Increase sleep duration in TestFixed to ensure proper execution
* fix: Increase sleep duration in TestFixed to ensure proper file flush
* fix: Update docker-compose service images and modify test to use host-password-old
* refactor: Simplify hook functions to return error instead of PipePackageHookMethod for better error handling
* feat: Add reply-ping flag to enable ping response for compatibility with older sshd
* fix: Update subproject commit reference in crypto
* feat: Decide upstream based on user's unix group membership
If a username is not defined, groupname is parsed. Check if the
user is part of that group and route them to the associated host
defined in the config file for the yaml plugin
* style: fix formatting with gofmt
* feat: Look up user groups only when groupname defined in yaml config
* fix: inefficient assignment because of unused var
* feat: fallback to next rule on group lookup failure
Instead of failing on group lookup errors, the matcher now skips the
groupname rule and proceeds to the next, eventually failing through to
the catchall rule.
* feat: test cases for group based routing in yaml plugin
* Revert "feat: fallback to next rule on group lookup failure"
This reverts commit 622ee9f1eb3157d04f57c068179bb74de8db3a1f.
Handles the error returned by getUserGroups instead of ignoring it,
to prevent potential runtime issues when user lookup fail
* feat: Check if a user is known to the system before group lookup
This will let the rule matching logic skip to the next pipe in the yaml
config when a user is not found on the system.
Note the variable name change from user to username to avoid ambiguity
dur to name collision with os/user package.
* feat: Avoid redundant user lookup
* feat: Improve error handling for user and group lookup failures
* feat: Use appropriate test user name for group routing
* remove unused logs
* add banner to server password
* add updated crypto lib
* add test
* refactor: clean up whitespace in banner test
* fix: update test case name to use underscores for consistency
* Update docker-compose.yml
* Update docker-compose.yml and Dockerfile: simplify kind load command and upgrade kind version to v0.27.0
* Comment out Docker installation steps in Dockerfile
* Revert "Comment out Docker installation steps in Dockerfile"
This reverts commit 242e5c638958cb4227d99c85d2cae13214b74513.
* Update OpenSSH server image version and add no penalties configuration
* Refactor SSH configuration paths and update test scripts for public key handling
* Update Docker Compose volumes to remove read-only flag for shared directory
* Remove end-to-end test files and related Docker configuration for CA public cert authentication
* Refactor plugin.proto and pluginbase.go to add support for metadata in connection context
* go fmt
* move test plugin out
* Refactor Dockerfile to build test plugin in e2e/testplugin directory
* mv testplugin -> testgrpcplugin
* add test for connection metadata
* enable logging to stdout
* Refactor Dockerfile to build test plugin in e2e/testplugin directory
* add coverage for go proxy
* Refactor CLI flag name for allowed proxy addresses
* Refactor YAML schema to support multiple authorized keys and known hosts
* add testcases
* Refactor YAML schema to support multiple authorized keys and known hosts
* go fmt
* go fmt
This commit adds a new test case to cover the scenario where multiple key files are used for authentication with the publickey_simple user. It generates a temporary key file and attempts to SSH to the piper server using both the correct and incorrect key files. The test verifies that the correct key file allows the connection and writes a random text to a shared file.
* Add PipeCreateErrorCallback to handle pipe creation errors
* Add test for FailtobanPipeCreateFail
* Fix missing newline at end of file in pluginbase.go