Skip to content

Commit 72bb7ca

Browse files
authored
Merge pull request #2528 from constantine2nd/develop
consumer_id: null in consents info and getMyConsents endpoints
2 parents baf3ba2 + c7828db commit 72bb7ca

8 files changed

Lines changed: 27 additions & 19 deletions

File tree

obp-api/src/main/resources/props/sample.props.template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1131,7 +1131,7 @@ default_auth_context_update_request_key=CUSTOMER_NUMBER
11311131

11321132
# Check presence of the mandatory headers
11331133
#berlin_group_mandatory_headers = Content-Type,Date,Digest,PSU-Device-ID,PSU-Device-Name,PSU-IP-Address,Signature,TPP-Signature-Certificate,X-Request-ID
1134-
#berlin_group_mandatory_header_consent = TPP-Redirect-URL
1134+
#berlin_group_mandatory_header_consent = TPP-Redirect-URI
11351135

11361136
## Berlin Group Create Consent Frequency per Day Upper Limit
11371137
#berlin_group_frequency_per_day_upper_limit = 4

obp-api/src/main/scala/code/api/constant/constant.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ object RequestHeader {
150150
final lazy val `If-None-Match` = "If-None-Match"
151151

152152
final lazy val `X-Request-ID` = "X-Request-ID" // Berlin Group
153-
final lazy val `TPP-Redirect-URL` = "TPP-Redirect-URL" // Berlin Group
153+
final lazy val `TPP-Redirect-URI` = "TPP-Redirect-URI" // Berlin Group
154154
final lazy val Date = "Date" // Berlin Group
155155
// Headers to support the signature function of Berlin Group
156156
final lazy val Digest = "Digest" // Berlin Group

obp-api/src/main/scala/code/api/util/BerlinGroupCheck.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ object BerlinGroupCheck extends MdcLoggable {
2020
.split(",")
2121
.map(_.trim.toLowerCase)
2222
.toList.filterNot(_.isEmpty)
23-
private val berlinGroupMandatoryHeaderConsent = APIUtil.getPropsValue("berlin_group_mandatory_header_consent", defaultValue = "TPP-Redirect-URL")
23+
private val berlinGroupMandatoryHeaderConsent = APIUtil.getPropsValue("berlin_group_mandatory_header_consent", defaultValue = "TPP-Redirect-URI")
2424
.split(",")
2525
.map(_.trim.toLowerCase)
2626
.toList.filterNot(_.isEmpty)

obp-api/src/main/scala/code/api/util/BerlinGroupSigning.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ object BerlinGroupSigning extends MdcLoggable {
5757
RequestHeader.Digest,
5858
RequestHeader.Date,
5959
RequestHeader.`X-Request-ID`,
60-
//RequestHeader.`TPP-Redirect-URL`,
60+
//RequestHeader.`TPP-Redirect-URI`,
6161
) // Example fields to be signed
6262
orderedKeys.flatMap(key => headers.get(key).map(value => s"${key.toLowerCase()}: $value")).mkString("\n")
6363
}
@@ -340,7 +340,7 @@ object BerlinGroupSigning extends MdcLoggable {
340340
RequestHeader.Digest -> s"SHA-256=$digest",
341341
RequestHeader.`X-Request-ID` -> xRequestId,
342342
RequestHeader.Date -> dateHeader,
343-
RequestHeader.`TPP-Redirect-URL` -> redirectUri,
343+
RequestHeader.`TPP-Redirect-URI` -> redirectUri,
344344
)
345345

346346
val signingString = createSigningString(headers)
@@ -355,7 +355,7 @@ object BerlinGroupSigning extends MdcLoggable {
355355
println(s"1) Digest: $digest")
356356
println(s"2) ${RequestHeader.`X-Request-ID`}: $xRequestId")
357357
println(s"3) ${RequestHeader.Date}: $dateHeader")
358-
println(s"4) ${RequestHeader.`TPP-Redirect-URL`}: $redirectUri")
358+
println(s"4) ${RequestHeader.`TPP-Redirect-URI`}: $redirectUri")
359359
val signatureHeaderValue =
360360
s"""keyId="SN=43A, CA=CN=MAIB Prisacaru Sergiu (Test), O=MAIB", algorithm="rsa-sha256", headers="digest date x-request-id", signature="$signature""""
361361
println(s"5) Signature: $signatureHeaderValue")

obp-api/src/main/scala/code/api/util/ConsentUtil.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -767,7 +767,7 @@ object Consent extends MdcLoggable {
767767
)
768768
}
769769
}
770-
val tppRedirectUrl: Option[HTTPParam] = callContext.map(_.requestHeaders).getOrElse(Nil).find(_.name == RequestHeader.`TPP-Redirect-URL`)
770+
val tppRedirectUrl: Option[HTTPParam] = callContext.map(_.requestHeaders).getOrElse(Nil).find(_.name == RequestHeader.`TPP-Redirect-URI`)
771771
Future.sequence(accounts ::: balances ::: transactions) map { views =>
772772
val json = ConsentJWT(
773773
createdByUserId = user.map(_.userId).getOrElse(""),

obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import code.entitlement.Entitlement
3535
import code.loginattempts.LoginAttempt
3636
import code.metrics.APIMetrics
3737
import code.metrics.MappedMetric.userId
38-
import code.model.AppType
38+
import code.model.{AppType, Consumer}
3939
import code.model.dataAccess.{AuthUser, MappedBankAccount}
4040
import code.regulatedentities.MappedRegulatedEntityProvider
4141
import code.userlocks.UserLocksProvider
@@ -2061,9 +2061,9 @@ trait APIMethods510 {
20612061
}
20622062
)
20632063
}
2064-
(consumerId, applicationText) <- consentJson.consumer_id match {
2064+
(consumerFromRequestBody: Option[Consumer], applicationText) <- consentJson.consumer_id match {
20652065
case Some(id) => NewStyle.function.checkConsumerByConsumerId(id, callContext) map {
2066-
c => (Some(c.consumerId.get), c.description)
2066+
c => (Some(c), c.description)
20672067
}
20682068
case None => Future(None, "Any application")
20692069
}
@@ -2073,7 +2073,7 @@ trait APIMethods510 {
20732073
case Props.RunModes.Test => Consent.challengeAnswerAtTestEnvironment
20742074
case _ => SecureRandomUtil.numeric()
20752075
}
2076-
createdConsent <- Future(Consents.consentProvider.vend.createObpConsent(user, challengeAnswer, None)) map {
2076+
createdConsent <- Future(Consents.consentProvider.vend.createObpConsent(user, challengeAnswer, None, consumerFromRequestBody)) map {
20772077
i => connectorEmptyResponse(i, callContext)
20782078
}
20792079
consentJWT =
@@ -2082,7 +2082,7 @@ trait APIMethods510 {
20822082
consentJson,
20832083
createdConsent.secret,
20842084
createdConsent.consentId,
2085-
consumerId,
2085+
consumerFromRequestBody.map(_.consumerId.get),
20862086
consentJson.valid_from,
20872087
consentJson.time_to_live.getOrElse(3600),
20882088
None,

obp-api/src/main/scala/code/regulatedentities/MappedRegulatedEntitiyProvider.scala

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,20 @@ class MappedRegulatedEntity extends RegulatedEntityTrait with LongKeyedMapper[Ma
120120
override def entityCountry: String = EntityCountry.get
121121
override def entityWebSite: String = EntityWebSite.get
122122
override def services: String = Services.get
123-
// override def attributes: Option[List[RegulatedEntityAttributeSimple]] = Some(List(RegulatedEntityAttributeSimple(
124-
// attributeType="attributeTypeExample.value",
125-
// name="attributeNameExample.value",
126-
// value="attributeValueExample.value")
127-
// ))
128-
override def attributes: Option[List[RegulatedEntityAttributeSimple]] = None //not for mapped mode yet, will add it later.
123+
override def attributes: Option[List[RegulatedEntityAttributeSimple]] = Some(
124+
List(
125+
RegulatedEntityAttributeSimple(
126+
attributeType="STRING",
127+
name="CERTIFICATE_SERIAL_NUMBER",
128+
value="1082"
129+
),
130+
RegulatedEntityAttributeSimple(
131+
attributeType="STRING",
132+
name="CERTIFICATE_CA_NAME",
133+
value="BNM CA (test)"
134+
),
135+
))
136+
// override def attributes: Option[List[RegulatedEntityAttributeSimple]] = None //not for mapped mode yet, will add it later.
129137

130138
}
131139

obp-api/src/main/scala/code/snippet/BerlinGroupConsent.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ class BerlinGroupConsent extends MdcLoggable with RestHelper with APIMethods510
146146
val consentJwt: Box[ConsentJWT] = JwtUtil.getSignedPayloadAsJson(consent.jsonWebToken).map(parse(_)
147147
.extract[ConsentJWT])
148148
val tppRedirectUri: immutable.Seq[String] = consentJwt.map { h =>
149-
h.request_headers.filter(h => h.name == RequestHeader.`TPP-Redirect-URL`)
149+
h.request_headers.filter(h => h.name == RequestHeader.`TPP-Redirect-URI`)
150150
}.getOrElse(Nil).map((_.values.mkString("")))
151151
val consumerRedirectUri: Option[String] = consumer.map(_.redirectURL.get).toOption
152152
val uri: String = tppRedirectUri.headOption.orElse(consumerRedirectUri).getOrElse("https://not.defined.com")

0 commit comments

Comments
 (0)