Skip to content

Commit

Permalink
renamed resource role to client role
Browse files Browse the repository at this point in the history
  • Loading branch information
bilal-fazlani committed Jan 25, 2019
1 parent e1c3754 commit d6e64a2
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 33 deletions.
8 changes: 4 additions & 4 deletions readme.md
Expand Up @@ -61,7 +61,7 @@ embedded-keycloak{
{
name = some-server
clientType = bearer-only
resourceRoles = [server-admin, server-user]
clientRoles = [server-admin, server-user]
authorizationEnabled = true
},
{
Expand All @@ -78,7 +78,7 @@ embedded-keycloak{
{
username = user2
password = abcd,
resourceRoles = [{
clientRoles = [{
clientName = some-server
roleName = server-user
}]
Expand All @@ -99,7 +99,7 @@ Or the same data can be provided directly as shown below:
Client(
name = "some-server",
clientType = "bearer-only",
resourceRoles = Set("server-admin", "server-user"),
clientRoles = Set("server-admin", "server-user"),
authorizationEnabled = true
),
Client(name = "some-client")
Expand All @@ -114,7 +114,7 @@ Or the same data can be provided directly as shown below:
ApplicationUser(
username = "user2",
password = "abcd",
resourceRoles = Set(ResourceRole("some-server", "server-user"))
clientRoles = Set(ClientRole("some-server", "server-user"))
)
),
realmRoles = Set("super-admin")
Expand Down
Expand Up @@ -32,13 +32,13 @@ object KeycloakData {
clients: Set[Client] = Set.empty,
users: Set[ApplicationUser] = Set.empty)

case class ResourceRole(clientName: String, roleName: String)
case class ClientRole(clientName: String, roleName: String)

case class Client(name: String,
clientType: String = "public",
authorizationEnabled: Boolean = false,
passwordGrantEnabled: Boolean = true,
resourceRoles: Set[String] = Set.empty)
clientRoles: Set[String] = Set.empty)

case class AdminUser(username: String = "admin", password: String = "admin")

Expand All @@ -51,5 +51,5 @@ object KeycloakData {
firstName: String = "",
lastName: String = "",
realmRoles: Set[String] = Set.empty,
resourceRoles: Set[ResourceRole] = Set.empty)
clientRoles: Set[ClientRole] = Set.empty)
}
Expand Up @@ -44,11 +44,11 @@ private[embedded_keycloak] class ClientFeeder(realm: Realm, settings: Settings)

val clientId = getId(response)

client.resourceRoles.foreach(r => feedResourceRole(r, clientId))
client.clientRoles.foreach(r => feedClientRole(r, clientId))
(client.name, clientId)
}

private def feedResourceRole(roleName: String, clientId: String)(
private def feedClientRole(roleName: String, clientId: String)(
implicit bearerToken: BearerToken): Unit =
kPost(realmUrl(realm.name) + s"/clients/$clientId/roles",
Map(
Expand Down
Expand Up @@ -4,7 +4,7 @@ import tech.bilal.embedded_keycloak.KeycloakData.{
ApplicationUser,
Client,
Realm,
ResourceRole
ClientRole
}
import tech.bilal.embedded_keycloak.Settings
import tech.bilal.embedded_keycloak.utils.BearerToken
Expand Down Expand Up @@ -55,7 +55,7 @@ private[embedded_keycloak] class DataFetcher(settings: Settings)
.read(clientsResponse.data.bytes)
.arr

def getResourceRolesForClient(clientId: String) = {
def getClientRolesForClient(clientId: String) = {
val response = kGet(realmUrl(realm) + s"/clients/$clientId/roles")
ujson
.read(response.data.bytes)
Expand All @@ -73,7 +73,7 @@ private[embedded_keycloak] class DataFetcher(settings: Settings)
name = obj.getStr("name"),
clientType = obj.getClientType,
authorizationEnabled = obj.getBool("authorizationServicesEnabled"),
resourceRoles = getResourceRolesForClient(obj.getStr("id"))
clientRoles = getClientRolesForClient(obj.getStr("id"))
)
})
.toMap
Expand All @@ -95,7 +95,7 @@ private[embedded_keycloak] class DataFetcher(settings: Settings)
.toSet
}

def getResourcesRoleMappings(userId: String): Set[ResourceRole] = {
def getClientsRoleMappings(userId: String): Set[ClientRole] = {
clientIds.keys
.map(
clientId =>
Expand All @@ -109,7 +109,7 @@ private[embedded_keycloak] class DataFetcher(settings: Settings)
.toMap
.flatMap {
case (k, v) =>
v.map(roleName => ResourceRole(clientIds(k).name, roleName))
v.map(roleName => ClientRole(clientIds(k).name, roleName))
}
.toSet
}
Expand All @@ -123,7 +123,7 @@ private[embedded_keycloak] class DataFetcher(settings: Settings)
firstName = obj.getStr("firstName"),
lastName = obj.getStr("lastName"),
realmRoles = getRealmRoleMappings(obj.getStr("id")),
resourceRoles = getResourcesRoleMappings(obj.getStr("id"))
clientRoles = getClientsRoleMappings(obj.getStr("id"))
)
})
.toSet
Expand Down
@@ -1,6 +1,6 @@
package tech.bilal.embedded_keycloak.impl.data

import tech.bilal.embedded_keycloak.KeycloakData.{Realm, ResourceRole}
import tech.bilal.embedded_keycloak.KeycloakData.{Realm, ClientRole}
import tech.bilal.embedded_keycloak.Settings
import tech.bilal.embedded_keycloak.utils.BearerToken

Expand All @@ -23,10 +23,10 @@ private[embedded_keycloak] class RoleMapper(clientIds: Map[String, String],
kPost(url, upickle.default.write(realmRoles))
}

def mapResourceRoles(userId: String, resourceRoles: Set[ResourceRole])(
def mapClientRoles(userId: String, clientRoles: Set[ClientRole])(
implicit bearerToken: BearerToken): Unit = {

resourceRoles
clientRoles
.groupBy(x => x.clientName)
.map {
case (k, v) => (k, v.map(_.roleName))
Expand Down
Expand Up @@ -37,6 +37,6 @@ private[embedded_keycloak] class UserFeeder(clientIds: Map[String, String],

roleMapper.mapRealmRoles(userId, user.realmRoles)

roleMapper.mapResourceRoles(userId, user.resourceRoles)
roleMapper.mapClientRoles(userId, user.clientRoles)
}
}
4 changes: 2 additions & 2 deletions src/test/resources/application.conf
Expand Up @@ -10,7 +10,7 @@ embedded-keycloak{
{
name = some-server
clientType = bearer-only
resourceRoles = [server-admin, server-user]
clientRoles = [server-admin, server-user]
authorizationEnabled = true
},
{
Expand All @@ -27,7 +27,7 @@ embedded-keycloak{
{
username = user2
password = abcd,
resourceRoles = [{
clientRoles = [{
clientName = some-server
roleName = server-user
}]
Expand Down
@@ -1,7 +1,7 @@
package tech.bilal.embedded_keycloak.impl.data

import org.scalatest.{BeforeAndAfterAll, FunSuite, Matchers}
import tech.bilal.embedded_keycloak.KeycloakData.{ApplicationUser, ResourceRole}
import tech.bilal.embedded_keycloak.KeycloakData.{ApplicationUser, ClientRole}
import tech.bilal.embedded_keycloak.utils.{BearerToken, Ports}
import tech.bilal.embedded_keycloak.{EmbeddedKeycloak, KeycloakData, Settings}
import scala.concurrent.Await
Expand Down Expand Up @@ -38,27 +38,26 @@ class DataFeederTest extends FunSuite with Matchers with BeforeAndAfterAll {
password = "[HIDDEN]",
firstName = "john",
realmRoles = Set("super-admin", "uma_authorization", "offline_access"),
resourceRoles =
Set(ResourceRole("${client_account}", "view-profile"),
ResourceRole("${client_account}", "manage-account"))
clientRoles = Set(ClientRole("${client_account}", "view-profile"),
ClientRole("${client_account}", "manage-account"))
),
ApplicationUser(
"user2",
"[HIDDEN]",
realmRoles = Set("uma_authorization", "offline_access"),
resourceRoles = Set(
ResourceRole(clientName = "some-server", roleName = "server-user"),
ResourceRole("${client_account}", "view-profile"),
ResourceRole("${client_account}", "manage-account")
clientRoles = Set(
ClientRole(clientName = "some-server", roleName = "server-user"),
ClientRole("${client_account}", "view-profile"),
ClientRole("${client_account}", "manage-account")
)
)
)

clients.find(c => {
c.name == "some-server" &&
c.authorizationEnabled &&
c.resourceRoles.contains("server-admin") &&
c.resourceRoles.contains("server-user")
c.clientRoles.contains("server-admin") &&
c.clientRoles.contains("server-user")
}) should not be empty

clients.find(c => {
Expand Down
Expand Up @@ -17,7 +17,7 @@ class DataParserTest extends FunSuite with Matchers {
Client(
name = "some-server",
clientType = "bearer-only",
resourceRoles = Set("server-admin", "server-user"),
clientRoles = Set("server-admin", "server-user"),
authorizationEnabled = true
),
Client(name = "some-client")
Expand All @@ -32,7 +32,7 @@ class DataParserTest extends FunSuite with Matchers {
ApplicationUser(
username = "user2",
password = "abcd",
resourceRoles = Set(ResourceRole("some-server", "server-user"))
clientRoles = Set(ClientRole("some-server", "server-user"))
)
),
realmRoles = Set("super-admin")
Expand Down

0 comments on commit d6e64a2

Please sign in to comment.