haskell-servant/servant

Invalid HTTP headers

Open

#770 ouverte le 19 juin 2017

Voir sur GitHub
 (7 commentaires) (0 réactions) (0 assignés)Haskell (422 forks)batch import
help wanted

Métriques du dépôt

Stars
 (1 953 stars)
Métriques de merge PR
 (Merge moyen 5h 49m) (2 PRs mergées en 30 j)

Description

I'm not sure if there's a type-safe way of enforcing valid HTTP header names, but servant currently allows header names to have spaces which can break break Chrome.

More information can be found in a wai issue at https://github.com/yesodweb/wai/issues/628.

Example

{-# LANGUAGE DataKinds         #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeOperators     #-}

module Main where

import           Network.Wai
import           Network.Wai.Handler.Warp
import           Servant
import           Data.Text

type HelloAPI = Get '[PlainText] (Headers '[Header "A A" Text] Text)

server :: Server HelloAPI
server = return $ addHeader "foo" $ "Hello, world!"

helloApi :: Proxy HelloAPI
helloApi = Proxy

app :: Application
app = serve helloApi server

main :: IO ()
main = run 80 app

Guide contributeur