@@ -31,8 +31,24 @@ func NewAnthropicAdapter(cfg *config.Config, db *gorm.DB, cacheClient cache.Cach
3131
3232// ProcessRequest handles the request for the Anthropic API.
3333func (a * AnthropicAdapter ) ProcessRequest () (* services.TargetRequest , error ) {
34- // 1. Authenticate the proxy request (hijack the 'x-api-key' header).
34+ // Log all incoming headers for debugging
35+ for name , values := range a .c .Request .Header {
36+ for _ , value := range values {
37+ logger .Infof ("Incoming Header: %s: %s" , name , value )
38+ }
39+ }
40+
41+ // 1. Authenticate the proxy request. Try 'x-api-key', 'x-anthropic-api-key', then 'Authorization' header.
3542 proxyKey := a .c .GetHeader ("x-api-key" )
43+ if proxyKey == "" {
44+ proxyKey = a .c .GetHeader ("x-anthropic-api-key" )
45+ }
46+ if proxyKey == "" {
47+ authHeader := a .c .GetHeader ("Authorization" )
48+ if strings .HasPrefix (authHeader , "Bearer " ) {
49+ proxyKey = strings .TrimPrefix (authHeader , "Bearer " )
50+ }
51+ }
3652
3753 validKeys := a .cfg .GetGlobalProxyKeys ()
3854 isValidKey := false
@@ -53,7 +69,7 @@ func (a *AnthropicAdapter) ProcessRequest() (*services.TargetRequest, error) {
5369 }
5470
5571 // 3. Build the target request.
56- headers := utils .FilterRequestHeaders (a .c .Request .Header , []string {"x-api-key" })
72+ headers := utils .FilterRequestHeaders (a .c .Request .Header , []string {"x-api-key" , "Authorization" , "x-anthropic-api-key" })
5773
5874 // 优先使用数据库中为该proxyConfig保存的APIKeyName, 否则回退到默认值
5975 keyName := "x-api-key"
@@ -108,4 +124,4 @@ func (a *AnthropicAdapter) ProcessRequest() (*services.TargetRequest, error) {
108124 Params : params ,
109125 Body : body ,
110126 }, nil
111- }
127+ }
0 commit comments