summaryrefslogtreecommitdiffstats
path: root/app/login_test.go
diff options
context:
space:
mode:
authorCorey Hulen <corey@hulen.com>2018-06-12 10:16:39 -0700
committerChristopher Speller <crspeller@gmail.com>2018-06-12 10:16:39 -0700
commit656c8a62d145fc565e9a98e060329239d2d59fbd (patch)
treeb4922cbf8b14992c353742e9e4225d7736a2e3a3 /app/login_test.go
parent4ea7f6a2f7e61356996a3dfa85169f8db5d4d064 (diff)
downloadchat-656c8a62d145fc565e9a98e060329239d2d59fbd.tar.gz
chat-656c8a62d145fc565e9a98e060329239d2d59fbd.tar.bz2
chat-656c8a62d145fc565e9a98e060329239d2d59fbd.zip
Prototype for CBA (#8475)
* Prototype for CBA * Fixing gofmt issues * Do not require password if logging in with certificate * Fixing issues from feedback * Adding unit tests * Fixing feedback
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)
+ }
+ }
+}