This is an automated email from the ASF dual-hosted git repository.
fanningpj pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko-http.git
The following commit(s) were added to refs/heads/main by this push:
new 358e069e5 remove remaining code related to Remote Address headers
(#765)
358e069e5 is described below
commit 358e069e578cd45b66eb4e8488c3af7a0e6eab03
Author: PJ Fanning <[email protected]>
AuthorDate: Fri Sep 12 11:03:02 2025 +0100
remove remaining code related to Remote Address headers (#765)
* remove remaining code related to Remote Address headers
* Update remove-deprecated-methods.excludes
* imports
---
.../routing-dsl/directives/alphabetically.md | 2 +-
.../http/javadsl/model/headers/RemoteAddress.java | 30 ----------------------
.../remove-deprecated-methods.excludes | 5 ++++
.../org/apache/pekko/http/scaladsl/Http.scala | 2 --
.../http/scaladsl/model/headers/headers.scala | 9 -------
.../server/directives/MiscDirectivesTest.java | 9 -------
.../server/directives/MiscDirectivesSpec.scala | 19 +++-----------
.../server/directives/MiscDirectives.scala | 1 -
.../http/impl/engine/http2/Http2ServerSpec.scala | 2 --
9 files changed, 10 insertions(+), 69 deletions(-)
diff --git a/docs/src/main/paradox/routing-dsl/directives/alphabetically.md
b/docs/src/main/paradox/routing-dsl/directives/alphabetically.md
index 21cf3f5ff..db9d59d20 100644
--- a/docs/src/main/paradox/routing-dsl/directives/alphabetically.md
+++ b/docs/src/main/paradox/routing-dsl/directives/alphabetically.md
@@ -34,7 +34,7 @@
|@ref[entity](marshalling-directives/entity.md)
| Extracts the request entity
unmarshalled to a given type
|
|@ref[extract](basic-directives/extract.md)
| Extracts a single value using a
@scala[`RequestContext => T`]@java[`Function<RequestContext, T>`] function
|
|@scala[@ref[extractDataBytes](basic-directives/extractDataBytes.md)]
| @scala[Extracts the entities
data bytes as a stream @apidoc[Source[ByteString, \_]]]
|
-|@ref[extractClientIP](misc-directives/extractClientIP.md)
| Extracts the client's IP from either
the `X-Forwarded-`, `Remote-Address` or `X-Real-IP` header
|
+|@ref[extractClientIP](misc-directives/extractClientIP.md)
| Extracts the client's IP from either
the `X-Forwarded-` or `X-Real-IP` header
|
|@ref[extractCredentials](security-directives/extractCredentials.md)
| Extracts the potentially present
@apidoc[HttpCredentials] provided with the request's @apidoc[Authorization]
header
|
|@ref[extractExecutionContext](basic-directives/extractExecutionContext.md)
| Extracts the `ExecutionContext` from
the @apidoc[RequestContext]
|
|@ref[extractMatchedPath](basic-directives/extractMatchedPath.md)
| Extracts the already matched path from
the @apidoc[RequestContext]
|
diff --git
a/http-core/src/main/java/org/apache/pekko/http/javadsl/model/headers/RemoteAddress.java
b/http-core/src/main/java/org/apache/pekko/http/javadsl/model/headers/RemoteAddress.java
deleted file mode 100644
index 02c5ad5c3..000000000
---
a/http-core/src/main/java/org/apache/pekko/http/javadsl/model/headers/RemoteAddress.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * license agreements; and to You under the Apache License, version 2.0:
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * This file is part of the Apache Pekko project, which was derived from Akka.
- */
-
-/*
- * Copyright (C) 2009-2022 Lightbend Inc. <https://www.lightbend.com>
- */
-
-package org.apache.pekko.http.javadsl.model.headers;
-
-/**
- * Model for the `Remote-Address` header. Custom header we use for optionally
transporting the
- * peer's IP in an HTTP header.
- *
- * <p>Deprecated since Akka HTTP 10.2.0: use the remote-header-attribute
instead.
- */
-@Deprecated
-public abstract class RemoteAddress extends
org.apache.pekko.http.scaladsl.model.HttpHeader {
- public abstract org.apache.pekko.http.javadsl.model.RemoteAddress address();
-
- public static RemoteAddress
create(org.apache.pekko.http.javadsl.model.RemoteAddress address) {
- return new
org.apache.pekko.http.scaladsl.model.headers.Remote$minusAddress(
- ((org.apache.pekko.http.scaladsl.model.RemoteAddress) address));
- }
-}
diff --git
a/http-core/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-methods.excludes
b/http-core/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-methods.excludes
index a562dd925..a04f68b0e 100644
---
a/http-core/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-methods.excludes
+++
b/http-core/src/main/mima-filters/2.0.x.backwards.excludes/remove-deprecated-methods.excludes
@@ -47,6 +47,7 @@
ProblemFilters.exclude[MissingFieldProblem]("org.apache.pekko.http.javadsl.model
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.javadsl.model.FormData.toEntity")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.javadsl.model.headers.HttpCookie.create")
ProblemFilters.exclude[IncompatibleMethTypeProblem]("org.apache.pekko.http.javadsl.model.headers.HttpChallenge.create")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.http.javadsl.model.headers.RemoteAddress")
ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.http.javadsl.model.ws.UpgradeToWebSocket")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.javadsl.settings.ServerSettings.getRemoteAddressHeader")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.javadsl.settings.ServerSettings.withRemoteAddressHeader")
@@ -69,6 +70,8 @@
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scalad
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.HttpsConnectionContext.getEnabledProtocols")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.HttpsConnectionContext.getClientAuth")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.HttpsConnectionContext.getSslParameters")
+ProblemFilters.exclude[MissingFieldProblem]("org.apache.pekko.http.scaladsl.Http.HostConnectionPool")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.http.scaladsl.Http$HostConnectionPool$")
ProblemFilters.exclude[MissingTypesProblem]("org.apache.pekko.http.scaladsl.HttpExt")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.HttpExt.bind")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.HttpExt.bind$*")
@@ -108,6 +111,8 @@
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scalad
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.model.headers.HttpCookie.<init>$*")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.model.headers.HttpCookie.unapply")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.model.headers.HttpCookie.this")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.http.scaladsl.model.headers.Remote$minusAddress")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.http.scaladsl.model.headers.Remote$minusAddress$")
ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.http.scaladsl.model.ws.UpgradeToWebSocket")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.settings.ConnectionPoolSettings.transport")
ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.settings.ServerSettings.remoteAddressHeader")
diff --git a/http-core/src/main/scala/org/apache/pekko/http/scaladsl/Http.scala
b/http-core/src/main/scala/org/apache/pekko/http/scaladsl/Http.scala
index 72ea4b428..391f5071e 100644
--- a/http-core/src/main/scala/org/apache/pekko/http/scaladsl/Http.scala
+++ b/http-core/src/main/scala/org/apache/pekko/http/scaladsl/Http.scala
@@ -1025,8 +1025,6 @@ object Http extends ExtensionId[HttpExt] with
ExtensionIdProvider {
override def productElement(n: Int): Any = if (n == 0) setup else throw
new IllegalArgumentException
override def canEqual(that: Any): Boolean =
that.isInstanceOf[HostConnectionPool]
}
- @deprecated("Not needed any more. Kept for binary compatibility.", "Akka
HTTP 10.2.0")
- private[http] object HostConnectionPool
/** INTERNAL API */
@InternalApi
diff --git
a/http-core/src/main/scala/org/apache/pekko/http/scaladsl/model/headers/headers.scala
b/http-core/src/main/scala/org/apache/pekko/http/scaladsl/model/headers/headers.scala
index e6aa0e7d1..5f639e39e 100644
---
a/http-core/src/main/scala/org/apache/pekko/http/scaladsl/model/headers/headers.scala
+++
b/http-core/src/main/scala/org/apache/pekko/http/scaladsl/model/headers/headers.scala
@@ -820,15 +820,6 @@ final case class `Raw-Request-URI`(uri: String) extends
jm.headers.RawRequestURI
protected def companion = `Raw-Request-URI`
}
-@deprecated("use remote-address-attribute instead", since = "Akka HTTP 10.2.0")
-object `Remote-Address` extends ModeledCompanion[`Remote-Address`]
-@deprecated("use remote-address-attribute instead", since = "Akka HTTP 10.2.0")
-final case class `Remote-Address`(address: RemoteAddress) extends
jm.headers.RemoteAddress with SyntheticHeader
- with SensitiveHttpHeader {
- def renderValue[R <: Rendering](r: R): r.type = r ~~ address
- protected def companion = `Remote-Address`
-}
-
// https://tools.ietf.org/html/rfc7231#section-5.5.2
object Referer extends ModeledCompanion[Referer]
final case class Referer(uri: Uri) extends jm.headers.Referer with
RequestHeader with SensitiveHttpHeader {
diff --git
a/http-tests/src/test/java/org/apache/pekko/http/javadsl/server/directives/MiscDirectivesTest.java
b/http-tests/src/test/java/org/apache/pekko/http/javadsl/server/directives/MiscDirectivesTest.java
index 126e56432..32f74cd13 100644
---
a/http-tests/src/test/java/org/apache/pekko/http/javadsl/server/directives/MiscDirectivesTest.java
+++
b/http-tests/src/test/java/org/apache/pekko/http/javadsl/server/directives/MiscDirectivesTest.java
@@ -70,15 +70,6 @@ public class MiscDirectivesTest extends JUnitRouteTest {
.assertStatusCode(StatusCodes.OK)
.assertEntity("127.0.0.2");
- route
- .run(
- HttpRequest.create()
- .addHeader(
-
org.apache.pekko.http.javadsl.model.headers.RemoteAddress.create(
-
RemoteAddress.create(InetAddress.getByName("127.0.0.3")))))
- .assertStatusCode(StatusCodes.OK)
- .assertEntity("127.0.0.3");
-
route
.run(
HttpRequest.create()
diff --git
a/http-tests/src/test/scala/org/apache/pekko/http/scaladsl/server/directives/MiscDirectivesSpec.scala
b/http-tests/src/test/scala/org/apache/pekko/http/scaladsl/server/directives/MiscDirectivesSpec.scala
index af49b84f7..4a411757e 100644
---
a/http-tests/src/test/scala/org/apache/pekko/http/scaladsl/server/directives/MiscDirectivesSpec.scala
+++
b/http-tests/src/test/scala/org/apache/pekko/http/scaladsl/server/directives/MiscDirectivesSpec.scala
@@ -14,19 +14,18 @@
package org.apache.pekko.http.scaladsl.server
package directives
+import java.net.InetAddress
+
import scala.concurrent.{ Await, Promise }
import scala.concurrent.duration._
import scala.util.Try
+
import org.apache.pekko
import pekko.http.scaladsl.model._
+import pekko.http.scaladsl.server.util.VarArgsFunction1
import pekko.testkit._
import headers._
-import java.net.InetAddress
-
-import pekko.http.scaladsl.server.util.VarArgsFunction1
-import scala.annotation.nowarn
-@nowarn("msg=use remote-address-attribute instead")
class MiscDirectivesSpec extends RoutingSpec {
import pekko.http.ccompat.ImplicitUtils._
@@ -37,21 +36,11 @@ class MiscDirectivesSpec extends RoutingSpec {
extractClientIP { echoComplete }
} ~> check { responseAs[String] shouldEqual "2.3.4.5" }
}
- "extract from a (synthetic) Remote-Address header" in {
- Get() ~> addHeader(`Remote-Address`(remoteAddress("1.2.3.4"))) ~> {
- extractClientIP { echoComplete }
- } ~> check { responseAs[String] shouldEqual "1.2.3.4" }
- }
"extract from a X-Real-IP header" in {
Get() ~> addHeader(`X-Real-Ip`(remoteAddress("1.2.3.4"))) ~> {
extractClientIP { echoComplete }
} ~> check { responseAs[String] shouldEqual "1.2.3.4" }
}
- "select X-Real-Ip when both X-Real-Ip and Remote-Address headers are
present" in {
- Get() ~> addHeaders(`X-Real-Ip`(remoteAddress("1.2.3.4")),
`Remote-Address`(remoteAddress("5.6.7.8"))) ~> {
- extractClientIP { echoComplete }
- } ~> check { responseAs[String] shouldEqual "1.2.3.4" }
- }
"extract unknown when no headers" in {
Get() ~> {
extractClientIP { echoComplete }
diff --git
a/http/src/main/scala/org/apache/pekko/http/scaladsl/server/directives/MiscDirectives.scala
b/http/src/main/scala/org/apache/pekko/http/scaladsl/server/directives/MiscDirectives.scala
index 812129479..4c15eb282 100644
---
a/http/src/main/scala/org/apache/pekko/http/scaladsl/server/directives/MiscDirectives.scala
+++
b/http/src/main/scala/org/apache/pekko/http/scaladsl/server/directives/MiscDirectives.scala
@@ -119,7 +119,6 @@ object MiscDirectives extends MiscDirectives {
private val _extractClientIP: Directive1[RemoteAddress] =
headerValuePF { case `X-Forwarded-For`(Seq(address, _*)) => address } |
headerValuePF { case `X-Real-Ip`(address) => address } |
- headerValuePF { case `Remote-Address`(address) => address } |
extractRequest.map { request =>
request.attribute(AttributeKeys.remoteAddress).getOrElse(RemoteAddress.Unknown)
}
diff --git
a/http2-tests/src/test/scala/org/apache/pekko/http/impl/engine/http2/Http2ServerSpec.scala
b/http2-tests/src/test/scala/org/apache/pekko/http/impl/engine/http2/Http2ServerSpec.scala
index 9afdc6524..8969937b9 100644
---
a/http2-tests/src/test/scala/org/apache/pekko/http/impl/engine/http2/Http2ServerSpec.scala
+++
b/http2-tests/src/test/scala/org/apache/pekko/http/impl/engine/http2/Http2ServerSpec.scala
@@ -34,10 +34,8 @@ import pekko.util.ByteString
import org.scalatest.concurrent.Eventually
import org.scalatest.concurrent.PatienceConfiguration.Timeout
-import java.net.InetSocketAddress
import javax.net.ssl.SSLContext
-import scala.annotation.nowarn
import scala.collection.immutable
import scala.concurrent.duration._
import scala.concurrent.{ Await, Promise }
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]