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]

Reply via email to