mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-18 19:15:19 +00:00
bearer
This commit is contained in:
parent
04b121b5f4
commit
dca496cd7d
@ -39,7 +39,7 @@ func emitLoginAttempt(success bool, username, address string, evLogger events.Lo
|
|||||||
|
|
||||||
func basicAuthAndSessionMiddleware(cookieName string, guiCfg config.GUIConfiguration, ldapCfg config.LDAPConfiguration, next http.Handler, evLogger events.Logger) http.Handler {
|
func basicAuthAndSessionMiddleware(cookieName string, guiCfg config.GUIConfiguration, ldapCfg config.LDAPConfiguration, next http.Handler, evLogger events.Logger) http.Handler {
|
||||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
if guiCfg.IsValidAPIKey(r.Header.Get("X-API-Key")) {
|
if hasValidAPIKeyHeader(r, guiCfg) {
|
||||||
next.ServeHTTP(w, r)
|
next.ServeHTTP(w, r)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ func newCsrfManager(unique string, prefix string, apiKeyValidator apiKeyValidato
|
|||||||
|
|
||||||
func (m *csrfManager) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func (m *csrfManager) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
// Allow requests carrying a valid API key
|
// Allow requests carrying a valid API key
|
||||||
if m.apiKeyValidator.IsValidAPIKey(r.Header.Get("X-API-Key")) {
|
if hasValidAPIKeyHeader(r, m.apiKeyValidator) {
|
||||||
// Set the access-control-allow-origin header for CORS requests
|
// Set the access-control-allow-origin header for CORS requests
|
||||||
// since a valid API key has been provided
|
// since a valid API key has been provided
|
||||||
w.Header().Add("Access-Control-Allow-Origin", "*")
|
w.Header().Add("Access-Control-Allow-Origin", "*")
|
||||||
@ -178,3 +178,11 @@ func (m *csrfManager) load() {
|
|||||||
m.tokens = append(m.tokens, s.Text())
|
m.tokens = append(m.tokens, s.Text())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func hasValidAPIKeyHeader(r *http.Request, validator apiKeyValidator) bool {
|
||||||
|
if auth := r.Header.Get("Authorization"); strings.HasPrefix(strings.ToLower(auth), "bearer ") {
|
||||||
|
bearerToken := auth[len("bearer "):]
|
||||||
|
return validator.IsValidAPIKey(bearerToken)
|
||||||
|
}
|
||||||
|
return validator.IsValidAPIKey(r.Header.Get("X-API-Key"))
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user