Skip to content

Commit cc7bacb

Browse files
authored
fix!: small threat modelling issues (#4)
* removed btp-so endpoint * delete json path option * removed kubeconfig endpoint
1 parent 3769c50 commit cc7bacb

File tree

5 files changed

+2
-180
lines changed

5 files changed

+2
-180
lines changed

internal/server/handlerBtpSO.go

Lines changed: 0 additions & 114 deletions
This file was deleted.

internal/server/handlerCategory.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,7 @@ func _categoryHandler(s *shared, req *http.Request, res *response) (*response, *
107107
var result []byte = append([]byte("["), bytes.Join(resultData, []byte(","))[:]...)
108108
result = append(result, []byte("]")[:]...)
109109

110-
if data.JsonPath != "" {
111-
result, err = ParseJsonPath(result, data.JsonPath)
112-
if err != nil {
113-
slog.Error("failed to parse json path", "err", err)
114-
return nil, NewInternalServerError("failed to parse json path")
115-
}
116-
} else if data.JQ != "" {
110+
if data.JQ != "" {
117111
resultString, err := ParseJQ(result, data.JQ)
118112
if err != nil {
119113
slog.Error("failed to parse jq", "err", err)

internal/server/handlerMain.go

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ const (
2525
contextHeader = "X-context"
2626
useCrateClusterHeader = "X-use-crate"
2727
authorizationHeader = "Authorization"
28-
jsonPathHeader = "X-jsonpath"
2928
jqHeader = "X-jq"
3029
categoryHeader = "X-category"
3130
)
@@ -40,7 +39,6 @@ var prohibitedRequestHeaders = []string{
4039
mcpAuthHeader,
4140
contextHeader,
4241
authorizationHeader,
43-
jsonPathHeader,
4442
"User-Agent",
4543
"Host",
4644
}
@@ -61,7 +59,6 @@ type ExtractedRequestData struct {
6159
UseCrateCluster bool
6260
CrateAuthorization string
6361
Headers map[string][]string
64-
JsonPath string
6562
JQ string
6663
Category string
6764
}
@@ -128,16 +125,11 @@ func mainHandler(s *shared, req *http.Request, res *response) (*response, *HttpE
128125
}
129126
}(k8sResp.Body)
130127

131-
if (data.JsonPath == "" && data.JQ == "") || k8sResp.StatusCode >= 400 {
128+
if (data.JQ == "") || k8sResp.StatusCode >= 400 {
132129
err = CopyResponse(res, k8sResp, nil, nil)
133130
if err != nil {
134131
return nil, NewInternalServerError("failed to copy response: %v", err)
135132
}
136-
} else if data.JsonPath != "" {
137-
err := res.buildJsonPathResponse(k8sResp, err, data)
138-
if err != nil {
139-
return nil, NewInternalServerError("failed to build jsonpath response: %v", err)
140-
}
141133
} else {
142134
err := res.buildJqResponse(k8sResp, data)
143135
if err != nil {
@@ -163,7 +155,6 @@ func extractRequestData(r *http.Request) (ExtractedRequestData, error) {
163155
McpAuthorization: r.Header.Get(mcpAuthHeader),
164156
McpName: r.Header.Get(mcpName),
165157
CrateAuthorization: r.Header.Get(authorizationHeader),
166-
JsonPath: r.Header.Get(jsonPathHeader),
167158
JQ: r.Header.Get(jqHeader),
168159
Category: r.Header.Get(categoryHeader),
169160
}
@@ -202,19 +193,3 @@ func (r *response) buildJqResponse(k8sResp *http.Response, data ExtractedRequest
202193
r.contentType = "application/json"
203194
return err
204195
}
205-
206-
func (r *response) buildJsonPathResponse(k8sResp *http.Response, err error, data ExtractedRequestData) error {
207-
body, errR := io.ReadAll(k8sResp.Body)
208-
if errR != nil {
209-
return errors.Join(errors.New("failed to read api server response"), err)
210-
}
211-
212-
parsedJson, err := ParseJsonPath(body, data.JsonPath)
213-
if err != nil {
214-
return errors.Join(errors.New("failed to parse response with jsonpath"), err)
215-
}
216-
217-
err = CopyResponse(r, k8sResp, parsedJson, prohibitedResponseHeaders)
218-
r.contentType = "application/json"
219-
return err
220-
}

internal/server/handlerWellKnownKubeconfig.go

Lines changed: 0 additions & 31 deletions
This file was deleted.

internal/server/server.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ func NewMiddleware(theCrateKube k8s.Kube, theDownstreamKube k8s.Kube) *http.Serv
1414

1515
mux := http.NewServeMux()
1616

17-
mux.HandleFunc("/.well-known/openmcp/kubeconfig", defaultHandler(shared, wellKnownKubeconfigHandler))
18-
mux.HandleFunc("/btp-so", defaultHandler(shared, btpSOHandler))
1917
mux.HandleFunc("/managed", defaultHandler(shared, managedHandler))
2018
mux.HandleFunc("/c/", defaultHandler(shared, categoryHandler))
2119
mux.HandleFunc("/", defaultHandler(shared, mainHandler))

0 commit comments

Comments
 (0)