Skip to content

Commit

Permalink
Merge pull request #16 from IZIVIA/fix/#15-use-right-tokens
Browse files Browse the repository at this point in the history
  • Loading branch information
lilgallon authored Nov 2, 2023
2 parents a4ea337 + 3766c0e commit 486a2f3
Show file tree
Hide file tree
Showing 49 changed files with 514 additions and 370 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ fun HttpRequest.parseAuthorizationHeader() = (headers["Authorization"] ?: header
* @throws OcpiClientNotEnoughInformationException if the token is missing
* @throws HttpException if the authorization header is missing
*/
fun PlatformRepository.tokenFilter(httpRequest: HttpRequest) {
fun PlatformRepository.checkToken(httpRequest: HttpRequest) {
val token = httpRequest.parseAuthorizationHeader()

if (!platformExistsWithTokenA(token) &&
Expand All @@ -143,9 +143,9 @@ fun PlatformRepository.tokenFilter(httpRequest: HttpRequest) {
}
}

fun TransportClientBuilder.buildFor(module: ModuleID, platform: String, platformRepository: PlatformRepository) =
fun TransportClientBuilder.buildFor(module: ModuleID, platformUrl: String, platformRepository: PlatformRepository) =
platformRepository
.getEndpoints(platformUrl = platform)
.getEndpoints(platformUrl = platformUrl)
.find { it.identifier == module }
?.let { build(baseUrl = it.url) }
?: throw OcpiToolkitUnknownEndpointException(endpointName = module.name)
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class LocationsCpoClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.locations,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down Expand Up @@ -174,4 +174,4 @@ class LocationsCpoClient(
).authenticate(platformRepository = platformRepository, baseUrl = serverVersionsEndpointUrl)
)
.parseBody()
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.izivia.ocpi.toolkit.modules.locations

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.transport.TransportServer
import com.izivia.ocpi.toolkit.transport.domain.FixedPathSegment
Expand All @@ -28,7 +28,7 @@ class LocationsCpoServer(
method = HttpMethod.GET,
path = basePath,
queryParams = listOf("date_from", "date_to", "offset", "limit"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
val dateFrom = req.queryParams["date_from"]
Expand All @@ -47,7 +47,7 @@ class LocationsCpoServer(
transportServer.handle(
method = HttpMethod.GET,
path = basePath + VariablePathSegment("locationId"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -63,7 +63,7 @@ class LocationsCpoServer(
VariablePathSegment("locationId"),
VariablePathSegment("evseUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -81,7 +81,7 @@ class LocationsCpoServer(
VariablePathSegment("evseUid"),
VariablePathSegment("connectorId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class LocationsEmspClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.locations,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.izivia.ocpi.toolkit.modules.locations

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.mapper
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.modules.locations.domain.*
import com.izivia.ocpi.toolkit.transport.TransportServer
Expand Down Expand Up @@ -32,7 +32,7 @@ class LocationsEmspServer(
VariablePathSegment("partyId"),
VariablePathSegment("locationId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -52,7 +52,7 @@ class LocationsEmspServer(
VariablePathSegment("locationId"),
VariablePathSegment("evseUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -74,7 +74,7 @@ class LocationsEmspServer(
VariablePathSegment("evseUid"),
VariablePathSegment("connectorId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -95,7 +95,7 @@ class LocationsEmspServer(
VariablePathSegment("partyId"),
VariablePathSegment("locationId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -116,7 +116,7 @@ class LocationsEmspServer(
VariablePathSegment("locationId"),
VariablePathSegment("evseUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -139,7 +139,7 @@ class LocationsEmspServer(
VariablePathSegment("evseUid"),
VariablePathSegment("connectorId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -161,7 +161,7 @@ class LocationsEmspServer(
VariablePathSegment("partyId"),
VariablePathSegment("locationId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -182,7 +182,7 @@ class LocationsEmspServer(
VariablePathSegment("locationId"),
VariablePathSegment("evseUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -205,7 +205,7 @@ class LocationsEmspServer(
VariablePathSegment("evseUid"),
VariablePathSegment("connectorId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class TokensCpoClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.tokens,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.izivia.ocpi.toolkit.modules.tokens

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.mapper
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.modules.tokens.domain.Token
import com.izivia.ocpi.toolkit.modules.tokens.domain.TokenPartial
Expand All @@ -29,7 +29,7 @@ class TokensCpoServer(
VariablePathSegment("partyId"),
VariablePathSegment("tokenUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -48,7 +48,7 @@ class TokensCpoServer(
VariablePathSegment("partyId"),
VariablePathSegment("tokenUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -68,7 +68,7 @@ class TokensCpoServer(
VariablePathSegment("partyId"),
VariablePathSegment("tokenUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class TokensEmspClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.tokens,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.izivia.ocpi.toolkit.modules.tokens

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.mapper
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.modules.tokens.domain.LocationReferences
import com.izivia.ocpi.toolkit.modules.tokens.domain.TokenType
Expand Down Expand Up @@ -34,7 +34,7 @@ class TokensEmspServer(
"ocpi-to-country-code",
"ocpi-to-party-id"
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
val dateFrom = req.queryParams["date_from"]
Expand All @@ -58,7 +58,7 @@ class TokensEmspServer(
VariablePathSegment("tokenUid")
),
queryParams = listOf("type"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -76,7 +76,7 @@ class TokensEmspServer(
FixedPathSegment("authorize")
),
queryParams = listOf("type"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.izivia.ocpi.toolkit.modules.versions

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.modules.versions.validation.VersionDetailsValidationService
import com.izivia.ocpi.toolkit.transport.TransportServer
Expand All @@ -23,7 +23,7 @@ class VersionDetailsServer(
path = basePath + listOf(
VariablePathSegment("versionNumber")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
validationService.getVersionDetails(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.izivia.ocpi.toolkit.modules.versions

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.modules.versions.validation.VersionsValidationService
import com.izivia.ocpi.toolkit.transport.TransportServer
Expand All @@ -23,7 +23,7 @@ class VersionsServer(
transportServer.handle(
method = HttpMethod.GET,
path = basePath,
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
validationService.getVersions()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ fun HttpRequest.parseAuthorizationHeader() = (headers["Authorization"] ?: header
* @throws OcpiClientNotEnoughInformationException if the token is missing
* @throws HttpException if the authorization header is missing
*/
fun PlatformRepository.tokenFilter(httpRequest: HttpRequest) {
fun PlatformRepository.checkToken(httpRequest: HttpRequest) {
val token = httpRequest.parseAuthorizationHeader()

if (!platformExistsWithTokenA(token) &&
Expand All @@ -143,9 +143,9 @@ fun PlatformRepository.tokenFilter(httpRequest: HttpRequest) {
}
}

fun TransportClientBuilder.buildFor(module: ModuleID, platform: String, platformRepository: PlatformRepository) =
fun TransportClientBuilder.buildFor(module: ModuleID, platformUrl: String, platformRepository: PlatformRepository) =
platformRepository
.getEndpoints(platformUrl = platform)
.getEndpoints(platformUrl = platformUrl)
.find { it.identifier == module }
?.let { build(baseUrl = it.url) }
?: throw OcpiToolkitUnknownEndpointException(endpointName = module.name)
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class LocationsCpoClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.locations,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down Expand Up @@ -174,4 +174,4 @@ class LocationsCpoClient(
).authenticate(platformRepository = platformRepository, baseUrl = serverVersionsEndpointUrl)
)
.parseBody()
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.izivia.ocpi.toolkit.modules.locations

import com.izivia.ocpi.toolkit.common.httpResponse
import com.izivia.ocpi.toolkit.common.tokenFilter
import com.izivia.ocpi.toolkit.common.checkToken
import com.izivia.ocpi.toolkit.modules.credentials.repositories.PlatformRepository
import com.izivia.ocpi.toolkit.transport.TransportServer
import com.izivia.ocpi.toolkit.transport.domain.FixedPathSegment
Expand All @@ -28,7 +28,7 @@ class LocationsCpoServer(
method = HttpMethod.GET,
path = basePath,
queryParams = listOf("date_from", "date_to", "offset", "limit"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
val dateFrom = req.queryParams["date_from"]
Expand All @@ -47,7 +47,7 @@ class LocationsCpoServer(
transportServer.handle(
method = HttpMethod.GET,
path = basePath + VariablePathSegment("locationId"),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -63,7 +63,7 @@ class LocationsCpoServer(
VariablePathSegment("locationId"),
VariablePathSegment("evseUid")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand All @@ -81,7 +81,7 @@ class LocationsCpoServer(
VariablePathSegment("evseUid"),
VariablePathSegment("connectorId")
),
filters = listOf(platformRepository::tokenFilter)
filters = listOf(platformRepository::checkToken)
) { req ->
req.httpResponse {
service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class LocationsEmspClient(
private fun buildTransport(): TransportClient = transportClientBuilder
.buildFor(
module = ModuleID.locations,
platform = serverVersionsEndpointUrl,
platformUrl = serverVersionsEndpointUrl,
platformRepository = platformRepository
)

Expand Down
Loading

0 comments on commit 486a2f3

Please sign in to comment.