Explorar el Código

oauth: raise error if session state is missing

ref #9476
bergquist hace 8 años
padre
commit
88f55b01d8
Se han modificado 1 ficheros con 6 adiciones y 2 borrados
  1. 6 2
      pkg/api/login_oauth.go

+ 6 - 2
pkg/api/login_oauth.go

@@ -71,8 +71,12 @@ func OAuthLogin(ctx *middleware.Context) {
 		return
 	}
 
-	// verify state string
-	savedState := ctx.Session.Get(middleware.SESS_KEY_OAUTH_STATE).(string)
+	savedState, ok := ctx.Session.Get(middleware.SESS_KEY_OAUTH_STATE).(string)
+	if !ok {
+		ctx.Handle(500, "login.OAuthLogin(missing saved state)", nil)
+		return
+	}
+
 	queryState := ctx.Query("state")
 	if savedState != queryState {
 		ctx.Handle(500, "login.OAuthLogin(state mismatch)", nil)