akka/akka-http

Potential inconsistency in Uri API

Open

#1,763 opened on Jan 9, 2018

View on GitHub
 (4 comments) (0 reactions) (0 assignees)Scala (1,311 stars) (598 forks)batch import
1 - triaged3 - in progresshelp wantedt:coret:model

Description

The different smart constructors to create an akka.http.scaladsl.model.Uri have a different behavior regarding the port normalization.

The apply methods don't normalize the Authority port, unlike the from method:

scala> import akka.http.scaladsl.model.Uri
import akka.http.scaladsl.model.Uri

scala> Uri("http://www.google.fr:80")
res0: akka.http.scaladsl.model.Uri = http://www.google.fr:80

scala> Uri.from(scheme = "http", host = "www.google.fr", port= 80)
res1: akka.http.scaladsl.model.Uri = http://www.google.fr

As a side note Spray was normalizing the port on all Uri smart constructors.

Contributor guide