Merge pull request #153 from PierreZ/master
Fix Issue #150: Add possibility to have REST API in read-only mode
This commit is contained in:
commit
f10bbd8c69
2 changed files with 11 additions and 0 deletions
|
@ -243,6 +243,11 @@ address = ":8080"
|
||||||
#
|
#
|
||||||
# CertFile = "traefik.crt"
|
# CertFile = "traefik.crt"
|
||||||
# KeyFile = "traefik.key"
|
# KeyFile = "traefik.key"
|
||||||
|
#
|
||||||
|
# Set REST API to read-only mode
|
||||||
|
#
|
||||||
|
# Optional
|
||||||
|
# ReadOnly = false
|
||||||
```
|
```
|
||||||
|
|
||||||
- `/`: provides a simple HTML frontend of Træfik
|
- `/`: provides a simple HTML frontend of Træfik
|
||||||
|
|
6
web.go
6
web.go
|
@ -19,6 +19,7 @@ import (
|
||||||
type WebProvider struct {
|
type WebProvider struct {
|
||||||
Address string
|
Address string
|
||||||
CertFile, KeyFile string
|
CertFile, KeyFile string
|
||||||
|
ReadOnly bool
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -40,6 +41,11 @@ func (provider *WebProvider) Provide(configurationChan chan<- types.ConfigMessag
|
||||||
systemRouter.Methods("GET").Path("/api/providers").HandlerFunc(getConfigHandler)
|
systemRouter.Methods("GET").Path("/api/providers").HandlerFunc(getConfigHandler)
|
||||||
systemRouter.Methods("GET").Path("/api/providers/{provider}").HandlerFunc(getProviderHandler)
|
systemRouter.Methods("GET").Path("/api/providers/{provider}").HandlerFunc(getProviderHandler)
|
||||||
systemRouter.Methods("PUT").Path("/api/providers/{provider}").HandlerFunc(func(response http.ResponseWriter, request *http.Request) {
|
systemRouter.Methods("PUT").Path("/api/providers/{provider}").HandlerFunc(func(response http.ResponseWriter, request *http.Request) {
|
||||||
|
if provider.ReadOnly {
|
||||||
|
response.WriteHeader(http.StatusForbidden)
|
||||||
|
fmt.Fprintf(response, "REST API is in read-only mode")
|
||||||
|
return
|
||||||
|
}
|
||||||
vars := mux.Vars(request)
|
vars := mux.Vars(request)
|
||||||
if vars["provider"] != "web" {
|
if vars["provider"] != "web" {
|
||||||
response.WriteHeader(http.StatusBadRequest)
|
response.WriteHeader(http.StatusBadRequest)
|
||||||
|
|
Loading…
Add table
Reference in a new issue