4 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
5 . "github.com/onsi/ginkgo/v2"
6 . "github.com/onsi/gomega"
9var _ = Describe("Providers", func() {
10 type validateProvidersTableInput struct {
11 options *options.Options
15 validProvider := options.Provider{
18 ClientSecret: "ClientSecret",
21 validOIDCSigningAlgorithmsProvider := options.Provider{
22 ID: "ProviderIDOIDCSigningAlgorithms",
24 ClientSecret: "ClientSecret",
25 OIDCConfig: options.OIDCOptions{
26 EnabledSigningAlgs: []string{"RS256", "EdDSA"},
30 invalidOIDCSigningAlgorithmsProvider := options.Provider{
31 ID: "ProviderIDInvalidOIDCSigningAlgorithms",
33 ClientSecret: "ClientSecret",
34 OIDCConfig: options.OIDCOptions{
35 EnabledSigningAlgs: []string{"RS256", "invalid"},
39 invalidOIDCSigningAlgorithmCaseProvider := options.Provider{
40 ID: "ProviderIDInvalidOIDCSigningAlgorithmCase",
42 ClientSecret: "ClientSecret",
43 OIDCConfig: options.OIDCOptions{
44 EnabledSigningAlgs: []string{"rs256"},
48 validLoginGovProvider := options.Provider{
50 ID: "ProviderIDLoginGov",
52 ClientSecret: "ClientSecret",
55 missingIDProvider := options.Provider{
57 ClientSecret: "ClientSecret",
60 missingProvider := "at least one provider has to be defined"
61 emptyIDMsg := "provider has empty id: ids are required for all providers"
62 duplicateProviderIDMsg := "multiple providers found with id ProviderID: provider ids must be unique"
63 skipButtonAndMultipleProvidersMsg := "SkipProviderButton and multiple providers are mutually exclusive"
64 invalidOIDCSigningAlgorithmMsg := "provider ProviderIDInvalidOIDCSigningAlgorithms has invalid EnabledSigningAlgs entry \"invalid\""
65 invalidOIDCSigningAlgorithmCaseMsg := "provider ProviderIDInvalidOIDCSigningAlgorithmCase has invalid EnabledSigningAlgs entry \"rs256\""
67 DescribeTable("validateProviders",
68 func(o *validateProvidersTableInput) {
69 Expect(validateProviders(o.options)).To(ConsistOf(o.errStrings))
71 Entry("with no providers", &validateProvidersTableInput{
72 options: &options.Options{},
73 errStrings: []string{missingProvider},
75 Entry("with valid providers", &validateProvidersTableInput{
76 options: &options.Options{
77 Providers: options.Providers{
79 validLoginGovProvider,
82 errStrings: []string{},
84 Entry("with an empty providerID", &validateProvidersTableInput{
85 options: &options.Options{
86 Providers: options.Providers{
90 errStrings: []string{emptyIDMsg},
92 Entry("with same providerID", &validateProvidersTableInput{
93 options: &options.Options{
94 Providers: options.Providers{
99 errStrings: []string{duplicateProviderIDMsg},
101 Entry("with multiple providers and skip provider button", &validateProvidersTableInput{
102 options: &options.Options{
103 SkipProviderButton: true,
104 Providers: options.Providers{
106 validLoginGovProvider,
109 errStrings: []string{skipButtonAndMultipleProvidersMsg},
111 Entry("with valid OIDC signing algorithms", &validateProvidersTableInput{
112 options: &options.Options{
113 Providers: options.Providers{
114 validOIDCSigningAlgorithmsProvider,
117 errStrings: []string{},
119 Entry("with an invalid OIDC signing algorithm", &validateProvidersTableInput{
120 options: &options.Options{
121 Providers: options.Providers{
122 invalidOIDCSigningAlgorithmsProvider,
125 errStrings: []string{invalidOIDCSigningAlgorithmMsg},
127 Entry("with an OIDC signing algorithm using invalid casing", &validateProvidersTableInput{
128 options: &options.Options{
129 Providers: options.Providers{
130 invalidOIDCSigningAlgorithmCaseProvider,
133 errStrings: []string{invalidOIDCSigningAlgorithmCaseMsg},
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list