Files
ziti/tests/control.go
Andrew Martinez a9dd2fc8f8 fix.openziti.ziti.3597.OIDC.by.default (#3605)
* fixes #3597, enable OIDC by default

- adds ability to have different sets of environment configs for tests
- adds ConfigSet struct as a configuration device for integration tests
  - allows entire environments to be defined as needed
  - original ats config set at "default-ats"
  - tests that do not specify a config set, use "default-ats" as before
- standardizes configuration location, naming, etc.
- adds README.md for the above
- updates testContext to now be config set aware
- add config value to disable, update tests, changelog
- add defense against cached version data for tests
2026-03-04 10:03:14 -05:00

40 lines
1.5 KiB
Go

package tests
import (
"math/big"
"github.com/openziti/channel/v4"
"github.com/openziti/foundation/v2/versions"
"github.com/openziti/transport/v2"
"github.com/openziti/ziti/v2/common/capabilities"
"github.com/openziti/ziti/v2/common/pb/ctrl_pb"
"github.com/openziti/ziti/v2/controller/config"
)
func (ctx *TestContext) NewControlChannelListener() channel.UnderlayListener {
config, err := config.LoadConfig(ctx.configSet.CtrlConfig)
ctx.Req.NoError(err)
ctx.Req.NoError(config.Db.Close())
versionHeader, err := versions.StdVersionEncDec.Encode(versions.NewDefaultVersionProvider().AsVersionInfo())
ctx.Req.NoError(err)
capabilityMask := &big.Int{}
capabilityMask.SetBit(capabilityMask, capabilities.ControllerCreateTerminatorV2, 1)
capabilityMask.SetBit(capabilityMask, capabilities.ControllerSingleRouterLinkSource, 1)
capabilityMask.SetBit(capabilityMask, capabilities.ControllerSupportsJWTLegacySessions, 1)
headers := map[int32][]byte{
channel.HelloVersionHeader: versionHeader,
int32(ctrl_pb.ControlHeaders_CapabilitiesHeader): capabilityMask.Bytes(),
}
ctrlChannelListenerConfig := channel.ListenerConfig{
ConnectOptions: config.Ctrl.Options.ConnectOptions,
Headers: headers,
TransportConfig: transport.Configuration{"protocol": "ziti-ctrl"},
}
ctrlListener := channel.NewClassicListener(config.Id, config.Ctrl.Listener, ctrlChannelListenerConfig)
ctx.Req.NoError(ctrlListener.Listen())
return ctrlListener
}