David, Jonathan,
I had a look on the trunk and saw nothing about WS-Security.
I attached a patch file to OPENEJB-1004.
@David: I took into account your changes to avoid NPE.
@Jon: Maven (thought pom.xml file) creates public/private keys and
associated keystores to enable test cases.
Any input is welcome.
Hope to submit a first draft to describe this feature this evening.
I changed a little the JaxWsUtils (see patch file) to be more compliant with
the specification.
Index:
container/openejb-core/src/main/java/org/apache/openejb/core/webservices/JaxWsUtils.java
===================================================================
---
container/openejb-core/src/main/java/org/apache/openejb/core/webservices/JaxWsUtils.java
(revision 756243)
+++
container/openejb-core/src/main/java/org/apache/openejb/core/webservices/JaxWsUtils.java
(working copy)
@@ -47,7 +47,7 @@
if (webService != null) {
String localName = webService.name();
if (localName == null || localName.length() == 0) {
- localName = seiClass.getName();
+ localName = seiClass.getSimpleName();
}
String namespace = webService.targetNamespace();
return new QName(getNamespace(seiClass, namespace), localName);
Finally, tests have been made using CXF 2.0.9 which is much more stable and
functional.
So, to create a web service stub, Service.create now requires a QName. So
don't be afraid if the simple-webservice and webservice-security tests fail.
You can change
Service calcService = Service.create(new
URL("http://127.0.0.1:4204/CalculatorImpl?wsdl"), null);
To
Service calcService = Service.create(
new URL("http://127.0.0.1:4204/CalculatorImpl?wsdl"),
new QName("http://superbiz.org/wsdl", "CalculatorWsService"));
OPENEJB-977 is about moving from 2.0.4-incubator to 2.0.9. It can be done
out of the box (only changing pom.xml file). We are actually working to
update to a 2.1.x as suggested by Jacek. But it requires some other changes.
Jean-Louis
David Blevins wrote:
>
> Had to change up part of this code to fix OPENEJB-1021: "NPE in
> AppInfoBuilder.configureWebserviceSecurity()" which shows up in the
> Geronimo build.
>
> I rearranged the configureWebserviceSecurity method just slightly.
> It's functionally equivalent, the only behavior change is the null
> check on sessionBean.getWebServiceSecurity().
>
> Added some TODOs as it seems like there's some room to be more vocal
> about potential user mistakes and issues. Not too familiar with the
> config setup, no not sure what to recommend. Here's the code in
> question:
>
> List<PortInfo> infoList = ejbJarInfo.portInfos;
> for (PortInfo portInfo : infoList) {
>
> org.apache.openejb.jee.oejb2.EnterpriseBean bean =
> beans.get(portInfo.serviceLink);
>
> if (bean == null) continue; /* TODO: throw something? */
> if (!(bean instanceof SessionBeanType)) continue; /* TODO:
> throw something? */
>
> SessionBeanType sessionBean = (SessionBeanType) bean;
> WebServiceSecurityType webServiceSecurityType =
> sessionBean.getWebServiceSecurity();
>
> if (webServiceSecurityType == null) {
> //TODO: this ok?
> continue;
> }
>
> portInfo.realmName = webServiceSecurityType.getRealmName();
> portInfo.securityRealmName =
> webServiceSecurityType.getSecurityRealmName();
> if (webServiceSecurityType.getTransportGuarantee() != null) {
> portInfo.transportGuarantee =
> webServiceSecurityType.getTransportGuarantee().value();
> } else {
> portInfo.transportGuarantee = "NONE";
> }
>
> if (webServiceSecurityType.getAuthMethod() != null) {
> portInfo.authMethod =
> webServiceSecurityType.getAuthMethod().value();
> } else {
> portInfo.authMethod = "NONE";
> }
> }
>
>
> Any thoughts on what we should do with the todos?
>
> Seems like the first one indicates they don't have any metadata in the
> openejb-jar.xml for the bean. Are there defaults that we want to fill
> in in that situation?
>
> The second seems to indicate there is metadata for the bean, but it is
> not what we expect. Seems there's definitely some action to be taken
> there.
>
> The third (the one I just added), not sure what the right approach
> is. Seems like a variation on the first one. Might be fine to ignore
> it, wonder if we need some defaults in there. Seems we supply "NONE"
> for transportGuarantee and authMethod as the defaults when there is
> some metadata give, wonder if we need to do that for when there is no
> metadata given.
>
> -David
>
>
>
--
View this message in context:
http://www.nabble.com/Re%3A-Securing-a-webservice-tp22265166p23175502.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.