OAUth2.0:WSO2身份服务器作为wso2 API Manager

时间:2017-03-10 06:55:51

标签: api authentication wso2 wso2is wso2-am

我在WSO2 API管理器中使用WSO2 Identity Server作为密钥管理器。我正在使用OASO2.0流程创建带有WSO2 API管理器的示例游乐场应用程序。我在API存储中添加了新应用程序并生成了消费者密钥和消费者密钥。

步骤进行:

  1. 运行Sample playground app -localhost:8080 / playground2 Playground app home page

  2. 点击图片,我们将转到oauth2.jsp页面

  3. 这里我们要填写:

     response_type = code
     client_id = VALUE_OF_CONSUMER_KEY
     redirect_uri = REDIRECT_URL_OF_THE_APPLICATION
     scope = SCOPE_OF_THE_ACCESS_REQUEST
    

    Authorize

    1. 单击“授权”按钮应用程序(客户端)通过发送带有以下查询参数的HTTP GET请求,从授权服务器(WSO2身份服务器)请求授权代码。

       response_type = code
      
       client_id = VALUE_OF_CONSUMER_KEY
      
       redirect_uri = REDIRECT_URL_OF_THE_APPLICATION
      
       scope = SCOPE_OF_THE_ACCESS_REQUEST
      
    2. 并显示同意页面 Consent page

      1. 当我们点击批准时,它会重定向到wso2登录页面 Login page

      2. 输入凭据后,会出现以下错误:AfterLogin Error

        HTTP Status 500 - org.apache.cxf.interceptor.Fault
        
        type Exception report
        
        message org.apache.cxf.interceptor.Fault
        
        description The server encountered an internal error that prevented it from fulfilling this request.
        
      3. 例外

        java.lang.RuntimeException: org.apache.cxf.interceptor.Fault
            org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116)
            org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:336)
            org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
            org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249)
            org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
            org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
            org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
            org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
            org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:289)
            org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:209)
            javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
            org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:265)
            org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
            org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120)
        root cause
        
        org.apache.cxf.interceptor.Fault
            org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:170)
            org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:136)
            org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:204)
            org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:101)
            org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
            org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94)
            org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
            org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
            org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249)
            org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
            org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
            org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
            org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
            org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:289)
            org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:209)
            javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
            org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:265)
            org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
            org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120)
        root cause
        
        java.lang.NullPointerException
            org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorize(OAuth2AuthzEndpoint.java:251)
            org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.sendRequestToFramework(OAuth2AuthzEndpoint.java:1163)
            org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorize(OAuth2AuthzEndpoint.java:135)
            org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorizePost(OAuth2AuthzEndpoint.java:574)
            sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            java.lang.reflect.Method.invoke(Method.java:498)
            org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:188)
            org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:104)
            org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:204)
            org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:101)
            org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
            org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94)
            org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
            org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
            org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249)
            org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
            org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
            org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
            org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
            org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:289)
            org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:209)
            javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
            org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:265)
            org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
            org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120)
        note The full stack trace of the root cause is available in the Apache Tomcat/7.0.73 logs.
        
        Apache Tomcat/7.0.73
        
        1. 在API Manager控制台中,它出现以下错误:
        2. ERROR - AMDefaultKeyManagerImpl Can not retrieve OAuth application for the given consumer key : PBMTE1piS4sKNdn2HdsJAbMeCQga
              org.apache.axis2.AxisFault: Access Denied. Authentication failed - System error occurred. Please check server logs for more details.
                      at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)
          

          II。

          [2017-03-10 11:48:21,226] ERROR - item-info:jag org.wso2.carbon.apimgt.api.APIManagementException: Can not retrieve OAuth application for the given consumer key : PBMTE1piS4sKNdn2HdsJAbMeCQga
          [2017-03-10 11:48:49,063]  WARN - APIAuthenticationHandler API authentication failure due to Unclassified Authentication Failure
          [2017-03-10 11:49:02,990]  INFO - TimeoutHandler This engine will expire all callbacks after GLOBAL_TIMEOUT: 120 seconds, irrespective of the timeout action, after the specified or optional timeout
          [2017-03-10 11:49:30,889]  INFO - DependencyTracker Local entry : gov:/apimgt/statistics/ga-config.xml was added to the Synapse configuration successfully
          [2017-03-10 11:49:31,028]  INFO - JMSConnectionFactory JMS ConnectionFactory : jmsEventPublisher initialized
          [2017-03-10 11:49:32,336]  INFO - AMQConnection Unable to connect to broker at tcp://localhost:5672
          org.wso2.andes.transport.TransportException: Could not open connection
                  at org.wso2.andes.transport.network.mina.MinaNetworkTransport$IoConnectorCreator.connect(MinaNetworkTransport.java:216)
                  at org.wso2.andes.transport.network.mina.MinaNetworkTransport.connect(MinaNetworkTransport.java:74)
                  at org.wso2.andes.client.AMQConnectionDelegate_8_0.makeBrokerConnection(AMQConnectionDelegate_8_0.java:130)
                  at org.wso2.andes.client.AMQConnection$2.run(AMQConnection.java:631)
                  at org.wso2.andes.client.AMQConnection$2.run(AMQConnection.java:628)
                  at java.security.AccessController.doPrivileged(Native Method)
                  at org.wso2.andes.client.AMQConnection.makeBrokerConnection(AMQConnection.java:628)
                  at org.wso2.andes.client.AMQConnection.<init>(AMQConnection.java:409)
                  at org.wso2.andes.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:351)
          

          III。

          org.wso2.andes.AMQConnectionFailureException: Could not open connection
                  at org.wso2.andes.client.AMQConnection.<init>(AMQConnection.java:486)
                  at org.wso2.andes.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:351)
          

          IV

           Caused by: org.wso2.andes.transport.TransportException: Could not open connection
                  at org.wso2.andes.transport.network.mina.MinaNetworkTransport$IoConnectorCreator.connect(MinaNetworkTransport.java:216)
                  at org.wso2.andes.transport.network.mina.MinaNetworkTransport.connect(MinaNetworkTransport.java:74)
          

          [2017-03-10 11:49:32,345] ERROR - JMSConnectionFactory Error acquiring a Connection from the JMS CF : jmsEventPublisher using properties : {transport.jms.ConcurrentPublishers=allow, java.naming.provider.url=repository/conf/jndi.properties, java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory, transport.jms.DestinationType=topic, transport.jms.ConnectionFactoryJNDIName=TopicConnectionFactory, transport.jms.Destination=throttleData}
          javax.jms.JMSException: Error creating connection: Could not open connection
                  at org.wso2.andes.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:361)
                  at org.wso2.andes.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:40)
          

          VI。

          [2017-03-10 11:49:32,350] ERROR - JMSConnectionFactory Error acquiring a Connection from the JMS CF : jmsEventPublisher using properties : {transport.jms.ConcurrentPublishers=allow, java.naming.provider.url=repository/conf/jndi.properties, java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory, transport.jms.DestinationType=topic, transport.jms.ConnectionFactoryJNDIName=TopicConnectionFactory, transport.jms.Destination=throttleData}
          org.wso2.carbon.event.output.adapter.core.exception.OutputEventAdapterRuntimeException: Error acquiring a Connection from the JMS CF : jmsEventPublisher using properties : {transport.jms.ConcurrentPublishers=allow, java.naming.provider.url=repository/conf/jndi.properties, java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory, transport.jms.DestinationType=topic, transport.jms.ConnectionFactoryJNDIName=TopicConnectionFactory, transport.jms.Destination=throttleData}
                  at org.wso2.carbon.event.output.adapter.jms.internal.util.JMSConnectionFactory.handleException(JMSConnectionFactory.java:197)
          

          请帮我解决这个问题。

0 个答案:

没有答案