Added preloaded field to Strict-Transport-Security header in akka-http headers model
This commit is contained in:
parent
d886a1d0b5
commit
3921eeda94
3 changed files with 9 additions and 7 deletions
|
|
@ -11,11 +11,12 @@ package akka.http.javadsl.model.headers;
|
|||
public abstract class StrictTransportSecurity extends akka.http.scaladsl.model.HttpHeader {
|
||||
public abstract long maxAge();
|
||||
public abstract boolean includeSubDomains();
|
||||
public abstract boolean preload();
|
||||
|
||||
public static StrictTransportSecurity create(long maxAge) {
|
||||
return new akka.http.scaladsl.model.headers.Strict$minusTransport$minusSecurity(maxAge, false);
|
||||
return new akka.http.scaladsl.model.headers.Strict$minusTransport$minusSecurity(maxAge, false, false);
|
||||
}
|
||||
public static StrictTransportSecurity create(long maxAge, boolean includeSubDomains) {
|
||||
return new akka.http.scaladsl.model.headers.Strict$minusTransport$minusSecurity(maxAge, includeSubDomains);
|
||||
public static StrictTransportSecurity create(long maxAge, boolean includeSubDomains, boolean preload) {
|
||||
return new akka.http.scaladsl.model.headers.Strict$minusTransport$minusSecurity(maxAge, includeSubDomains, preload);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ private[parser] trait SimpleHeaders { this: Parser with CommonRules with CommonA
|
|||
def server = rule { products ~ EOI ~> (Server(_)) }
|
||||
|
||||
def `strict-transport-security` = rule {
|
||||
ignoreCase("max-age=") ~ `delta-seconds` ~ optional(ws(";") ~ ignoreCase("includesubdomains") ~ push(true)) ~ EOI ~> (`Strict-Transport-Security`(_, _))
|
||||
ignoreCase("max-age=") ~ `delta-seconds` ~ optional(ws(";") ~ ignoreCase("includesubdomains") ~ push(true)) ~ optional(ws(";") ~ ignoreCase("preload") ~ push(true)) ~ EOI ~> (`Strict-Transport-Security`(_, _, _))
|
||||
}
|
||||
|
||||
// http://tools.ietf.org/html/rfc7230#section-3.3.1
|
||||
|
|
@ -230,4 +230,4 @@ private[parser] trait SimpleHeaders { this: Parser with CommonRules with CommonA
|
|||
(`ip-v4-address` | `ip-v6-address`) ~ EOI ~> (b ⇒ `X-Real-Ip`(RemoteAddress(b)))
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -794,12 +794,13 @@ final case class Server(products: immutable.Seq[ProductVersion]) extends jm.head
|
|||
|
||||
// https://tools.ietf.org/html/rfc6797
|
||||
object `Strict-Transport-Security` extends ModeledCompanion[`Strict-Transport-Security`] {
|
||||
def apply(maxAge: Long, includeSubDomains: Option[Boolean]) = new `Strict-Transport-Security`(maxAge, includeSubDomains.getOrElse(false))
|
||||
def apply(maxAge: Long, includeSubDomains: Option[Boolean], preload: Option[Boolean]) = new `Strict-Transport-Security`(maxAge, includeSubDomains.getOrElse(false), preload.getOrElse(false))
|
||||
}
|
||||
final case class `Strict-Transport-Security`(maxAge: Long, includeSubDomains: Boolean = false) extends jm.headers.StrictTransportSecurity with ResponseHeader {
|
||||
final case class `Strict-Transport-Security`(maxAge: Long, includeSubDomains: Boolean = false, preload: Boolean = false) extends jm.headers.StrictTransportSecurity with ResponseHeader {
|
||||
def renderValue[R <: Rendering](r: R): r.type = {
|
||||
r ~~ "max-age=" ~~ maxAge
|
||||
if (includeSubDomains) r ~~ "; includeSubDomains"
|
||||
if (preload) r ~~ "; preload"
|
||||
r
|
||||
}
|
||||
protected def companion = `Strict-Transport-Security`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue