Skip to content

Commit

Permalink
reafactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
bilal-fazlani committed Feb 7, 2019
1 parent 3710ef3 commit 4528fa8
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 65 deletions.
2 changes: 1 addition & 1 deletion build.sbt
Expand Up @@ -32,7 +32,7 @@ libraryDependencies ++= Seq(
"com.iheart" %% "ficus" % "1.4.4",
//AKKA-DOWNLOADER
"com.typesafe.akka" %% "akka-http" % "10.1.7",
"com.typesafe.akka" %% "akka-stream" % "2.5.19",
"com.typesafe.akka" %% "akka-stream" % "2.5.20",
//TEST
"org.scalatest" %% "scalatest" % "3.0.5" % Test
)
Expand Down
10 changes: 9 additions & 1 deletion project/plugins.sbt
@@ -1,4 +1,12 @@
//coverage
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1")
addSbtPlugin("org.scoverage" % "sbt-coveralls" % "1.2.7")
addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.2.1")

//codacy
addSbtPlugin("com.codacy" % "sbt-codacy-coverage" % "2.112")

//maven central release
addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.2.1")

//dependedncy updates
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.3.4")
Expand Up @@ -6,84 +6,64 @@ import tech.bilal.embedded_keycloak.Settings
import tech.bilal.embedded_keycloak.impl.Bash.exec
import tech.bilal.embedded_keycloak.impl.FileIO

sealed trait AdminFeeder {
private[embedded_keycloak] sealed trait AdminFeeder {
def feedAdminUser(admin: AdminUser): Unit
}

private[embedded_keycloak] class JavaAdminFeeder(settings: Settings)
extends FeederBase(settings)
with AdminFeeder {
private[embedded_keycloak] object AdminFeeder {
class JavaAdminFeeder(settings: Settings)
extends FeederBase(settings)
with AdminFeeder {

val fileIO = new FileIO(settings)
val fileIO = new FileIO(settings)

override def feedAdminUser(admin: AdminUser): Unit =
exec(
s"sh ${fileIO.addUserExecutablePath} " +
s"--user ${admin.username} " +
s"-p ${admin.password}")
}
override def feedAdminUser(admin: AdminUser): Unit =
exec(
s"sh ${fileIO.addUserExecutablePath} " +
s"--user ${admin.username} " +
s"-p ${admin.password}")
}

private[embedded_keycloak] class RestAdminFeeder(settings: Settings)
extends FeederBase(settings)
with AdminFeeder {
class RestAdminFeeder(settings: Settings)
extends FeederBase(settings)
with AdminFeeder {

override def feedAdminUser(admin: AdminUser): Unit = {
val origin = s"http://localhost:${settings.port}"
val referer = origin + "/"
val url = referer + "auth/"
val cookieName = "WELCOME_STATE_CHECKER"
override def feedAdminUser(admin: AdminUser): Unit = {
val origin = s"http://localhost:${settings.port}"
val referer = origin + "/"
val url = referer + "auth/"
val cookieName = "WELCOME_STATE_CHECKER"

val getResponse = get(
url = url,
headers = Map(
"Connection" -> "keep-alive",
"Pragma" -> "no-cache",
"Cache-Control" -> "Cache-Control",
"Upgrade-Insecure-Requests" -> "1",
"User-Agent" -> "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"Accept" -> "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Referer" -> referer,
"Accept-Encoding" -> "gzip, deflate, br",
"Accept-Language" -> "en-US,en;q=0.9"
),
)
val getResponse = get(
url = url
)

if (getResponse.statusCode != 200)
throw new RuntimeException("could not create admin user")
if (getResponse.statusCode != 200)
throw new RuntimeException("could not create admin user")

val cookies = getResponse.cookies
val cookies = getResponse.cookies

if (cookies.contains(cookieName)) {
val state = cookies(cookieName).getValue
if (cookies.contains(cookieName)) {
val state = cookies(cookieName).getValue

val postResponse = post(
url = url,
headers = Map(
"Connection" -> "keep-alive",
"Cache-Control" -> "max-age=0",
"Origin" -> origin,
"Upgrade-Insecure-Requests" -> "1",
"Content-Type" -> "application/x-www-form-urlencoded",
"User-Agent" -> "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"Accept" -> "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Referer" -> url,
"Accept-Language" -> "en-US,en;q=0.9,gl;q=0.8,de;q=0.7"
),
cookies = cookies,
data = RequestBlob.FormEncodedRequestBlob(
Map(
"username" -> admin.username,
"password" -> admin.password,
"passwordConfirmation" -> admin.password,
"stateChecker" -> state
val postResponse = post(
url = url,
cookies = cookies,
data = RequestBlob.FormEncodedRequestBlob(
Map(
"username" -> admin.username,
"password" -> admin.password,
"passwordConfirmation" -> admin.password,
"stateChecker" -> state
)
)
)
)

if (postResponse.statusCode != 200)
throw new RuntimeException("could not create admin user")
} else {
println("Admin user already exists. Skipped admin creation")
if (postResponse.statusCode != 200)
throw new RuntimeException("could not create admin user")
} else {
println("Admin user already exists. Skipped admin creation")
}
}
}
}
@@ -1,5 +1,6 @@
package tech.bilal.embedded_keycloak.impl.data

import tech.bilal.embedded_keycloak.impl.data.AdminFeeder.RestAdminFeeder
import tech.bilal.embedded_keycloak.utils.BearerToken
import tech.bilal.embedded_keycloak.{KeycloakData, Settings}

Expand All @@ -8,6 +9,7 @@ import scala.language.implicitConversions
class DataFeeder(settings: Settings) {

val adminFeeder = new RestAdminFeeder(settings)

val realmFeeder = new RealmFeeder(settings)

def feed(keycloakData: KeycloakData): Unit = {
Expand Down

0 comments on commit 4528fa8

Please sign in to comment.