diff --git a/obp-api/src/main/scala/code/api/OAuth2.scala b/obp-api/src/main/scala/code/api/OAuth2.scala index e2e593caf..bca5ea7b1 100644 --- a/obp-api/src/main/scala/code/api/OAuth2.scala +++ b/obp-api/src/main/scala/code/api/OAuth2.scala @@ -223,10 +223,10 @@ object OAuth2Login extends RestHelper with MdcLoggable { def wellKnownOpenidConfiguration: URI - def urlOfJwkSets: Box[String] = APIUtil.getPropsValue(nameOfProperty = "oauth2.jwk_set.url") + def urlOfJwkSets: Box[String] = Constant.oauth2JwkSetUrl def checkUrlOfJwkSets(identityProvider: String) = { - val url: List[String] = APIUtil.getPropsValue(nameOfProperty = "oauth2.jwk_set.url").toList + val url: List[String] = Constant.oauth2JwkSetUrl.toList val jwksUris: List[String] = url.map(_.toLowerCase()).map(_.split(",").toList).flatten val jwksUri = jwksUris.filter(_.contains(identityProvider)) jwksUri match { @@ -473,7 +473,7 @@ object OAuth2Login extends RestHelper with MdcLoggable { override def wellKnownOpenidConfiguration: URI = new URI("") def isIssuer(jwt: String): Boolean = { - val url: List[String] = APIUtil.getPropsValue(nameOfProperty = "oauth2.jwk_set.url").toList + val url: List[String] = Constant.oauth2JwkSetUrl.toList val jwksUris: List[String] = url.map(_.toLowerCase()).map(_.split(",").toList).flatten jwksUris.exists( url => JwtUtil.validateAccessToken(jwt, url).isDefined) } diff --git a/obp-api/src/main/scala/code/api/constant/constant.scala b/obp-api/src/main/scala/code/api/constant/constant.scala index da60249f8..a83c21f33 100644 --- a/obp-api/src/main/scala/code/api/constant/constant.scala +++ b/obp-api/src/main/scala/code/api/constant/constant.scala @@ -22,7 +22,9 @@ object Constant extends MdcLoggable { final val h2DatabaseDefaultUrlValue = "jdbc:h2:mem:OBPTest_H2_v2.1.214;NON_KEYWORDS=VALUE;DB_CLOSE_DELAY=10" - def HostName = APIUtil.getPropsValue("hostname").openOrThrowException(ErrorMessages.HostnameNotSpecified) + final val HostName = APIUtil.getPropsValue("hostname").openOrThrowException(ErrorMessages.HostnameNotSpecified) + final val Connector = APIUtil.getPropsValue("connector") + final val openidConnectEnabled = APIUtil.getPropsAsBoolValue("openid_connect.enabled", false) final val ApiInstanceId = { val apiInstanceIdFromProps = APIUtil.getPropsValue("api_instance_id") @@ -37,7 +39,14 @@ object Constant extends MdcLoggable { } } - def localIdentityProvider = APIUtil.getPropsValue("local_identity_provider", HostName) + final val localIdentityProvider = APIUtil.getPropsValue("local_identity_provider", HostName) + + final val mailUsersUserinfoSenderAddress = APIUtil.getPropsValue("mail.users.userinfo.sender.address", "sender-not-set") + + final val oauth2JwkSetUrl = APIUtil.getPropsValue(nameOfProperty = "oauth2.jwk_set.url") + + final val consumerDefaultLogoUrl = APIUtil.getPropsValue("consumer_default_logo_url") + final val serverMode = APIUtil.getPropsValue("server_mode", "apis,portal") // This is the part before the version. Do not change this default! final val ApiPathZero = APIUtil.getPropsValue("apiPathZero", ApiStandards.obp.toString) diff --git a/obp-api/src/main/scala/code/api/openidconnect.scala b/obp-api/src/main/scala/code/api/openidconnect.scala index 8a738ec2d..89a694ce1 100644 --- a/obp-api/src/main/scala/code/api/openidconnect.scala +++ b/obp-api/src/main/scala/code/api/openidconnect.scala @@ -26,22 +26,19 @@ TESOBE (http://www.tesobe.com/) */ package code.api -import java.net.HttpURLConnection - import code.api.OAuth2Login.Hydra import code.api.util.APIUtil._ import code.api.util.{APIUtil, AfterApiAuth, ErrorMessages, JwtUtil} import code.consumer.Consumers import code.loginattempts.LoginAttempt -import code.model.{AppType, Consumer} import code.model.dataAccess.AuthUser +import code.model.{AppType, Consumer} import code.snippet.OpenIDConnectSessionState import code.token.{OpenIDConnectToken, TokensOpenIDConnect} import code.users.Users -import code.util.Helper.{MdcLoggable, ObpS} +import code.util.Helper.MdcLoggable import com.openbankproject.commons.model.User import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus} -import javax.net.ssl.HttpsURLConnection import net.liftweb.common._ import net.liftweb.http._ import net.liftweb.json @@ -50,6 +47,9 @@ import net.liftweb.mapper.By import net.liftweb.util.Helpers import net.liftweb.util.Helpers._ +import java.net.HttpURLConnection +import javax.net.ssl.HttpsURLConnection + /** * This object provides the API calls necessary to authenticate * users using OpenIdConnect (http://openid.net). @@ -66,7 +66,7 @@ case class OpenIdConnectConfig(client_secret: String, ) object OpenIdConnectConfig { - lazy val openIDConnectEnabled = APIUtil.getPropsAsBoolValue("openid_connect.enabled", false) + lazy val openIDConnectEnabled = code.api.Constant.openidConnectEnabled def getProps(props: String): String = { APIUtil.getPropsValue(props).getOrElse("") } diff --git a/obp-api/src/main/scala/code/api/util/APIUtil.scala b/obp-api/src/main/scala/code/api/util/APIUtil.scala index 609b73d64..5e2a2104a 100644 --- a/obp-api/src/main/scala/code/api/util/APIUtil.scala +++ b/obp-api/src/main/scala/code/api/util/APIUtil.scala @@ -2707,7 +2707,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{ else false } - APIUtil.getPropsValue("server_mode", "apis,portal") match { + code.api.Constant.serverMode match { case mode if mode == "portal" => false case mode if mode == "apis" => checkVersion case mode if mode.contains("apis") && mode.contains("portal") => checkVersion @@ -3467,7 +3467,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{ )= createOBPId(s"$thisBankId$thisAccountId$counterpartyName$otherAccountRoutingScheme$otherAccountRoutingAddress") def isDataFromOBPSide (methodName: String, argNameToValue: Array[(String, AnyRef)] = Array.empty): Boolean = { - val connectorNameInProps = APIUtil.getPropsValue("connector").openOrThrowException(attemptedToOpenAnEmptyBox) + val connectorNameInProps = code.api.Constant.Connector.openOrThrowException(attemptedToOpenAnEmptyBox) //if the connector == mapped, then the data is always over obp database if(connectorNameInProps == "mapped") { true diff --git a/obp-api/src/main/scala/code/api/util/BerlinGroupSigning.scala b/obp-api/src/main/scala/code/api/util/BerlinGroupSigning.scala index 73338e414..46be4e0fa 100644 --- a/obp-api/src/main/scala/code/api/util/BerlinGroupSigning.scala +++ b/obp-api/src/main/scala/code/api/util/BerlinGroupSigning.scala @@ -302,7 +302,7 @@ object BerlinGroupSigning extends MdcLoggable { redirectURL = None, createdByUserId = None, certificate = None, - logoUrl = APIUtil.getPropsValue("consumer_default_logo_url") + logoUrl = code.api.Constant.consumerDefaultLogoUrl ) // Set or update certificate diff --git a/obp-api/src/main/scala/code/api/util/CertificateUtil.scala b/obp-api/src/main/scala/code/api/util/CertificateUtil.scala index fae8be114..a0dc0d5ed 100644 --- a/obp-api/src/main/scala/code/api/util/CertificateUtil.scala +++ b/obp-api/src/main/scala/code/api/util/CertificateUtil.scala @@ -11,9 +11,9 @@ import com.nimbusds.jwt.{EncryptedJWT, JWTClaimsSet} import net.liftweb.util.Props import java.io.{FileInputStream, IOException} +import java.security._ import java.security.cert.{Certificate, CertificateException, X509Certificate} import java.security.interfaces.{RSAPrivateKey, RSAPublicKey} -import java.security._ object CryptoSystem extends Enumeration { @@ -26,14 +26,18 @@ object CertificateUtil extends MdcLoggable { // your-at-least-256-bit-secret val sharedSecret: String = ApiPropsWithAlias.jwtTokenSecret + final val jkspath = APIUtil.getPropsValue("keystore.path").getOrElse("") + final val jkspasswd = APIUtil.getPropsValue("keystore.password").getOrElse(APIUtil.initPasswd) + final val keypasswd = APIUtil.getPropsValue("keystore.passphrase").getOrElse(APIUtil.initPasswd) + final val alias = APIUtil.getPropsValue("keystore.alias").getOrElse("") lazy val (publicKey: RSAPublicKey, privateKey: RSAPrivateKey) = APIUtil.getPropsAsBoolValue("jwt.use.ssl", false) match { case true => getKeyPair( - jkspath = APIUtil.getPropsValue("keystore.path").getOrElse(""), - jkspasswd = APIUtil.getPropsValue("keystore.password").getOrElse(APIUtil.initPasswd), - keypasswd = APIUtil.getPropsValue("keystore.passphrase").getOrElse(APIUtil.initPasswd), - alias = APIUtil.getPropsValue("keystore.alias").getOrElse("") + jkspath = jkspath, + jkspasswd = jkspasswd, + keypasswd = keypasswd, + alias = alias ) case false => val keyPair = buildKeyPair(CryptoSystem.RSA) diff --git a/obp-api/src/main/scala/code/api/v1_2_1/JSONFactory1.2.1.scala b/obp-api/src/main/scala/code/api/v1_2_1/JSONFactory1.2.1.scala index 48205ca03..b1e914cf9 100644 --- a/obp-api/src/main/scala/code/api/v1_2_1/JSONFactory1.2.1.scala +++ b/obp-api/src/main/scala/code/api/v1_2_1/JSONFactory1.2.1.scala @@ -26,17 +26,17 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v1_2_1 -import java.util.Date - import code.api.util.APIUtil -import net.liftweb.common.{Box, Full} -import code.model._ import code.api.util.APIUtil._ +import code.model._ import com.openbankproject.commons.model._ import com.openbankproject.commons.util.ApiVersion +import net.liftweb.common.{Box, Full} import net.liftweb.json.Extraction import net.liftweb.json.JsonAST.JValue +import java.util.Date + case class APIInfoJSON( version : String, version_status: String, @@ -371,7 +371,7 @@ object JSONFactory{ val phone = APIUtil.getPropsValue("hosted_by.phone", "+49 (0)30 8145 3994") val organisationWebsite = APIUtil.getPropsValue("organisation_website", "https://www.tesobe.com") - val connector = APIUtil.getPropsValue("connector").openOrThrowException("no connector set") + val connector = code.api.Constant.Connector.openOrThrowException("no connector set") val hostedBy = new HostedBy(organisation, email, phone, organisationWebsite) val apiInfoJSON = new APIInfoJSON(apiVersion.vDottedApiVersion, apiVersionStatus, gitCommit, connector, hostedBy) diff --git a/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala b/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala index 7902050e8..08b86a7a5 100644 --- a/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala +++ b/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala @@ -1,14 +1,10 @@ package code.api.v3_1_0 import code.api.Constant -import code.api.Constant.{SYSTEM_OWNER_VIEW_ID, localIdentityProvider} - -import java.text.SimpleDateFormat -import java.util.UUID -import java.util.regex.Pattern +import code.api.Constant.localIdentityProvider import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.ResourceDocs1_4_0.{MessageDocsSwaggerDefinitions, ResourceDocsAPIMethodsUtil, SwaggerDefinitionsJSON, SwaggerJSONFactory} -import code.api.cache.{Caching, Redis} +import code.api.cache.Caching import code.api.util.APIUtil.{getWebUIPropsPairs, _} import code.api.util.ApiRole._ import code.api.util.ApiTag._ @@ -22,23 +18,21 @@ import code.api.v1_2_1.{JSONFactory, RateLimiting} import code.api.v1_4_0.JSONFactory1_4_0 import code.api.v2_0_0.CreateMeetingJson import code.api.v2_1_0._ -import code.api.v2_2_0.{CreateAccountJSONV220, JSONFactory220} -import code.api.v3_0_0.{CreateViewJsonV300, JSONFactory300} import code.api.v3_0_0.JSONFactory300.createAdapterInfoJson +import code.api.v3_0_0.{CreateViewJsonV300, JSONFactory300} import code.api.v3_1_0.JSONFactory310._ import code.bankconnectors.rest.RestConnector_vMar2019 import code.bankconnectors.{Connector, LocalMappedConnector} -import code.consent.{ConsentRequests, ConsentStatus, Consents, MappedConsent} +import code.consent.{ConsentStatus, Consents, MappedConsent} import code.consumer.Consumers -import code.context.UserAuthContextUpdateProvider import code.entitlement.Entitlement import code.loginattempts.LoginAttempt -import code.methodrouting.{MethodRouting, MethodRoutingCommons, MethodRoutingParam, MethodRoutingT} +import code.methodrouting.{MethodRouting, MethodRoutingCommons, MethodRoutingParam} import code.metrics.APIMetrics import code.model._ import code.model.dataAccess.{AuthUser, BankAccountCreation} import code.ratelimiting.RateLimitingDI -import code.userlocks.{UserLocks, UserLocksProvider} +import code.userlocks.UserLocksProvider import code.users.Users import code.util.Helper import code.util.Helper.ObpS @@ -47,29 +41,27 @@ import code.views.system.ViewDefinition import code.webhook.AccountWebhook import code.webuiprops.{MappedWebUiPropsProvider, WebUiPropsCommons} import com.github.dwickern.macros.NameOf.nameOf -import com.openbankproject.commons.model.enums.{AccountAttributeType, CardAttributeType, ProductAttributeType, StrongCustomerAuthentication} -import com.openbankproject.commons.model.{CreditLimit, Product, _} -import com.openbankproject.commons.util.{ApiVersion, ReflectUtils} -import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.http.S -import net.liftweb.http.provider.HTTPParam -import net.liftweb.http.rest.RestHelper -import net.liftweb.json._ -import net.liftweb.util.Helpers.tryo -import net.liftweb.mapper.By -import net.liftweb.util.Mailer.{From, PlainMailBodyType, Subject, To} -import net.liftweb.util.{Helpers, Mailer, Props, StringHelpers} -import org.apache.commons.lang3.{StringUtils, Validate} - -import scala.collection.immutable.{List, Nil} -import scala.collection.mutable.ArrayBuffer import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.dto.GetProductsParam +import com.openbankproject.commons.model._ +import com.openbankproject.commons.model.enums.{AccountAttributeType, CardAttributeType, ProductAttributeType, StrongCustomerAuthentication} +import com.openbankproject.commons.util.{ApiVersion, ReflectUtils} +import net.liftweb.common.{Box, Empty, Full} +import net.liftweb.http.provider.HTTPParam +import net.liftweb.http.rest.RestHelper import net.liftweb.json -import net.liftweb.json.JsonAST.JValue +import net.liftweb.json._ +import net.liftweb.mapper.By +import net.liftweb.util.Helpers.tryo +import net.liftweb.util.{Helpers, Props, StringHelpers} +import org.apache.commons.lang3.{StringUtils, Validate} +import java.text.SimpleDateFormat +import java.util.UUID +import java.util.regex.Pattern +import scala.collection.immutable.{List, Nil} +import scala.collection.mutable.ArrayBuffer import scala.concurrent.Future -import scala.util.Random trait APIMethods310 { self: RestHelper => @@ -1878,7 +1870,7 @@ trait APIMethods310 { cc => implicit val ec = EndpointContext(Some(cc)) for { (_, callContext) <- anonymousAccess(cc) - connectorVersion = APIUtil.getPropsValue("connector").openOrThrowException("connector props field `connector` not set") + connectorVersion = code.api.Constant.Connector.openOrThrowException("connector props field `connector` not set") starConnectorProps = APIUtil.getPropsValue("starConnector_supported_types").openOr("notfound") //TODO we need to decide what kind of connector should we use. obpApiLoopback = ObpApiLoopback( diff --git a/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala b/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala index fe681955a..be44a7a59 100644 --- a/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala +++ b/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala @@ -26,24 +26,20 @@ */ package code.api.v4_0_0 -import java.text.SimpleDateFormat -import java.util.Date - import code.api.Constant import code.api.attributedefinition.AttributeDefinition -import code.api.util.{APIUtil, CallContext, NewStyle} import code.api.util.APIUtil.{DateWithDay, DateWithSeconds, gitCommit, stringOptionOrNull, stringOrNull} +import code.api.util.{APIUtil, CallContext, NewStyle} import code.api.v1_2_1.JSONFactory.{createAmountOfMoneyJSON, createOwnersJSON} import code.api.v1_2_1.{BankRoutingJsonV121, JSONFactory, UserJSONV121, ViewJSONV121} import code.api.v1_4_0.JSONFactory1_4_0.{LocationJsonV140, MetaJsonV140, TransactionRequestAccountJsonV140, transformToLocationFromV140, transformToMetaFromV140} -import code.api.v2_0_0.JSONFactory200.UserJsonV200 import code.api.v2_0_0.{CreateEntitlementJSON, EntitlementJSONs, JSONFactory200, TransactionRequestChargeJsonV200} -import code.api.v2_1_0.{CounterpartyIdJson, IbanJson, JSONFactory210, PostCounterpartyBespokeJson, ResourceUserJSON, TransactionRequestBodyCounterpartyJSON} +import code.api.v2_1_0._ import code.api.v2_2_0.CounterpartyMetadataJson import code.api.v3_0_0.JSONFactory300._ import code.api.v3_0_0._ import code.api.v3_1_0.JSONFactory310.{createAccountAttributeJson, createProductAttributesJson} -import code.api.v3_1_0.{AccountAttributeResponseJson, CustomerJsonV310, JSONFactory310, PostHistoricalTransactionResponseJson, ProductAttributeResponseWithoutBankIdJson, RedisCallLimitJson} +import code.api.v3_1_0._ import code.apicollection.ApiCollectionTrait import code.apicollectionendpoint.ApiCollectionEndpointTrait import code.atms.Atms.Atm @@ -53,20 +49,18 @@ import code.loginattempts.LoginAttempt import code.model.dataAccess.ResourceUser import code.model.{Consumer, ModeratedBankAccount, ModeratedBankAccountCore} import code.ratelimiting.RateLimiting -import com.openbankproject.commons.model.StandingOrderTrait import code.userlocks.UserLocks import code.users.{UserAgreement, UserAttribute, UserInvitation} import code.views.system.AccountAccess -import code.webhook.{AccountWebhook, BankAccountNotificationWebhookTrait, SystemAccountNotificationWebhookTrait} +import code.webhook.{BankAccountNotificationWebhookTrait, SystemAccountNotificationWebhookTrait} +import com.openbankproject.commons.model._ import com.openbankproject.commons.model.enums.ChallengeType -import com.openbankproject.commons.model.{DirectDebitTrait, ProductFeeTrait, _} import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.{Box, Full} import net.liftweb.json.JValue -import net.liftweb.mapper.By -import scala.collection.immutable.List -import scala.math.BigDecimal +import java.text.SimpleDateFormat +import java.util.Date import scala.util.Try case class CallLimitPostJsonV400( @@ -1113,7 +1107,7 @@ object JSONFactory400 { val organisationWebsiteEnergySource = APIUtil.getPropsValue("energy_source.organisation_website", "") val energySource = new EnergySource400(organisationEnergySource, organisationWebsiteEnergySource) - val connector = APIUtil.getPropsValue("connector").openOrThrowException("no connector set") + val connector = code.api.Constant.Connector.openOrThrowException("no connector set") val resourceDocsRequiresRole = APIUtil.getPropsAsBoolValue("resource_docs_requires_role", false) APIInfoJson400( diff --git a/obp-api/src/main/scala/code/api/v5_0_0/JSONFactory5.0.0.scala b/obp-api/src/main/scala/code/api/v5_0_0/JSONFactory5.0.0.scala index aa85ddc13..ea82d185a 100644 --- a/obp-api/src/main/scala/code/api/v5_0_0/JSONFactory5.0.0.scala +++ b/obp-api/src/main/scala/code/api/v5_0_0/JSONFactory5.0.0.scala @@ -26,9 +26,6 @@ */ package code.api.v5_0_0 -import java.lang -import java.util.Date - import code.api.Constant import code.api.util.APIUtil import code.api.util.APIUtil.{gitCommit, nullToString, stringOptionOrNull, stringOrNull} @@ -38,16 +35,17 @@ import code.api.v1_3_0.{PinResetJSON, ReplacementJSON} import code.api.v1_4_0.JSONFactory1_4_0.{CustomerFaceImageJson, MetaJsonV140} import code.api.v2_1_0.CustomerCreditRatingJSON import code.api.v3_0_0.{CustomerAttributeResponseJsonV300, JSONFactory300} -import code.api.v3_1_0.{AccountBasicV310,PostConsentEntitlementJsonV310} -import code.api.v4_0_0.{APIInfoJson400, BankAttributeBankResponseJsonV400, EnergySource400, HostedAt400, HostedBy400} +import code.api.v3_1_0.{AccountBasicV310, PostConsentEntitlementJsonV310} +import code.api.v4_0_0._ import code.consent.ConsentRequest -import com.openbankproject.commons.model.{CustomerAccountLinkTrait,BankAttributeTrait} -import com.openbankproject.commons.model.{AccountAttribute, AccountRoutingJsonV121, AmountOfMoneyJsonV121, Bank, BankAccount, CardAttribute, CreateViewJson, Customer, CustomerAttribute, InboundAdapterInfoInternal, - InboundStatusMessage, PhysicalCardTrait, UpdateViewJSON, User, UserAuthContext, UserAuthContextUpdate, View, ViewBasic} +import com.openbankproject.commons.model._ import com.openbankproject.commons.util.ApiVersion import net.liftweb.json.JsonAST.JValue import net.liftweb.util.Helpers +import java.lang +import java.util.Date + case class PostBankJson500( id: Option[String], bank_code: String, @@ -560,7 +558,7 @@ object JSONFactory500 { val organisationWebsiteEnergySource = APIUtil.getPropsValue("energy_source.organisation_website", "") val energySource = new EnergySource400(organisationEnergySource, organisationWebsiteEnergySource) - val connector = APIUtil.getPropsValue("connector").openOrThrowException("no connector set") + val connector = code.api.Constant.Connector.openOrThrowException("no connector set") val resourceDocsRequiresRole = APIUtil.getPropsAsBoolValue("resource_docs_requires_role", false) APIInfoJson400( diff --git a/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala b/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala index 8d4980bb2..cbda6263b 100644 --- a/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala +++ b/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala @@ -968,7 +968,7 @@ object JSONFactory510 extends CustomJsonFormats { val organisationWebsiteEnergySource = APIUtil.getPropsValue("energy_source.organisation_website", "") val energySource = EnergySource400(organisationEnergySource, organisationWebsiteEnergySource) - val connector = APIUtil.getPropsValue("connector").openOrThrowException("no connector set") + val connector = code.api.Constant.Connector.openOrThrowException("no connector set") val resourceDocsRequiresRole = APIUtil.getPropsAsBoolValue("resource_docs_requires_role", false) APIInfoJsonV510( diff --git a/obp-api/src/main/scala/code/bankconnectors/Connector.scala b/obp-api/src/main/scala/code/bankconnectors/Connector.scala index d964d726b..2852497d0 100644 --- a/obp-api/src/main/scala/code/bankconnectors/Connector.scala +++ b/obp-api/src/main/scala/code/bankconnectors/Connector.scala @@ -80,7 +80,7 @@ object Connector extends SimpleInjector { val connector = new Inject(buildOne _) {} def buildOne: Connector = { - val connectorProps = APIUtil.getPropsValue("connector").openOrThrowException("connector props field not set") + val connectorProps = code.api.Constant.Connector.openOrThrowException("connector props field not set") getConnectorInstance(connectorProps) } diff --git a/obp-api/src/main/scala/code/loginattempts/LoginAttempts.scala b/obp-api/src/main/scala/code/loginattempts/LoginAttempts.scala index 6774873c0..35236c471 100644 --- a/obp-api/src/main/scala/code/loginattempts/LoginAttempts.scala +++ b/obp-api/src/main/scala/code/loginattempts/LoginAttempts.scala @@ -1,8 +1,7 @@ package code.loginattempts import code.api.util.APIUtil -import code.userlocks.{UserLocks, UserLocksProvider} -import code.users.Users +import code.userlocks.UserLocksProvider import code.util.Helper.MdcLoggable import net.liftweb.common.{Box, Empty, Full} import net.liftweb.mapper.By @@ -10,7 +9,7 @@ import net.liftweb.util.Helpers._ object LoginAttempt extends MdcLoggable { - def maxBadLoginAttempts = APIUtil.getPropsValue("max.bad.login.attempts") openOr "5" + final val maxBadLoginAttempts = APIUtil.getPropsValue("max.bad.login.attempts") openOr "5" def incrementBadLoginAttempts(provider: String, username: String): Unit = { username.isEmpty() match { diff --git a/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala b/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala index 4594c764a..1bebf607e 100644 --- a/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala +++ b/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala @@ -26,17 +26,15 @@ TESOBE (http://www.tesobe.com/) */ package code.model.dataAccess -import java.util.UUID.randomUUID - -import code.api.util.CommonFunctions.validUri import code.UserRefreshes.UserRefreshes import code.accountholders.AccountHolders import code.api.cache.Caching import code.api.dynamic.endpoint.helper.DynamicEndpointHelper import code.api.util.APIUtil._ +import code.api.util.CommonFunctions.validUri import code.api.util.ErrorMessages._ import code.api.util._ -import code.api.{APIFailure, Constant, DirectLogin, GatewayLogin, OAuthHandshake} +import code.api._ import code.bankconnectors.Connector import code.context.UserAuthContextProvider import code.entitlement.Entitlement @@ -46,29 +44,26 @@ import code.token.TokensOpenIDConnect import code.users.{UserAgreementProvider, Users} import code.util.Helper import code.util.Helper.{MdcLoggable, ObpS} +import code.util.HydraUtil._ import code.views.Views +import code.webuiprops.MappedWebUiPropsProvider.getWebUiPropsValue +import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ +import com.tesobe.CacheKeyFromArguments import net.liftweb.common._ +import net.liftweb.http.S.fmapFunc import net.liftweb.http._ import net.liftweb.mapper._ +import net.liftweb.sitemap.Loc.{If, LocParam, Template} import net.liftweb.util.Mailer.{BCC, From, Subject, To} import net.liftweb.util._ - -import scala.collection.immutable.List -import scala.xml.{Elem, NodeSeq, Text} -import com.openbankproject.commons.ExecutionContext.Implicits.global -import code.webuiprops.MappedWebUiPropsProvider.getWebUiPropsValue import org.apache.commons.lang3.StringUtils -import code.util.HydraUtil._ -import com.github.dwickern.macros.NameOf.nameOf -import com.tesobe.CacheKeyFromArguments -import sh.ory.hydra.model.AcceptLoginRequest -import net.liftweb.http.S.fmapFunc -import net.liftweb.sitemap.Loc.{If, LocParam, Template} import sh.ory.hydra.api.AdminApi -import net.liftweb.sitemap.Loc.strToFailMsg +import sh.ory.hydra.model.AcceptLoginRequest +import java.util.UUID.randomUUID import scala.concurrent.Future +import scala.xml.{Elem, NodeSeq, Text} /** * An O-R mapped "User" class that includes first name, last name, password @@ -424,12 +419,12 @@ import net.liftweb.util.Helpers._ /**Marking the locked state to show different error message */ val usernameLockedStateCode = Long.MaxValue - val connector = APIUtil.getPropsValue("connector").openOrThrowException("no connector set") + val connector = code.api.Constant.Connector.openOrThrowException("no connector set") val starConnectorSupportedTypes = APIUtil.getPropsValue("starConnector_supported_types","") override def dbIndexes: List[BaseIndex[AuthUser]] = UniqueIndex(username, provider) ::super.dbIndexes - override def emailFrom = APIUtil.getPropsValue("mail.users.userinfo.sender.address", "sender-not-set") + override def emailFrom = Constant.mailUsersUserinfoSenderAddress override def screenWrap = Full() // define the order fields will appear in forms and output diff --git a/obp-api/src/main/scala/code/transaction/MappedTransaction.scala b/obp-api/src/main/scala/code/transaction/MappedTransaction.scala index 9ad3960f0..899eb1374 100644 --- a/obp-api/src/main/scala/code/transaction/MappedTransaction.scala +++ b/obp-api/src/main/scala/code/transaction/MappedTransaction.scala @@ -216,7 +216,7 @@ class MappedTransaction extends LongKeyedMapper[MappedTransaction] with IdPK wit } def toTransaction : Option[Transaction] = { - APIUtil.getPropsValue("connector") match { + code.api.Constant.Connector match { case Full("akka_vDec2018") => for { acc <- getBankAccountCommon(theBankId, theAccountId, None).map(_._1)