I am trying to call a secured web service from a SLSB. I have injected the port using @Resource but get a connection exception because the credentials are not set. I have come up with a workaround to propagate the credentials (see below). But I would like to know if there is a standards based way to propagate credentials to the jaxrpc stub.
Do I just need to wait for the full JaxWS implementation in JBossWS 2.0?
@Stateless
@RolesAllowed(value = { "User" })
@SecurityDomain("portal")
public class AuthorizationCallbackServiceAdapterBean implements AuthorizationCallbackServiceLocal {
@Resource(mappedName = "jbossws-client/service/AuthorizationCallbackService")
protected AuthorizationCallbackService_PortType port;
public void authorizationResponse(Long paymentId, Boolean status) {
try {
Stub stub = (Stub) port;
stub._setProperty(Stub.USERNAME_PROPERTY, SecurityAssociation.getCallerPrincipal().getName());
stub._setProperty(Stub.PASSWORD_PROPERTY, SecurityAssociation.getCredential());
port.authorizationResponse(paymentId, status);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}