Skip to content
This repository was archived by the owner on Oct 24, 2025. It is now read-only.

Commit a79bf7c

Browse files
committed
#4: moving csrf/session options to a separate object
1 parent ca72868 commit a79bf7c

File tree

8 files changed

+18
-8
lines changed

8 files changed

+18
-8
lines changed

core/src/main/scala/com/softwaremill/session/CsrfDirectives.scala

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,6 @@ trait CsrfDirectives {
5252

5353
def setNewCsrfToken[T](checkMode: CsrfCheckMode[T]): Directive0 =
5454
setCookie(checkMode.csrfManager.createCookie())
55-
56-
def checkHeader[T](implicit manager: SessionManager[T]): CheckHeader[T] = new CheckHeader[T]()
57-
def checkHeaderAndForm[T](implicit manager: SessionManager[T], materializer: Materializer): CheckHeaderAndForm[T] =
58-
new CheckHeaderAndForm[T]()
5955
}
6056

6157
object CsrfDirectives extends CsrfDirectives
@@ -67,4 +63,10 @@ sealed trait CsrfCheckMode[T] {
6763
class CheckHeader[T] private[session] (implicit val manager: SessionManager[T]) extends CsrfCheckMode[T]
6864
class CheckHeaderAndForm[T] private[session] (implicit
6965
val manager: SessionManager[T],
70-
val materializer: Materializer) extends CsrfCheckMode[T]
66+
val materializer: Materializer) extends CsrfCheckMode[T]
67+
68+
object CsrfOptions {
69+
def checkHeader[T](implicit manager: SessionManager[T]): CheckHeader[T] = new CheckHeader[T]()
70+
def checkHeaderAndForm[T](implicit manager: SessionManager[T], materializer: Materializer): CheckHeaderAndForm[T] =
71+
new CheckHeaderAndForm[T]()
72+
}

core/src/main/scala/com/softwaremill/session/SessionDirectives.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,11 @@ trait SessionDirectives extends OneOffSessionDirectives with RefreshableSessionD
8080
def touchRequiredSession[T](sc: SessionContinuity[T], st: GetSessionTransport): Directive1[T] = {
8181
requiredSession(sc, st).flatMap { d => setOneOffSessionSameTransport(sc, st, d) & provide(d) }
8282
}
83+
}
84+
85+
object SessionDirectives extends SessionDirectives
8386

87+
object SessionOptions {
8488
def oneOff[T](implicit manager: SessionManager[T]): OneOff[T] = new OneOff[T]()(manager)
8589

8690
def refreshable[T](implicit
@@ -94,8 +98,6 @@ trait SessionDirectives extends OneOffSessionDirectives with RefreshableSessionD
9498
def usingCookiesOrHeaders = CookieOrHeaderST
9599
}
96100

97-
object SessionDirectives extends SessionDirectives
98-
99101
trait OneOffSessionDirectives {
100102
private[session] def setOneOffSession[T](sc: SessionContinuity[T], st: SetSessionTransport, v: T): Directive0 =
101103
st match {

core/src/test/scala/com/softwaremill/session/CsrfDirectivesTest.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import akka.http.scaladsl.server.AuthorizationFailedRejection
66
import akka.http.scaladsl.server.Directives._
77
import akka.http.scaladsl.testkit.ScalatestRouteTest
88
import com.softwaremill.session.CsrfDirectives._
9+
import com.softwaremill.session.CsrfOptions._
910
import org.scalatest.{ShouldMatchers, FlatSpec}
1011

1112
class CsrfDirectivesTest extends FlatSpec with ScalatestRouteTest with ShouldMatchers {

core/src/test/scala/com/softwaremill/session/MultipleTransportTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.softwaremill.session
33
import akka.http.scaladsl.model.{DateTime, HttpHeader}
44
import akka.http.scaladsl.model.headers.{RawHeader, HttpCookie, Cookie, `Set-Cookie`}
55
import akka.http.scaladsl.testkit.ScalatestRouteTest
6-
import com.softwaremill.session.SessionDirectives._
6+
import com.softwaremill.session.SessionOptions._
77
import com.softwaremill.session.TestData._
88

99
trait MultipleTransportTest { this: ScalatestRouteTest =>

core/src/test/scala/com/softwaremill/session/OneOffSetRefreshableGetTest.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.softwaremill.session
33
import akka.http.scaladsl.server.Directives._
44
import akka.http.scaladsl.testkit.ScalatestRouteTest
55
import com.softwaremill.session.SessionDirectives._
6+
import com.softwaremill.session.SessionOptions._
67
import org.scalatest.{FlatSpec, ShouldMatchers}
78

89
class OneOffSetRefreshableGetTest extends FlatSpec with ScalatestRouteTest with ShouldMatchers with MultipleTransportTest {

core/src/test/scala/com/softwaremill/session/OneOffTest.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import akka.http.scaladsl.server.AuthorizationFailedRejection
55
import akka.http.scaladsl.server.Directives._
66
import akka.http.scaladsl.testkit.ScalatestRouteTest
77
import com.softwaremill.session.SessionDirectives._
8+
import com.softwaremill.session.SessionOptions._
89
import org.scalatest.{FlatSpec, ShouldMatchers}
910

1011
class OneOffTest extends FlatSpec with ScalatestRouteTest with ShouldMatchers with MultipleTransportTest {

core/src/test/scala/com/softwaremill/session/RefreshableTest.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import akka.http.scaladsl.server.AuthorizationFailedRejection
44
import akka.http.scaladsl.server.Directives._
55
import akka.http.scaladsl.testkit.ScalatestRouteTest
66
import com.softwaremill.session.SessionDirectives._
7+
import com.softwaremill.session.SessionOptions._
78
import org.scalatest.{FlatSpec, ShouldMatchers}
89

910
class RefreshableTest extends FlatSpec with ScalatestRouteTest with ShouldMatchers with MultipleTransportTest {

example/src/main/scala/com/softwaremill/example/Example.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import akka.http.scaladsl.server.Directives._
77
import akka.http.scaladsl.model.StatusCodes._
88
import com.softwaremill.session._
99
import com.softwaremill.session.CsrfDirectives._
10+
import com.softwaremill.session.CsrfOptions._
1011
import com.softwaremill.session.SessionDirectives._
12+
import com.softwaremill.session.SessionOptions._
1113
import com.typesafe.scalalogging.slf4j.StrictLogging
1214

1315
import scala.io.StdIn

0 commit comments

Comments
 (0)