Skip to content

Instantly share code, notes, and snippets.

@kareblak
Forked from hamnis/SecureKit.scala
Last active December 10, 2015 21:18

Revisions

  1. kareblak revised this gist Jan 9, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion SecureKit.scala
    Original file line number Diff line number Diff line change
    @@ -5,7 +5,7 @@ import unfiltered.response._

    object Secure {
    def secure[A,B](intent: unfiltered.Cycle.Intent[A,B]) = {
    case req@ForwardedProto(proto) if (intent.isDefinedAt(intent)) => intent(wrap(req, "https" == proto.toLowerCase))
    case req@ForwardedProto(proto) if (intent.isDefinedAt(req)) => intent(wrap(req, "https" == proto.toLowerCase))
    case req if (intent.isDefinedAt(req)) => intent(req)
    }

  2. @hamnis hamnis revised this gist Jan 9, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion SecureKit.scala
    Original file line number Diff line number Diff line change
    @@ -5,7 +5,7 @@ import unfiltered.response._

    object Secure {
    def secure[A,B](intent: unfiltered.Cycle.Intent[A,B]) = {
    case req@ForwardedProto(proto) if (intent.isDefinedAt(intent) => intent(wrap(req, "https" == proto.toLowerCase))
    case req@ForwardedProto(proto) if (intent.isDefinedAt(intent)) => intent(wrap(req, "https" == proto.toLowerCase))
    case req if (intent.isDefinedAt(req)) => intent(req)
    }

  3. @hamnis hamnis created this gist Jan 9, 2013.
    17 changes: 17 additions & 0 deletions SecureKit.scala
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,17 @@
    package unfilteredx.kit

    import unfiltered.request._
    import unfiltered.response._

    object Secure {
    def secure[A,B](intent: unfiltered.Cycle.Intent[A,B]) = {
    case req@ForwardedProto(proto) if (intent.isDefinedAt(intent) => intent(wrap(req, "https" == proto.toLowerCase))
    case req if (intent.isDefinedAt(req)) => intent(req)
    }

    private def wrap[A](req: HttpRequest[A], secure: Boolean) = new DelegatingRequest(req) {
    override def isSecure = secure
    }
    }

    object ForwardedProto extends StringHeader("Forwarded-Proto")