Jboss EAP 7を使用してコード・ファースト・ウェブ・サービスを作成しています。ユーザー名トークンの検証にWS-Securityを実装する必要があります。これはApache CXFポリシーを使用しています。契約初の視点ですべてを動かすことができるようになりました。そして、今、私がそれをコードファーストの観点として機能させるために必要なのは、生成されたwsdlにポリシーを含めることだけです。そのためには、@org .apache.cxf.annotations.Policyただし、ポリシーのコードスニペットはJbossから最後に生成されたwsdlに追加されません。ここApache CXF @Policy WSDLに含まれていない
は私のコードです:ここ
...
@WebService(serviceName = "ExampleService", portName = "ExampleService",
endpointInterface = "com.company.webservice.ExampleService",
targetNamespace = "https://service.company.com/company-ws/ExampleService")
@EndpointConfig(configFile = "WEB-INF/jaxws-endpoint-config.xml",
configName = "Custom WS-Security Endpoint")
@Policy(uri = "WEB-INF/company-username-token-policy.xml")
public class ExampleServiceImpl implements ExampleService { ...
は私のJBoss-展開するstructure.xmlは、これらのエントリを持っているWEB-INF /会社名・トークンのpolicy.xml
<?xml version="1.0" encoding="UTF-8" ?>
<wsp:Policy wsu:Id="UsernameTokenPolicy" xmlns:wsp="http://www.w3.org/ns/ws-policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsp:ExactlyOne>
<wsp:All>
<sp:SupportingTokens
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<wsp:Policy>
<sp:UsernameToken
sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssUsernameToken11 />
</wsp:Policy>
</sp:UsernameToken>
</wsp:Policy>
</sp:SupportingTokens>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
です既に:
<module name="org.apache.ws.security" export="true" />
<module name="org.apache.cxf" export="true" />
<module name="org.apache.cxf.impl" export="true" />
ここでは何が欠けていますか?問題を考え出し