首页 文章

WSO2 API Manager使用Identity Server存储访问权限

提问于
浏览
2

我使用How To Setup a WSO2 API Manager Store Login with Google文章为WSO2 API Manager Store配置Google登录的可能性,但我遇到了问题 .

它似乎一切正常,但我无法通过Google登录Store .

  • 用户通过配置自动创建 .

  • 点击登录后,我猜用户正在登录自动存储和注销,可能是因为没有权限/角色登录或其他 .

如何在Google点击登录后自动为用户创建分配一些权限/角色?

也许问题出在其他方面?

编辑:

  • 登录API Manager:

TID:[ - 1234] [] [2016-11-09 12:57:52,746] WARN - maxIdle大于maxActive,将maxIdle设置为:40 {org . apache.tomcat.jdbc.pool.ConnectionPool} TID:[ - 1234] [] [2016-11-09 12:57:53,486] WARN - maxIdle大于maxActive ,将maxIdle设置为:40 TID:[ - 1234] [] [2016-11-09 12:57:58,650] WARN - maxIdle大于maxActive,将maxIdle设置为:40 TID:[ - 1234] [] [2016-11-09 12:58:23,672] ERROR - 更新租户的权限缓存时出错:-1 java.lang.NullPointerException at org.wso2.carbon.registry.core.jdbc.realm.RegistryRealm.getRealm(RegistryRealm.java:148)org.wso2.carbon.core.internal.permission.u pdg.PermissionUpdater.getAuthzManager(PermissionUpdater.java:90)位于org.wso2.carbon.core.util.PermissionUpdateUtil的org.wso2.carbon.core.internal.permission.update.PermissionUpdater.update(PermissionUpdater.java:60) . updatePermissionTree(PermissionUpdateUtil.java:46)atg.wso2.carbon.apimgt.hostobjects.APIStoreHostObject.jsFunction_updatePermissionCache(APIStoreHostObject.java:743)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:483)org.mozilla.javascript.MemberBox.invoke(MemberBox) .java:126)org.mozilla.javascript.FunctionObject.call(FunctionObject.java:386)位于org.jaggeryjs.rhino.store的org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32) . 在org.jaggeryjs.rhi上的modules.api.c2._c_anonymous_3(/store/modules/api/permissions.jag:63)位于org.mozilla.javascript.BaseFunction.execIdCall的org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)的no.store.modules.api.c2.call(/store/modules/api/permissions.jag) (BaseFunction.java:269)org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)位于org.jaggeryjs.rhino的org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) . store.modules.api.c0._c_anonymous_14(/store/modules/api/module.jag:48)at org.jaggeryjs.rhino.store.modules.api.c0.call(/store/modules/api/module.jag )org.jzgeryjs上的org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)org.jaggeryjs.rhino.store.jagg.c1._c_anonymous_1(/store/jagg/jaggery_acs.jag:89) .rhino.store.jagg.c1.call(/store/jagg/jaggery_acs.jag)位于org.jaggeryjs.rhino.store.jagg的org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23) . org.mozil的org.jaggeryjs.rhino.store.jagg.c1.call(/store/jagg/jaggery_acs.jag)中的c1._c_script_0(/store/jagg/jaggery_acs.jag:5) la.javascript.ContextFactory.doTopCall(ContextFactory.java:394)位于org.jaggeryjs.rhino.store.jagg.c1.call(/ store / jagg)的org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091) /jaggery_acs.jag)org.jaggeryjs.rhino.store.jagg.c1.exec(/store/jagg/jaggery_acs.jag)org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567)at org org.jaggeryjs.jaggeryjs.jaggery . .execute(WebAppManager.java:508)位于javax.servlet的javax.servlet.http.HttpServlet.service(HttpServlet.java:650)的org.jaggeryjs.jaggery.core.JaggeryServlet.doPost(JaggeryServlet.java:29) . http.HttpServlet.service(HttpServlet.java:731)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)在org.apache.catalina.core.ApplicationDispatcher.invoke( ApplicationDispatcher.java:747)org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:485)org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:377)atg.apache.catalina .core.ApplicationDispatcher.forward(ApplicationDispatcher.java:337)在org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241 )在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)在org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120)在org.apache.catalina.core.ApplicationFilterChain . internalDoFilter(应用程序licationFilterChain.java:241)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)在org.apache.catalina .core.StandardContextValve.invoke(StandardContextValve.java:122)在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169 )org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)at org.wso2.carbon . 位于org.wso2.carbon.event.receiver.core的org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)中的tomcat.ext.valves.CarbonTomcatValve $ 1.invoke(CarbonTomcatValve.java:47) .internal.tenantmgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:48)at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer .invokeValves(TomcatValveContainer.java:47)org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve .java:159)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)at org . apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor . java:1078)org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:625)atg.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1749)at org.apache java.util.concurrent.ThreadPoolExecutor中的.tomcat.util.net.NioEndpoint $ SocketProcessor.run(NioEndpoint.java:1708) . runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)at org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)在java.lang.Thread.run(Thread.java:745)TID:[ - 1234] [] [2016-11-09 12:58:24,029] INFO - invalidate:会话已经失效 TID:[ - 1234] [] [2016-11-09 12:58:31,931] WARN {org.apache.tomcat.jdbc.pool . ConnectionPool} - maxIdle大于maxActive,将maxIdle设置为:40 TID:[ - 1234] [] [2016-11-09 12:58:34,634] WARN - maxIdle大于maxActive,将maxIdle设置为:40

  • 登录Identity Server:

TID:[ - 1234] [] [2016-11-09 12:57:42,762] WARN - maxIdle大于maxActive,将maxIdle设置为:40 TID:[ -1234] [] [2016-11-09 12:58:04,670] INFO 会话持久消费者的线程池大小:100 TID:[ - 1234] [] [2016-11-09 12:58:04,986] INFO 策略存储的初始化开始于:Wed Nov 09 12:58:04 CET 2016 TID: [-1234] [] [2016-11-09 12:58:04,993]信息使用配置文件中定义的全局策略组合算法 . TID:[ - 1234] [] [2016-11-09 12:58:04,993] INFO 开始从org.wso2.carbon.identity检索策略 . entitlement.policy.store.RegistryPolicyStoreManageModule@2f8601e6 at:Wed Nov 09 12:58:04 CET 2016 TID:[ - 1234] [] [2016-11-09 12:58:04,995] INFO 完成从org.wso2.carbon.identity.entitlement.policy.store.RegistryPolicyStoreManageModule@2f8601e6检索政策时间:星期三09月12日12:58:04 CET 2016 TID:[ - 1234] [] [2016-11-09 12:58:04,996] INFO 政策商店的初始化完成于:Wed Nov 09 12:58:04 CET 2016 TID: [-1234] [] [2016-11-09 12:58:05,035] INFO 政策商店的初始化开始于:Wed Nov 09 12:58 :05 CET 2016 TID:[ - 1234] [] [2016-11-09 12:58:05,036] INFO 使用配置文件中定义的全局策略组合算法 . TID:[ - 1234] [] [2016-11-09 12:58:05,037] INFO 开始从org.wso2.carbon.identity检索策略 . entitlement.policy.store.RegistryPolicyStoreManageModule@2f8601e6 at:Wed Nov 09 12:58:05 CET 2016 TID:[ - 1234] [] [2016-11-09 12:58:05,039] INFO 完成从org.wso2.carbon.identity.entitlement.policy.store.RegistryPolicyStoreManageModule@2f8601e6检索政策时间:星期三09月12日12:58:05 CET 2016 TID:[ - 1234] [] [2016-11-09 12:58:05,039] INFO 政策商店的初始化完成于:Wed Nov 09 12:58:05 CET 2016 TID: [-1234] [] [2016-11-09 12:58:22,983] INFO - 为租户更新权限缓存-1234

  • 我的服务提供商和身份提供商的配置如下:

Service Provider 1

Service Provider 2

Service Provider 3

Identity Provider 1

Identity Provider 2

1 回答

  • 0

    故事的结尾:

    我应该使用文章Setting up PostgreSQL特别是 Changing the default WSO2_CARBON_DB datasource 将默认数据库更改为API管理器和Identity Server中的PostgreSQL数据库,并使用 -Dserver 选项 [For Windows: <PRODUCT_HOME>/bin/wso2server.bat -Dsetup] 运行服务器 .

    在所有配置之后,我将权限 API/SubscribeLogin 添加到 Internal/everyone 角色 .

    Bhathiya,谢谢你的帮助 . :)

相关问题