문제

IOSGI 번들에 대한 기본 인증을 설정하는 데 문제가 있습니다.번들은 Apache Karaf에 배포됩니다.여기에서는 내 WSDL에 정책 문이 있습니다 :

<service name="MyService">
    <port name="MyPortTypeBindingPort"
          binding="MyPortTypeBinding">
        <soap:address location="http://localhost:8009/MyEndpoint"/>  
            <wsp:PolicyReference URI="#HttpBasicAuthBindingBindingRealmPolicy"/>
    </port>
</service>

<wsp:Policy wsu:Id="HttpBasicAuthBindingBindingRealmPolicy">
    <mysp:MustSupportBasicAuthentication on="true">
        <mysp:BasicAuthenticationDetail>
            <mysp:Realm realmName="MyRealm"/>
        </mysp:BasicAuthenticationDetail>
    </mysp:MustSupportBasicAuthentication>
</wsp:Policy>
.

문제는 브라우저에서 서비스에 액세스하려고 할 때 다음 오류가 로그 파일에 들어가는 것입니다.

org.apache.cxf.interceptor.Fault: None of the policy alternatives can be satisfied.
    at org.apache.cxf.ws.policy.AbstractPolicyInterceptor.handleMessage(AbstractPolicyInterceptor.java:47)[140:org.apache.cxf.cxf-rt-ws-policy:2.6.0]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[105:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)[105:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:344)[130:org.apache.cxf.cxf-rt-transports-http-jetty:2.6.0]
    at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:310)[130:org.apache.cxf.cxf-rt-transports-http-jetty:2.6.0]
    at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72)[130:org.apache.cxf.cxf-rt-transports-http-jetty:2.6.0]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:943)[85:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:879)[85:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[85:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)[85:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[85:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.Server.handle(Server.java:349)[85:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)[85:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919)[85:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)[81:org.eclipse.jetty.http:7.5.4.v20111024]
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)[81:org.eclipse.jetty.http:7.5.4.v20111024]
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)[85:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)[80:org.eclipse.jetty.io:7.5.4.v20111024]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)[80:org.eclipse.jetty.io:7.5.4.v20111024]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)[79:org.eclipse.jetty.util:7.5.4.v20111024]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)[79:org.eclipse.jetty.util:7.5.4.v20111024]
    at java.lang.Thread.run(Thread.java:662)[:1.6.0_33]
Caused by: org.apache.cxf.ws.policy.PolicyException: None of the policy alternatives can be satisfied.
    at org.apache.cxf.ws.policy.EffectivePolicyImpl.chooseAlternative(EffectivePolicyImpl.java:186)[140:org.apache.cxf.cxf-rt-ws-policy:2.6.0]
    at org.apache.cxf.ws.policy.EffectivePolicyImpl.chooseAlternative(EffectivePolicyImpl.java:179)[140:org.apache.cxf.cxf-rt-ws-policy:2.6.0]
    at org.apache.cxf.ws.policy.EffectivePolicyImpl.initialise(EffectivePolicyImpl.java:113)[140:org.apache.cxf.cxf-rt-ws-policy:2.6.0]
    at org.apache.cxf.ws.policy.PolicyEngineImpl.getEffectiveServerRequestPolicy(PolicyEngineImpl.java:311)[140:org.apache.cxf.cxf-rt-ws-policy:2.6.0]
    at org.apache.cxf.ws.policy.EndpointPolicyImpl.initializeInterceptors(EndpointPolicyImpl.java:295)[140:org.apache.cxf.cxf-rt-ws-policy:2.6.0]
    at org.apache.cxf.ws.policy.EndpointPolicyImpl.getInterceptors(EndpointPolicyImpl.java:126)[140:org.apache.cxf.cxf-rt-ws-policy:2.6.0]
    at org.apache.cxf.ws.policy.PolicyInInterceptor.handle(PolicyInInterceptor.java:119)[140:org.apache.cxf.cxf-rt-ws-policy:2.6.0]
    at org.apache.cxf.ws.policy.AbstractPolicyInterceptor.handleMessage(AbstractPolicyInterceptor.java:45)[140:org.apache.cxf.cxf-rt-ws-policy:2.6.0]
    ... 21 more
.

나는 인터넷을 찾고 있고 해결책을 찾을 수 없습니다.어쩌면 누군가가 틀릴지 알지 못할 것입니까?

나는 사용 중입니다 :

Apache Karaf 2.2.8
CXF 2.6.1
JDK 1.6
.

도움이 되었습니까?

해결책

정책 핸들러를 등록했으며 MySP : MastSupportBasichentication 정책을 처리 할 것입니다.이는 비표준 정책 주장이 아니며 선택적으로 표시되지 않으므로 CXF는 무엇을 해야할지 모릅니다.

나는 그게 glassfish 정책이라고 가정하고있다?실제로 확실하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top