OpenBankProject / OpenBankProject/OBP-API

Not able to Grant User Access to View

Open
#1,579 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
1.7k
Forks
482
Avg merge
1d 12h
Merged PRs (30d)
15

Description

Hi,
We created user in OBP using super user. Now we wanted to give owner view to this user(which map to CBS user using auth-context) to bank account in CBS so that it can access to account details(i.e {{URL}}/obp/v3.1.0/my/banks/gh.29.uk.x/accounts/obpuser1account1/account)

Request:

{{URL}}/obp/v3.1.0/banks/gh.29.uk.x/accounts/obp1account1/permissions/http%3A%2F%2F127.0.0.1%3A8080/obpuser1/views/owner
Authorization: DirectLogin token=xxxx super user token xxxxx
{
    "jsonString": "{}"
}

default.props
.....
connector=kafka_vSept2018
....

But we are getting below error & I found reason that method call from APIMethods121.scala -> addPermissionForUserForBankAccountForOneView -> BankAccountX without callcontext
Please help to solve.

{
  "code": 500,
  "message": "OBP-50015: The server encountered an unexpected condition which prevented it from fulfilling the request. Message: net.liftweb.common.Failure$$anon$1: An Failure Box was opened.  Failure Message: OBP-50012: Can not get the CallContext object here.. inside the getAuthInfo method .  The justification for allowing the openOrThrowException was OBP-50012: Can not get the CallContext object here.net.liftweb.common.Failure.openOrThrowException(Box.scala:943) net.liftweb.common.Failure.openOrThrowException(Box.scala:939) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018.$anonfun$getBankAccount$2(KafkaMappedConnector_vSept2018.scala:560) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018$$Lambda$2051/653174611.apply(Unknown Source) code.api.cache.Caching$.memoizeSyncWithProvider(Caching.scala:15) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018.$anonfun$getBankAccount$1(KafkaMappedConnector_vSept2018.scala:557) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018$$Lambda$2050/1350541337.apply(Unknown Source) code.api.util.APIUtil$.saveConnectorMetric(APIUtil.scala:1831) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018.getBankAccount(KafkaMappedConnector_vSept2018.scala:579) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018.getBankAccount$(KafkaMappedConnector_vSept2018.scala:548) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018$.getBankAccount(KafkaMappedConnector_vSept2018.scala:3893) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018.$anonfun$getBankAccountLegacy$1(KafkaMappedConnector_vSept2018.scala:545) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018$$Lambda$2049/1188129246.apply(Unknown Source) code.api.util.APIUtil$.saveConnectorMetric(APIUtil.scala:1831) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018.getBankAccountLegacy(KafkaMappedConnector_vSept2018.scala:546) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018.getBankAccountLegacy$(KafkaMappedConnector_vSept2018.scala:544) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018$.getBankAccountLegacy(KafkaMappedConnector_vSept2018.scala:3893) code.bankconnectors.Connector.getBankAccount(Connector.scala:340) code.bankconnectors.Connector.getBankAccount$(Connector.scala:339) code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018$.getBankAccount(KafkaMappedConnector_vSept2018.scala:3893) code.model.BankAccountX$.apply(BankingData.scala:487) code.api.v1_2_1.APIMethods121$$anon$1$$anonfun$addPermissionForUserForBankAccountForOneView$lzycompute$1.$anonfun$applyOrElse$138(APIMethods121.scala:852) code.api.v1_2_1.APIMethods121$$anon$1$$anonfun$addPermissionForUserForBankAccountForOneView$lzycompute$1$$Lambda$1731/140954852.apply(Unknown Source) net.liftweb.common.Full.flatMap(Box.scala:858) code.api.v1_2_1.APIMethods121$$anon$1$$anonfun$addPermissionForUserForBankAccountForOneView$lzycompute$1.$anonfun$applyOrElse$136(APIMethods121.scala:851) code.api.v1_2_1.APIMethods121$$anon$1$$anonfun$addPermissionForUserForBankAccountForOneView$lzycompute$1$$Lambda$1662/1264100331.apply(Unknown Source) code.api.OBPRestHelper$RichStringList$$anon$2.$anonfun$apply$1(OBPRestHelper.scala:371) code.api.OBPRestHelper$RichStringList$$anon$2$$Lambda$1663/1032570137.apply(Unknown Source) code.api.OBPRestHelper.failIfBadAuthorizationHeader(OBPRestHelper.scala:300) code.api.OBPRestHelper.failIfBadAuthorizationHeader$(OBPRestHelper.scala:247) code.api.v3_1_0.OBPAPI3_1_0$.failIfBadAuthorizationHeader(OBPAPI3_1_0.scala:51) code.api.OBPRestHelper$$anon$3.apply(OBPRestHelper.scala:403) code.api.OBPRestHelper$$anon$3.apply(OBPRestHelper.scala:395) code.api.OBPRestHelper$$anon$4.apply(OBPRestHelper.scala:432) code.api.OBPRestHelper$$anon$4.apply(OBPRestHelper.scala:429) net.liftweb.http.rest.RestHelper.apply(RestHelper.scala:573) net.liftweb.http.rest.RestHelper.apply$(RestHelper.scala:572) code.api.v3_1_0.OBPAPI3_1_0$.apply(OBPAPI3_1_0.scala:51) code.api.v3_1_0.OBPAPI3_1_0$.apply(OBPAPI3_1_0.scala:51) net.liftweb.util.NamedPF$.$anonfun$applyBox$1(NamedPartialFunction.scala:97) net.liftweb.util.NamedPF$$$Lambda$1514/913505997.apply(Unknown Source) net.liftweb.common.Full.map(Box.scala:856) net.liftweb.util.NamedPF$.applyBox(NamedPartialFunction.scala:97) net.liftweb.http.LiftServlet$StatelessResponse$.$anonfun$process$1(LiftServlet.scala:357) net.liftweb.http.LiftServlet$StatelessResponse$$$Lambda$1546/1492850715.apply$mcZ$sp(Unknown Source) scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23) net.liftweb.http.S.wrapQuery(S.scala:1577) net.liftweb.http.S.$anonfun$_nest2InnerInit$2(S.scala:1744) net.liftweb.http.S$$Lambda$1613/590077456.apply(Unknown Source) net.liftweb.http.S.doAround(S.scala:1506) net.liftweb.http.S.$anonfun$doAround$1(S.scala:1507) net.liftweb.http.S$$Lambda$1614/983780051.apply(Unknown Source) net.liftweb.db.DB$$anon$2.recurseMe$1(DB.scala:235) net.liftweb.db.DB$$anon$2.$anonfun$apply$2(DB.scala:251) net.liftweb.db.DB$$anon$2$$Lambda$1616/1001839910.apply(Unknown Source) net.liftweb.db.DB.$anonfun$use$1(DB.scala:684) net.liftweb.db.DB$$Lambda$430/1714007305.apply(Unknown Source) net.liftweb.util.DynoVar.run(ThreadGlobal.scala:95) net.liftweb.util.DynoVar.run$(ThreadGlobal.scala:91) net.liftweb.db.DB$currentConn$.run(DB.scala:669) net.liftweb.db.DB.use(DB.scala:681) net.liftweb.db.DB.use$(DB.scala:679) net.liftweb.db.DB$$anon$1.use(DB.scala:40) net.liftweb.db.DB$$anon$2.recurseMe$1(DB.scala:251) net.liftweb.db.DB$$anon$2.$anonfun$apply$1(DB.scala:253) net.liftweb.db.DB$$anon$2$$Lambda$1615/1901611382.apply(Unknown Source) net.liftweb.util.DynoVar.run(ThreadGlobal.scala:95) net.liftweb.util.DynoVar.run$(ThreadGlobal.scala:91) net.liftweb.db.DB$$anon$2$DepthCnt$.run(DB.scala:224) net.liftweb.db.DB$$anon$2.apply(DB.scala:227) net.liftweb.http.S.doAround(S.scala:1507) net.liftweb.http.S.$anonfun$_nest2InnerInit$1(S.scala:1732) net.liftweb.http.S$$Lambda$1612/8312380.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S._nest2InnerInit(S.scala:1731) net.liftweb.http.S.$anonfun$_innerInit$5(S.scala:1777) net.liftweb.http.S$$Lambda$1606/431304832.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S.$anonfun$withReq$2(S.scala:1788) net.liftweb.http.S$$Lambda$1608/274128621.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S.withReq(S.scala:1787) net.liftweb.http.S.withReq$(S.scala:1785) net.liftweb.http.S$.withReq(S.scala:46) net.liftweb.http.S.$anonfun$_innerInit$4(S.scala:1772) net.liftweb.http.S$$Lambda$1604/2117631797.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S.$anonfun$_innerInit$3(S.scala:1770) net.liftweb.http.S$$Lambda$1603/482680281.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S.$anonfun$_innerInit$2(S.scala:1770) net.liftweb.http.S$$Lambda$1602/464491584.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S.$anonfun$_innerInit$1(S.scala:1769) net.liftweb.http.S$$Lambda$1601/1256804828.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S._innerInit(S.scala:1768) net.liftweb.http.S.$anonfun$_init$7(S.scala:1810) net.liftweb.http.S$$Lambda$1562/1979742437.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S.$anonfun$_init$6(S.scala:1808) net.liftweb.http.S$$Lambda$1555/1609112952.apply(Unknown Source) net.liftweb.http.CoreRequestVarHandler.apply(Vars.scala:606) net.liftweb.http.CoreRequestVarHandler.apply$(Vars.scala:592) net.liftweb.http.RequestVarHandler$.apply(Vars.scala:508) net.liftweb.http.S.$anonfun$_init$5(S.scala:1808) net.liftweb.http.S$$Lambda$1552/1977971625.apply(Unknown Source) net.liftweb.http.CoreRequestVarHandler.apply(Vars.scala:606) net.liftweb.http.CoreRequestVarHandler.apply$(Vars.scala:592) net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:521) net.liftweb.http.S.$anonfun$_init$4(S.scala:1807) net.liftweb.http.S$$Lambda$1551/306900257.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S.$anonfun$_init$3(S.scala:1806) net.liftweb.http.S$$Lambda$1550/708510517.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S.$anonfun$_init$2(S.scala:1805) net.liftweb.http.S$$Lambda$1549/176593501.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.S._init(S.scala:1804) net.liftweb.http.S.statelessInit(S.scala:1399) net.liftweb.http.S.statelessInit$(S.scala:1386) net.liftweb.http.S$.statelessInit(S.scala:46) net.liftweb.http.LiftServlet$StatelessResponse$.process(LiftServlet.scala:354) net.liftweb.http.LiftServlet.stepThroughPipeline$1(LiftServlet.scala:427) net.liftweb.http.LiftServlet.doService(LiftServlet.scala:435) net.liftweb.http.LiftServlet.$anonfun$service$2(LiftServlet.scala:162) net.liftweb.http.LiftServlet.$anonfun$service$2$adapted(LiftServlet.scala:162) net.liftweb.http.LiftServlet$$Lambda$1537/585800780.apply(Unknown Source) net.liftweb.http.StandardServiceTimer$.$anonfun$logTime$1(ServiceRequestTimer.scala:19) net.liftweb.http.StandardServiceTimer$$$Lambda$1538/1703968735.apply(Unknown Source) net.liftweb.util.TimeHelpers.calcTime(TimeHelpers.scala:427) net.liftweb.util.TimeHelpers.calcTime$(TimeHelpers.scala:425) net.liftweb.util.Helpers$.calcTime(Helpers.scala:34) net.liftweb.util.TimeHelpers.logTime(TimeHelpers.scala:446) net.liftweb.util.TimeHelpers.logTime$(TimeHelpers.scala:445) net.liftweb.util.Helpers$.logTime(Helpers.scala:34) net.liftweb.http.StandardServiceTimer$.logTime(ServiceRequestTimer.scala:18) net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:162) net.liftweb.http.LiftServlet.service(LiftServlet.scala:166) net.liftweb.http.provider.HTTPProvider.$anonfun$service$7(HTTPProvider.scala:72) net.liftweb.http.provider.HTTPProvider$$Lambda$1524/691859974.apply$mcV$sp(Unknown Source) scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.URLRewriter$.doWith(Req.scala:1357) net.liftweb.http.provider.HTTPProvider.$anonfun$service$4(HTTPProvider.scala:71) net.liftweb.http.provider.HTTPProvider$$Lambda$1522/1898857013.apply$mcV$sp(Unknown Source) scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.provider.HTTPProvider.$anonfun$service$3(HTTPProvider.scala:70) net.liftweb.http.provider.HTTPProvider$$Lambda$1507/1847145861.apply$mcV$sp(Unknown Source) scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.provider.HTTPProvider.service(HTTPProvider.scala:60) net.liftweb.http.provider.HTTPProvider.service$(HTTPProvider.scala:55) net.liftweb.http.LiftFilter.service(LiftServlet.scala:1063) net.liftweb.http.provider.servlet.ServletFilterProvider.$anonfun$doFilter$3(ServletFilterProvider.scala:83) net.liftweb.http.provider.servlet.ServletFilterProvider$$Lambda$1503/1333571978.apply$mcV$sp(Unknown Source) scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) net.liftweb.http.provider.servlet.ServletFilterProvider.handleLoan$1(ServletFilterProvider.scala:59) net.liftweb.http.provider.servlet.ServletFilterProvider.handleLoanWrappers(ServletFilterProvider.scala:63) net.liftweb.http.provider.servlet.ServletFilterProvider.$anonfun$doFilter$2(ServletFilterProvider.scala:82) net.liftweb.http.provider.servlet.ServletFilterProvider$$Lambda$1502/1338498402.apply$mcV$sp(Unknown Source) scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$6(Vars.scala:612) net.liftweb.http.CoreRequestVarHandler$$Lambda$1501/1159495292.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$5(Vars.scala:611) net.liftweb.http.CoreRequestVarHandler$$Lambda$1500/1279349767.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$4(Vars.scala:611) net.liftweb.http.CoreRequestVarHandler$$Lambda$1499/1416093084.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$3(Vars.scala:610) net.liftweb.http.CoreRequestVarHandler$$Lambda$1498/877122263.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.CoreRequestVarHandler.apply(Vars.scala:609) net.liftweb.http.CoreRequestVarHandler.apply$(Vars.scala:592) net.liftweb.http.RequestVarHandler$.apply(Vars.scala:508) net.liftweb.http.provider.servlet.ServletFilterProvider.$anonfun$doFilter$1(ServletFilterProvider.scala:77) net.liftweb.http.provider.servlet.ServletFilterProvider$$Lambda$1497/1332266900.apply$mcV$sp(Unknown Source) scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$6(Vars.scala:612) net.liftweb.http.CoreRequestVarHandler$$Lambda$1501/1159495292.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$5(Vars.scala:611) net.liftweb.http.CoreRequestVarHandler$$Lambda$1500/1279349767.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$4(Vars.scala:611) net.liftweb.http.CoreRequestVarHandler$$Lambda$1499/1416093084.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.CoreRequestVarHandler.$anonfun$apply$3(Vars.scala:610) net.liftweb.http.CoreRequestVarHandler$$Lambda$1498/877122263.apply(Unknown Source) net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71) net.liftweb.http.CoreRequestVarHandler.apply(Vars.scala:609) net.liftweb.http.CoreRequestVarHandler.apply$(Vars.scala:592) net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:521) net.liftweb.http.provider.servlet.ServletFilterProvider.doFilter(ServletFilterProvider.scala:75) net.liftweb.http.provider.servlet.ServletFilterProvider.doFilter$(ServletFilterProvider.scala:69) net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:1063) org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) org.eclipse.jetty.server.Server.handle(Server.java:503) org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) java.lang.Thread.run(Thread.java:745)"

}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at addPermissionForUserForBankAccountForOneView in code/api/v1_2_1/APIMethods121.scala around line 852, then trace BankAccountX in code/model/BankingData.scala and getBankAccount in KafkaMappedConnector_vSept2018.scala around lines 545-579. Check how the CallContext reaches getAuthInfo during the permission request. Done means the request grants the owner view without the OBP-50012 error and the user can access the account details.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.