summaryrefslogtreecommitdiffstats
path: root/app/login_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'app/login_test.go')
-rw-r--r--app/login_test.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/app/login_test.go b/app/login_test.go
new file mode 100644
index 000000000..db92f1d7d
--- /dev/null
+++ b/app/login_test.go
@@ -0,0 +1,37 @@
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package app
+
+import (
+ "net/http"
+ "testing"
+)
+
+func TestCheckForClienSideCert(t *testing.T) {
+ th := Setup()
+ defer th.TearDown()
+
+ var tests = []struct {
+ pem string
+ subject string
+ expectedEmail string
+ }{
+ {"blah", "blah", ""},
+ {"blah", "C=US, ST=Maryland, L=Pasadena, O=Brent Baccala, OU=FreeSoft, CN=www.freesoft.org/emailAddress=test@test.com", "test@test.com"},
+ {"blah", "C=US, ST=Maryland, L=Pasadena, O=Brent Baccala, OU=FreeSoft, CN=www.freesoft.org/EmailAddress=test@test.com", ""},
+ {"blah", "CN=www.freesoft.org/EmailAddress=test@test.com, C=US, ST=Maryland, L=Pasadena, O=Brent Baccala, OU=FreeSoft", ""},
+ }
+
+ for _, tt := range tests {
+ r := &http.Request{Header: http.Header{}}
+ r.Header.Add("X-SSL-Client-Cert", tt.pem)
+ r.Header.Add("X-SSL-Client-Cert-Subject-DN", tt.subject)
+
+ _, _, actualEmail := th.App.CheckForClienSideCert(r)
+
+ if actualEmail != tt.expectedEmail {
+ t.Fatalf("CheckForClienSideCert(%v): expected %v, actual %v", tt.subject, tt.expectedEmail, actualEmail)
+ }
+ }
+}