@@ -59,6 +59,11 @@ func setupProxyController(t *testing.T, middlewares *[]gin.HandlerFunc) (*gin.En
5959 Username : "testuser" ,
6060 Password : "$2a$10$ne6z693sTgzT3ePoQ05PgOecUHnBjM7sSNj6M.l5CLUP.f6NyCnt." , // test
6161 },
62+ {
63+ Username : "totpuser" ,
64+ Password : "$2a$10$ne6z693sTgzT3ePoQ05PgOecUHnBjM7sSNj6M.l5CLUP.f6NyCnt." ,
65+ TotpSecret : "foo" ,
66+ },
6267 },
6368 OauthWhitelist : []string {},
6469 SessionExpiry : 3600 ,
@@ -79,9 +84,11 @@ func setupProxyController(t *testing.T, middlewares *[]gin.HandlerFunc) (*gin.En
7984 return router , recorder , authService
8085}
8186
87+ // TODO: Needs tests for context middleware
88+
8289func TestProxyHandler (t * testing.T ) {
8390 // Setup
84- router , recorder , authService := setupProxyController (t , nil )
91+ router , recorder , _ := setupProxyController (t , nil )
8592
8693 // Test invalid proxy
8794 req := httptest .NewRequest ("GET" , "/api/auth/invalidproxy" , nil )
@@ -144,21 +151,6 @@ func TestProxyHandler(t *testing.T) {
144151 assert .Equal (t , 401 , recorder .Code )
145152
146153 // Test logged in user
147- c := gin .CreateTestContextOnly (recorder , router )
148-
149- err := authService .CreateSessionCookie (c , & repository.Session {
150- Username : "testuser" ,
151- Name : "testuser" ,
152- Email : "testuser@example.com" ,
153- Provider : "local" ,
154- TotpPending : false ,
155- OAuthGroups : "" ,
156- })
157-
158- assert .NilError (t , err )
159-
160- cookie := c .Writer .Header ().Get ("Set-Cookie" )
161-
162154 router , recorder , _ = setupProxyController (t , & []gin.HandlerFunc {
163155 func (c * gin.Context ) {
164156 c .Set ("context" , & config.UserContext {
@@ -177,44 +169,15 @@ func TestProxyHandler(t *testing.T) {
177169 })
178170
179171 req = httptest .NewRequest ("GET" , "/api/auth/traefik" , nil )
180- req .Header .Set ("Cookie" , cookie )
181172 req .Header .Set ("X-Forwarded-Proto" , "https" )
182173 req .Header .Set ("X-Forwarded-Host" , "example.com" )
183174 req .Header .Set ("X-Forwarded-Uri" , "/somepath" )
184175 req .Header .Set ("Accept" , "text/html" )
185- router .ServeHTTP (recorder , req )
186176
177+ router .ServeHTTP (recorder , req )
187178 assert .Equal (t , 200 , recorder .Code )
188179
189180 assert .Equal (t , "testuser" , recorder .Header ().Get ("Remote-User" ))
190181 assert .Equal (t , "testuser" , recorder .Header ().Get ("Remote-Name" ))
191182 assert .Equal (t , "testuser@example.com" , recorder .Header ().Get ("Remote-Email" ))
192-
193- // Ensure basic auth is disabled for TOTP enabled users
194- router , recorder , _ = setupProxyController (t , & []gin.HandlerFunc {
195- func (c * gin.Context ) {
196- c .Set ("context" , & config.UserContext {
197- Username : "testuser" ,
198- Name : "testuser" ,
199- Email : "testuser@example.com" ,
200- IsLoggedIn : true ,
201- IsBasicAuth : true ,
202- OAuth : false ,
203- Provider : "local" ,
204- TotpPending : false ,
205- OAuthGroups : "" ,
206- TotpEnabled : true ,
207- })
208- c .Next ()
209- },
210- })
211-
212- req = httptest .NewRequest ("GET" , "/api/auth/traefik" , nil )
213- req .Header .Set ("X-Forwarded-Proto" , "https" )
214- req .Header .Set ("X-Forwarded-Host" , "example.com" )
215- req .Header .Set ("X-Forwarded-Uri" , "/somepath" )
216- req .SetBasicAuth ("testuser" , "test" )
217- router .ServeHTTP (recorder , req )
218-
219- assert .Equal (t , 401 , recorder .Code )
220183}
0 commit comments