From ce6e93a90536868449c6841a1b97589185458837 Mon Sep 17 00:00:00 2001 From: gavinharris43 <45851646+gavinharris43@users.noreply.github.com> Date: Tue, 27 Oct 2020 12:17:04 +0000 Subject: [PATCH 1/2] DLS-3256 Library Upgrades --- build.sbt | 20 +++++++++++--------- project/plugins.sbt | 6 +++--- test/controllers/TestSupport.scala | 3 +-- test/controllers/UnitSpec.scala | 6 ++++-- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/build.sbt b/build.sbt index 0ef52b8..5fdd122 100644 --- a/build.sbt +++ b/build.sbt @@ -24,26 +24,28 @@ dependencyOverrides += "com.typesafe.akka" %% "akka-http-core" % akkaHttpVersion val dependencies = Seq( ws, - "uk.gov.hmrc" %% "bootstrap-frontend-play-26" % "2.24.0", - "uk.gov.hmrc" %% "govuk-template" % "5.56.0-play-26", - "uk.gov.hmrc" %% "play-ui" % "8.11.0-play-26", - "uk.gov.hmrc" %% "play-health" % "3.14.0-play-26", + "uk.gov.hmrc" %% "bootstrap-frontend-play-26" % "2.25.0", + "uk.gov.hmrc" %% "govuk-template" % "5.58.0-play-26", + "uk.gov.hmrc" %% "play-ui" % "8.13.0-play-26", + "uk.gov.hmrc" %% "play-health" % "3.15.0-play-26", "uk.gov.hmrc" %% "simple-reactivemongo" % "7.30.0-play-26", "uk.gov.hmrc" %% "play-whitelist-filter" % "3.4.0-play-26", "uk.gov.hmrc" %% "totp-generator" % "0.21.0", "com.github.kxbmap" %% "configs" % "0.4.4", - "org.typelevel" %% "cats-core" % "2.1.1", + "org.typelevel" %% "cats-core" % "2.2.0", "org.jsoup" % "jsoup" % "1.13.1", - "org.mongodb.scala" %% "mongo-scala-driver" % "2.9.0" + "org.mongodb.scala" %% "mongo-scala-driver" % "4.1.0" ) def testDependencies(scope: String = "test") = Seq( - "uk.gov.hmrc" %% "bootstrap-play-26" % "1.3.0" % scope classifier "tests", + "uk.gov.hmrc" %% "bootstrap-frontend-play-26" % scope, "uk.gov.hmrc" %% "service-integration-test" % "0.12.0-play-26" % scope, - "uk.gov.hmrc" %% "domain" % "5.9.0-play-26" % scope, + "uk.gov.hmrc" %% "domain" % "5.10.0-play-26" % scope, "uk.gov.hmrc" %% "stub-data-generator" % "0.5.3" % scope, "uk.gov.hmrc" %% "reactivemongo-test" % "4.21.0-play-26" % scope, - "org.scalatest" %% "scalatest" % "3.0.8" % scope, + "org.scalatest" %% "scalatest" % "3.2.0" % scope, + "org.scalatestplus" %% "scalatestplus-scalacheck" % "3.1.0.0-RC2" % scope, + "com.vladsch.flexmark" % "flexmark-all" % "0.35.10" % scope, "com.typesafe.play" %% "play-test" % PlayVersion.current % scope, "org.scalamock" %% "scalamock-scalatest-support" % "3.6.0" % scope ) diff --git a/project/plugins.sbt b/project/plugins.sbt index 7edc6be..e7d64bf 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -6,15 +6,15 @@ resolvers += "Typesafe Releases" at "https://repo.typesafe.com/typesafe/releases resolvers += Resolver.url("scoverage-bintray", url("https://dl.bintray.com/sksamuel/sbt-plugins/"))(Resolver.ivyStylePatterns) -addSbtPlugin("uk.gov.hmrc" % "sbt-auto-build" % "2.9.0") +addSbtPlugin("uk.gov.hmrc" % "sbt-auto-build" % "2.10.0") addSbtPlugin("uk.gov.hmrc" % "sbt-git-versioning" % "2.1.0") -addSbtPlugin("uk.gov.hmrc" % "sbt-artifactory" % "1.5.0") +addSbtPlugin("uk.gov.hmrc" % "sbt-artifactory" % "1.6.0") addSbtPlugin("uk.gov.hmrc" % "sbt-distributables" % "2.0.0") -addSbtPlugin("uk.gov.hmrc" % "sbt-bobby" % "1.0.0") +addSbtPlugin("uk.gov.hmrc" % "sbt-bobby" % "3.2.0") addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.23") diff --git a/test/controllers/TestSupport.scala b/test/controllers/TestSupport.scala index f5df782..28d2f54 100644 --- a/test/controllers/TestSupport.scala +++ b/test/controllers/TestSupport.scala @@ -31,7 +31,6 @@ import play.filters.csrf.CSRFAddToken import uk.gov.hmrc.helptosavetestadminfrontend.config.{AppConfig, ErrorHandler} import uk.gov.hmrc.http.HeaderCarrier import uk.gov.hmrc.http.logging.SessionId -import uk.gov.hmrc.play.bootstrap.tools.Stubs.stubMessagesControllerComponents import scala.concurrent.ExecutionContext @@ -69,7 +68,7 @@ trait TestSupport extends UnitSpec with MockFactory with BeforeAndAfterAll with super.afterAll() } - val testMCC: MessagesControllerComponents = stubMessagesControllerComponents() + val testMCC: MessagesControllerComponents = fakeApplication.injector.instanceOf[MessagesControllerComponents] implicit val messagesApi: MessagesApi = fakeApplication.injector.instanceOf[MessagesApi] diff --git a/test/controllers/UnitSpec.scala b/test/controllers/UnitSpec.scala index 6acff9b..89b025e 100644 --- a/test/controllers/UnitSpec.scala +++ b/test/controllers/UnitSpec.scala @@ -20,14 +20,16 @@ import java.nio.charset.Charset import akka.stream.Materializer import akka.util.ByteString -import org.scalatest.{Matchers, OptionValues, WordSpecLike} +import org.scalatest.OptionValues +import org.scalatest.matchers.should.Matchers +import org.scalatest.wordspec.AnyWordSpecLike import play.api.libs.json.{JsValue, Json} import play.api.mvc.Result import scala.concurrent.ExecutionContext.Implicits.global import scala.language.{implicitConversions, postfixOps} -trait UnitSpec extends WordSpecLike with Matchers with OptionValues { +trait UnitSpec extends AnyWordSpecLike with Matchers with OptionValues { import scala.concurrent.duration._ import scala.concurrent.{Await, Future} From e803f8b53ef37b237d732407604373729f156f0a Mon Sep 17 00:00:00 2001 From: Louis Goldfinch Date: Thu, 12 Nov 2020 10:19:23 +0000 Subject: [PATCH 2/2] [LG][DLS-3256] upgraded dependencies, app conf and removed some whitelist mentions --- ...listFilter.scala => AllowlistFilter.scala} | 2 +- .../config/Filters.scala | 10 ++++----- .../connectors/AuthConnector.scala | 6 ++---- build.sbt | 8 +++---- conf/application.conf | 2 +- test/config/FiltersSpec.scala | 21 +++++++++---------- 6 files changed, 23 insertions(+), 26 deletions(-) rename app/uk/gov/hmrc/helptosavetestadminfrontend/config/{WhitelistFilter.scala => AllowlistFilter.scala} (97%) diff --git a/app/uk/gov/hmrc/helptosavetestadminfrontend/config/WhitelistFilter.scala b/app/uk/gov/hmrc/helptosavetestadminfrontend/config/AllowlistFilter.scala similarity index 97% rename from app/uk/gov/hmrc/helptosavetestadminfrontend/config/WhitelistFilter.scala rename to app/uk/gov/hmrc/helptosavetestadminfrontend/config/AllowlistFilter.scala index 662f280..7e3a963 100644 --- a/app/uk/gov/hmrc/helptosavetestadminfrontend/config/WhitelistFilter.scala +++ b/app/uk/gov/hmrc/helptosavetestadminfrontend/config/AllowlistFilter.scala @@ -27,7 +27,7 @@ import uk.gov.hmrc.whitelist.AkamaiWhitelistFilter import scala.concurrent.Future -class WhitelistFilter @Inject()(configuration: Configuration, val mat: Materializer) extends AkamaiWhitelistFilter with Logging { +class AllowlistFilter @Inject()(configuration: Configuration, val mat: Materializer) extends AkamaiWhitelistFilter with Logging { override def whitelist: Seq[String] = configuration.underlying.get[List[String]]("http-header-ip-whitelist").value diff --git a/app/uk/gov/hmrc/helptosavetestadminfrontend/config/Filters.scala b/app/uk/gov/hmrc/helptosavetestadminfrontend/config/Filters.scala index 54f2b10..40e3d98 100644 --- a/app/uk/gov/hmrc/helptosavetestadminfrontend/config/Filters.scala +++ b/app/uk/gov/hmrc/helptosavetestadminfrontend/config/Filters.scala @@ -21,13 +21,13 @@ import configs.syntax._ import play.api.Configuration import play.api.http.HttpFilters import play.api.mvc.EssentialFilter -import uk.gov.hmrc.play.bootstrap.filters.FrontendFilters +import uk.gov.hmrc.play.bootstrap.frontend.filters.FrontendFilters @Singleton class Filters @Inject()( - configuration: Configuration, - whitelistFilter: WhitelistFilter, - frontendFilters: FrontendFilters + configuration: Configuration, + allowlistFilter: AllowlistFilter, + frontendFilters: FrontendFilters ) extends HttpFilters { val whiteListFilterEnabled: Boolean = @@ -35,7 +35,7 @@ class Filters @Inject()( override val filters: Seq[EssentialFilter] = if (whiteListFilterEnabled) { - frontendFilters.filters :+ whitelistFilter + frontendFilters.filters :+ allowlistFilter } else { frontendFilters.filters } diff --git a/app/uk/gov/hmrc/helptosavetestadminfrontend/connectors/AuthConnector.scala b/app/uk/gov/hmrc/helptosavetestadminfrontend/connectors/AuthConnector.scala index d36a317..7689224 100644 --- a/app/uk/gov/hmrc/helptosavetestadminfrontend/connectors/AuthConnector.scala +++ b/app/uk/gov/hmrc/helptosavetestadminfrontend/connectors/AuthConnector.scala @@ -24,6 +24,7 @@ import org.joda.time.DateTime import play.api.http.HeaderNames import play.api.libs.json._ import play.api.mvc.Session +import uk.gov.hmrc.auth.core.retrieve.v2.Retrievals import uk.gov.hmrc.helptosavetestadminfrontend.config.AppConfig import uk.gov.hmrc.helptosavetestadminfrontend.connectors.AuthConnector.JsObjectOps import uk.gov.hmrc.helptosavetestadminfrontend.http.HttpClient.HttpClientOps @@ -49,15 +50,12 @@ class AuthConnector @Inject()(http: HttpClient, appConfig: AppConfig) extends Lo response.header(HeaderNames.LOCATION), (response.json \ "gatewayToken").asOpt[String]) match { - case (Some(token), Some(sessionUri), Some(receivedGatewayToken)) => + case (Some(token), Some(_), Some(_)) => val session = Session(Map( SessionKeys.sessionId -> SessionId(s"session-${UUID.randomUUID}").value, - SessionKeys.authProvider -> "GGW", - SessionKeys.userId -> sessionUri, SessionKeys.authToken -> token, SessionKeys.lastRequestTimestamp -> DateTime.now.getMillis.toString, - SessionKeys.token -> receivedGatewayToken, SessionKeys.affinityGroup -> "Individual", SessionKeys.name -> credId )) diff --git a/build.sbt b/build.sbt index 5fdd122..9fd83be 100644 --- a/build.sbt +++ b/build.sbt @@ -24,9 +24,9 @@ dependencyOverrides += "com.typesafe.akka" %% "akka-http-core" % akkaHttpVersion val dependencies = Seq( ws, - "uk.gov.hmrc" %% "bootstrap-frontend-play-26" % "2.25.0", - "uk.gov.hmrc" %% "govuk-template" % "5.58.0-play-26", - "uk.gov.hmrc" %% "play-ui" % "8.13.0-play-26", + "uk.gov.hmrc" %% "bootstrap-frontend-play-26" % "3.0.0", + "uk.gov.hmrc" %% "govuk-template" % "5.59.0-play-26", + "uk.gov.hmrc" %% "play-ui" % "8.15.0-play-26", "uk.gov.hmrc" %% "play-health" % "3.15.0-play-26", "uk.gov.hmrc" %% "simple-reactivemongo" % "7.30.0-play-26", "uk.gov.hmrc" %% "play-whitelist-filter" % "3.4.0-play-26", @@ -38,7 +38,7 @@ val dependencies = Seq( ) def testDependencies(scope: String = "test") = Seq( - "uk.gov.hmrc" %% "bootstrap-frontend-play-26" % scope, + "uk.gov.hmrc" %% "bootstrap-test-play-26" % "3.0.0" % scope, "uk.gov.hmrc" %% "service-integration-test" % "0.12.0-play-26" % scope, "uk.gov.hmrc" %% "domain" % "5.10.0-play-26" % scope, "uk.gov.hmrc" %% "stub-data-generator" % "0.5.3" % scope, diff --git a/conf/application.conf b/conf/application.conf index 090df78..a77db0e 100644 --- a/conf/application.conf +++ b/conf/application.conf @@ -42,7 +42,7 @@ play.modules.enabled += "uk.gov.hmrc.play.bootstrap.graphite.GraphiteMetricsModu play.modules.enabled += "uk.gov.hmrc.play.bootstrap.HttpClientModule" # Provides an implementation and configures all filters required by a Platform frontend microservice. -play.modules.enabled += "uk.gov.hmrc.play.bootstrap.FrontendModule" +play.modules.enabled += "uk.gov.hmrc.play.bootstrap.frontend.FrontendModule" play.http.filters = "uk.gov.hmrc.helptosavetestadminfrontend.config.Filters" # Custom error handler diff --git a/test/config/FiltersSpec.scala b/test/config/FiltersSpec.scala index 216ee09..c01ae65 100644 --- a/test/config/FiltersSpec.scala +++ b/test/config/FiltersSpec.scala @@ -23,12 +23,11 @@ import play.api.Configuration import play.api.mvc.EssentialFilter import play.filters.csrf.CSRFFilter import play.filters.headers.SecurityHeadersFilter -import uk.gov.hmrc.helptosavetestadminfrontend.config.{Filters, WhitelistFilter} +import uk.gov.hmrc.helptosavetestadminfrontend.config.{AllowlistFilter, Filters} import uk.gov.hmrc.play.bootstrap.frontend.filters.crypto.SessionCookieCryptoFilter import uk.gov.hmrc.play.bootstrap.frontend.filters.deviceid.DeviceIdFilter -import uk.gov.hmrc.play.bootstrap.frontend.filters.{FrontendAuditFilter, HeadersFilter, SessionIdFilter, SessionTimeoutFilter} +import uk.gov.hmrc.play.bootstrap.frontend.filters.{FrontendAuditFilter, FrontendFilters, HeadersFilter, SessionIdFilter, SessionTimeoutFilter} import uk.gov.hmrc.play.bootstrap.filters._ - class FiltersSpec extends TestSupport { // can't use scalamock for CacheControlFilter since a logging statement during class @@ -37,7 +36,7 @@ class FiltersSpec extends TestSupport { val mockCacheControllerFilter = new CacheControlFilter(CacheControlConfig(), mock[Materializer]) val mockMDCFilter = new MDCFilter(fakeApplication.materializer, fakeApplication.configuration, "") - val mockWhiteListFilter = mock[uk.gov.hmrc.play.bootstrap.frontend.filters.WhitelistFilter] + val mockAllowlistFilter = mock[uk.gov.hmrc.play.bootstrap.frontend.filters.AllowlistFilter] val mockSessionIdFilter =mock[SessionIdFilter] @@ -54,7 +53,7 @@ class FiltersSpec extends TestSupport { stub[SessionTimeoutFilter], mockCacheControllerFilter, mockMDCFilter, - mockWhiteListFilter, + mockAllowlistFilter, mockSessionIdFilter ) { lazy val enableSecurityHeaderFilter: Boolean = false @@ -62,21 +61,21 @@ class FiltersSpec extends TestSupport { } val frontendFilters = new TestableFrontendFilters - val whiteListFilter = mock[WhitelistFilter] + val allowlistFilter = mock[AllowlistFilter] "Filters" must { - "include the whitelist filter if the whitelist from config is non empty" in { + "include the allowlist filter if the allowlist from config is non empty" in { val config = Configuration("http-header-ip-whitelist" → List("1.2.3")) - val filters = new Filters(config, whiteListFilter, frontendFilters) - filters.filters shouldBe Seq(whiteListFilter) + val filters = new Filters(config, allowlistFilter, frontendFilters) + filters.filters shouldBe Seq(allowlistFilter) } - "not include the whitelist filter if the whitelist from config is empty" in { + "not include the allowlist filter if the allowlist from config is empty" in { val config = Configuration("http-header-ip-whitelist" → List()) - val filters = new Filters(config, whiteListFilter, frontendFilters) + val filters = new Filters(config, allowlistFilter, frontendFilters) filters.filters shouldBe Seq() } }