@@ -28,6 +28,8 @@ var _ = Describe("Server", func() {
2828 expectedErr error
2929 expectHTTPListener bool
3030 expectTLSListener bool
31+ expectedSocketMode os.FileMode
32+ socketPath string
3133 fdAddr string
3234 ipv6 bool
3335 }
@@ -57,6 +59,12 @@ var _ = Describe("Server", func() {
5759 s, ok := srv.(*server)
5860 Expect(ok).To(BeTrue())
5961
62+ if in.socketPath != "" {
63+ fileInfo, err := os.Stat(in.socketPath)
64+ Expect(err).ToNot(HaveOccurred())
65+ Expect(fileInfo.Mode().Perm()).To(Equal(in.expectedSocketMode.Perm()))
66+ }
67+
6068 Expect(s.listener != nil).To(Equal(in.expectHTTPListener))
6169 if in.expectHTTPListener {
6270 Expect(s.listener.Close()).To(Succeed())
@@ -648,6 +656,48 @@ var _ = Describe("Server", func() {
648656 expectTLSListener: true,
649657 ipv6: true,
650658 }),
659+ Entry("with a valid unix socket path", &newServerTableInput{
660+ opts: Opts{
661+ Handler: handler,
662+ BindAddress: "unix:///tmp/oauth2-proxy.sock",
663+ },
664+ expectedErr: nil,
665+ expectHTTPListener: true,
666+ expectTLSListener: false,
667+ ipv6: false,
668+ }),
669+ Entry("with a valid unix socket path and a valid socket file mode", &newServerTableInput{
670+ opts: Opts{
671+ Handler: handler,
672+ BindAddress: "unix:///tmp/oauth2-proxy.sock,mode=0777",
673+ },
674+ expectedErr: nil,
675+ expectHTTPListener: true,
676+ expectTLSListener: false,
677+ expectedSocketMode: 0o777,
678+ socketPath: "/tmp/oauth2-proxy.sock",
679+ ipv6: false,
680+ }),
681+ Entry("with a valid unix socket path and a value-less socket file mode argument", &newServerTableInput{
682+ opts: Opts{
683+ Handler: handler,
684+ BindAddress: "unix:///tmp/oauth2-proxy.sock,mode",
685+ },
686+ expectedErr: errors.New("error setting up listener: listen (unix, /tmp/oauth2-proxy.sock,mode) failed: unix socket option mode expects a value"),
687+ expectHTTPListener: false,
688+ expectTLSListener: false,
689+ ipv6: false,
690+ }),
691+ Entry("with a valid unix socket path and an invalid socket file mode value", &newServerTableInput{
692+ opts: Opts{
693+ Handler: handler,
694+ BindAddress: "unix:///tmp/oauth2-proxy.sock,mode=-1",
695+ },
696+ expectedErr: errors.New("error setting up listener: listen (unix, /tmp/oauth2-proxy.sock,mode=-1) failed: unix socket file mode has invalid value -1"),
697+ expectHTTPListener: false,
698+ expectTLSListener: false,
699+ ipv6: false,
700+ }),
651701 )
652702 })
653703