GraphQL: fix cert store access

This commit is contained in:
Jonathan Jenne
2020-05-13 10:45:11 +02:00
parent 6e577627d3
commit 967ad15052
4 changed files with 140 additions and 53 deletions

View File

@@ -10,6 +10,8 @@
Public Property ProxyPort As Integer = 0
Public Property ProxyUsername As String = ""
Public Property ProxyPassword As String = ""
Public Property CurrentQuery As String = "Custom"
Public Property CustomQueryString As String = ""
Public Function HasProxySet() As Boolean
Return ProxyHost <> "" And ProxyPort > 0

View File

@@ -1,9 +1,9 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmMain
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
@@ -20,7 +20,7 @@ Partial Class frmMain
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.Button1 = New System.Windows.Forms.Button()
Me.txtBaseUrl = New System.Windows.Forms.TextBox()
@@ -33,13 +33,13 @@ Partial Class frmMain
Me.Label3 = New System.Windows.Forms.Label()
Me.Label4 = New System.Windows.Forms.Label()
Me.Label5 = New System.Windows.Forms.Label()
Me.txtResults = New System.Windows.Forms.TextBox()
Me.txtResult = New System.Windows.Forms.TextBox()
Me.txtConnectionString = New System.Windows.Forms.TextBox()
Me.Label6 = New System.Windows.Forms.Label()
Me.ComboBox1 = New System.Windows.Forms.ComboBox()
Me.cmbQuery = New System.Windows.Forms.ComboBox()
Me.Label7 = New System.Windows.Forms.Label()
Me.TabControl1 = New System.Windows.Forms.TabControl()
Me.TabPage1 = New System.Windows.Forms.TabPage()
Me.pageRaw = New System.Windows.Forms.TabPage()
Me.btnLogin = New System.Windows.Forms.Button()
Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
Me.txtProxyHost = New System.Windows.Forms.TextBox()
@@ -50,8 +50,12 @@ Partial Class frmMain
Me.Label10 = New System.Windows.Forms.Label()
Me.txtProxyPort = New System.Windows.Forms.TextBox()
Me.Label11 = New System.Windows.Forms.Label()
Me.pageQuery = New System.Windows.Forms.TabPage()
Me.txtQuery = New System.Windows.Forms.TextBox()
Me.txtOperation = New System.Windows.Forms.TextBox()
Me.TabControl1.SuspendLayout()
Me.TabPage1.SuspendLayout()
Me.pageRaw.SuspendLayout()
Me.pageQuery.SuspendLayout()
Me.SuspendLayout()
'
'Button1
@@ -148,16 +152,16 @@ Partial Class frmMain
Me.Label5.TabIndex = 2
Me.Label5.Text = "Cert Pass"
'
'txtResults
'txtResult
'
Me.txtResults.Dock = System.Windows.Forms.DockStyle.Fill
Me.txtResults.Font = New System.Drawing.Font("Consolas", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtResults.Location = New System.Drawing.Point(3, 3)
Me.txtResults.Multiline = True
Me.txtResults.Name = "txtResults"
Me.txtResults.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.txtResults.Size = New System.Drawing.Size(458, 342)
Me.txtResults.TabIndex = 3
Me.txtResult.Dock = System.Windows.Forms.DockStyle.Fill
Me.txtResult.Font = New System.Drawing.Font("Consolas", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtResult.Location = New System.Drawing.Point(3, 3)
Me.txtResult.Multiline = True
Me.txtResult.Name = "txtResult"
Me.txtResult.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.txtResult.Size = New System.Drawing.Size(458, 342)
Me.txtResult.TabIndex = 3
'
'txtConnectionString
'
@@ -176,14 +180,14 @@ Partial Class frmMain
Me.Label6.TabIndex = 2
Me.Label6.Text = "ConnectionString"
'
'ComboBox1
'cmbQuery
'
Me.ComboBox1.FormattingEnabled = True
Me.ComboBox1.Items.AddRange(New Object() {"SAPDaten"})
Me.ComboBox1.Location = New System.Drawing.Point(106, 352)
Me.ComboBox1.Name = "ComboBox1"
Me.ComboBox1.Size = New System.Drawing.Size(338, 21)
Me.ComboBox1.TabIndex = 4
Me.cmbQuery.FormattingEnabled = True
Me.cmbQuery.Items.AddRange(New Object() {"SAPDaten", "Custom"})
Me.cmbQuery.Location = New System.Drawing.Point(106, 352)
Me.cmbQuery.Name = "cmbQuery"
Me.cmbQuery.Size = New System.Drawing.Size(338, 21)
Me.cmbQuery.TabIndex = 4
'
'Label7
'
@@ -196,23 +200,24 @@ Partial Class frmMain
'
'TabControl1
'
Me.TabControl1.Controls.Add(Me.TabPage1)
Me.TabControl1.Controls.Add(Me.pageRaw)
Me.TabControl1.Controls.Add(Me.pageQuery)
Me.TabControl1.Location = New System.Drawing.Point(450, 6)
Me.TabControl1.Name = "TabControl1"
Me.TabControl1.SelectedIndex = 0
Me.TabControl1.Size = New System.Drawing.Size(472, 374)
Me.TabControl1.TabIndex = 5
'
'TabPage1
'pageRaw
'
Me.TabPage1.Controls.Add(Me.txtResults)
Me.TabPage1.Location = New System.Drawing.Point(4, 22)
Me.TabPage1.Name = "TabPage1"
Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
Me.TabPage1.Size = New System.Drawing.Size(464, 348)
Me.TabPage1.TabIndex = 0
Me.TabPage1.Text = "Raw GraphQL Result"
Me.TabPage1.UseVisualStyleBackColor = True
Me.pageRaw.Controls.Add(Me.txtResult)
Me.pageRaw.Location = New System.Drawing.Point(4, 22)
Me.pageRaw.Name = "pageRaw"
Me.pageRaw.Padding = New System.Windows.Forms.Padding(3)
Me.pageRaw.Size = New System.Drawing.Size(464, 348)
Me.pageRaw.TabIndex = 0
Me.pageRaw.Text = "Raw GraphQL Result"
Me.pageRaw.UseVisualStyleBackColor = True
'
'btnLogin
'
@@ -294,6 +299,36 @@ Partial Class frmMain
Me.Label11.TabIndex = 2
Me.Label11.Text = "Proxy Port"
'
'pageQuery
'
Me.pageQuery.Controls.Add(Me.txtQuery)
Me.pageQuery.Controls.Add(Me.txtOperation)
Me.pageQuery.Location = New System.Drawing.Point(4, 22)
Me.pageQuery.Name = "pageQuery"
Me.pageQuery.Padding = New System.Windows.Forms.Padding(3)
Me.pageQuery.Size = New System.Drawing.Size(464, 348)
Me.pageQuery.TabIndex = 1
Me.pageQuery.Text = "Custom Query"
Me.pageQuery.UseVisualStyleBackColor = True
'
'txtQuery
'
Me.txtQuery.Dock = System.Windows.Forms.DockStyle.Fill
Me.txtQuery.Font = New System.Drawing.Font("Consolas", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtQuery.Location = New System.Drawing.Point(3, 23)
Me.txtQuery.Multiline = True
Me.txtQuery.Name = "txtQuery"
Me.txtQuery.Size = New System.Drawing.Size(458, 322)
Me.txtQuery.TabIndex = 0
'
'txtOperation
'
Me.txtOperation.Dock = System.Windows.Forms.DockStyle.Top
Me.txtOperation.Location = New System.Drawing.Point(3, 3)
Me.txtOperation.Name = "txtOperation"
Me.txtOperation.Size = New System.Drawing.Size(458, 20)
Me.txtOperation.TabIndex = 1
'
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -301,7 +336,7 @@ Partial Class frmMain
Me.ClientSize = New System.Drawing.Size(934, 429)
Me.Controls.Add(Me.ProgressBar1)
Me.Controls.Add(Me.TabControl1)
Me.Controls.Add(Me.ComboBox1)
Me.Controls.Add(Me.cmbQuery)
Me.Controls.Add(Me.Label7)
Me.Controls.Add(Me.Label6)
Me.Controls.Add(Me.Label5)
@@ -328,8 +363,10 @@ Partial Class frmMain
Me.Name = "frmMain"
Me.Text = "GraphQL Interface"
Me.TabControl1.ResumeLayout(False)
Me.TabPage1.ResumeLayout(False)
Me.TabPage1.PerformLayout()
Me.pageRaw.ResumeLayout(False)
Me.pageRaw.PerformLayout()
Me.pageQuery.ResumeLayout(False)
Me.pageQuery.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -346,13 +383,13 @@ Partial Class frmMain
Friend WithEvents Label3 As Label
Friend WithEvents Label4 As Label
Friend WithEvents Label5 As Label
Friend WithEvents txtResults As TextBox
Friend WithEvents txtResult As TextBox
Friend WithEvents txtConnectionString As TextBox
Friend WithEvents Label6 As Label
Friend WithEvents ComboBox1 As ComboBox
Friend WithEvents cmbQuery As ComboBox
Friend WithEvents Label7 As Label
Friend WithEvents TabControl1 As TabControl
Friend WithEvents TabPage1 As TabPage
Friend WithEvents pageRaw As TabPage
Friend WithEvents btnLogin As Button
Friend WithEvents ProgressBar1 As ProgressBar
Friend WithEvents txtProxyHost As TextBox
@@ -363,4 +400,7 @@ Partial Class frmMain
Friend WithEvents Label10 As Label
Friend WithEvents txtProxyPort As TextBox
Friend WithEvents Label11 As Label
Friend WithEvents pageQuery As TabPage
Friend WithEvents txtQuery As TextBox
Friend WithEvents txtOperation As TextBox
End Class

View File

@@ -63,8 +63,10 @@ Public Class frmMain
txtProxyPort.Text = _Config.Config.ProxyPort
txtProxyUser.Text = _Config.Config.ProxyUsername
txtProxyPass.Text = _Config.Config.ProxyPassword
txtQuery.Text = _Config.Config.CustomQueryString
ComboBox1.SelectedIndex = 0
Dim oIndex = cmbQuery.FindStringExact(_Config.Config.CurrentQuery)
cmbQuery.SelectedIndex = oIndex
_MSSQL = New MSSQLServer(_LogConfig, _Config.Config.ConnectionString)
Catch ex As Exception
@@ -75,7 +77,6 @@ Public Class frmMain
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
Try
_Interface = New GraphQLInterface(_LogConfig,
txtBaseUrl.Text,
txtUsername.Text,
@@ -86,16 +87,20 @@ Public Class frmMain
If _Config.Config.HasProxySet() And _Config.Config.HasProxyCredentialsSet() Then
Dim oURI As New Uri($"http://{_Config.Config.ProxyHost}:{_Config.Config.ProxyPort}")
Dim oCredentials As New NetworkCredential(_Config.Config.ProxyUsername, _Config.Config.ProxyPassword)
Dim oProxy As New WebProxy() With {
Dim oProxy As New WebProxy(oURI, True) With {
.Address = oURI,
.UseDefaultCredentials = False,
.Credentials = oCredentials
}
_Interface.Proxy = oProxy
_Interface.Credentials = oCredentials
_Logger.Debug("Using Proxy: {0}", oURI.ToString)
_Logger.Debug("Proxy Credentials: [{0}] [{1}]", _Config.Config.ProxyUsername, _Config.Config.ProxyPassword)
Else
_Interface.Proxy = Nothing
_Interface.Credentials = Nothing
_Logger.Debug("Proxy not set.")
End If
@@ -121,15 +126,15 @@ Public Class frmMain
Exit Sub
End If
If ComboBox1.SelectedIndex = -1 Then
If cmbQuery.SelectedIndex = -1 Then
MsgBox("Please select a query!", MsgBoxStyle.Exclamation, Text)
Exit Sub
End If
If ComboBox1.Text = "SAPDaten" Then
If cmbQuery.Text = "SAPDaten" Then
_MSSQL.ExecuteNonQuery("DELETE FROM TBCUST_SYNC_API_SAPDATEN")
txtResults.Text = String.Empty
txtResult.Text = String.Empty
For Each oDatapool In _Datapools
Dim oQuery As String = GRAPHQL_QUERY_SAP_DATA.Trim.Replace("__DATA_POOL__", oDatapool)
@@ -164,12 +169,33 @@ Public Class frmMain
ProgressBar1.Value = oCounter
Next
txtResults.Text &= "--------------------------------------------" & vbNewLine
txtResults.Text &= $"--- Datapool: {oDatapool}" & vbNewLine
txtResults.Text &= JsonConvert.SerializeObject(oObj, Formatting.Indented) & vbNewLine
txtResult.Text &= "--------------------------------------------" & vbNewLine
txtResult.Text &= $"--- Datapool: {oDatapool}" & vbNewLine
txtResult.Text &= JsonConvert.SerializeObject(oObj, Formatting.Indented) & vbNewLine
Application.DoEvents()
Next
ElseIf cmbQuery.Text = "Custom" Then
If txtOperation.Text = String.Empty Then
MsgBox("Please select an operation!", MsgBoxStyle.Exclamation, Text)
Exit Sub
End If
Dim oDataResponse = _Interface.GetData(txtQuery.Text, txtOperation.Text)
Dim oResult As String
Using oStream = oDataResponse.GetResponseStream()
Using oReader As New StreamReader(oStream)
oResult = oReader.ReadToEnd()
End Using
End Using
Dim oObj As JObject = JsonConvert.DeserializeObject(oResult)
Dim oIndentedJson As String = JsonConvert.SerializeObject(oObj, Formatting.Indented)
txtResult.Text = oIndentedJson
TabControl1.SelectedTab = pageRaw
Else
MsgBox("Unknown query!", MsgBoxStyle.Exclamation, Text)
Exit Sub
@@ -192,6 +218,7 @@ Public Class frmMain
_Config.Config.ProxyPassword = txtProxyPass.Text
_Config.Config.ProxyPort = txtProxyPort.Text
_Config.Config.ProxyUsername = txtProxyUser.Text
_Config.Config.CustomQueryString = txtQuery.Text
_Config.Save(ForceAll:=True)
Dim oLogoutResponse = _Interface.Logout()
@@ -210,4 +237,9 @@ Public Class frmMain
Return oSAPData
End Function
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbQuery.SelectedIndexChanged
_Config.Config.CurrentQuery = cmbQuery.Text
_Config.Save()
End Sub
End Class