The WebserviceContext interface is part of the JAX-WS specification. It allows you to access several context informations the runtime has associated to your service call.
The following code fragment show how to use some parts of the WebserviceContext.
import javax.xml.ws.WebServiceContext;
public class CustomerServiceImpl implements CustomerService {
@Resource
WebServiceContext wsContext;
public List<Customer> getCustomersByName(String name) throws NoSuchCustomerException {
Principal pr = wsContext.getUserPrincipal();
// Only joe may access this service operation
if (pr == null || !"joe".equals(pr.getName())) {
throw new RuntimeException("Access denied");
}
// Only the sales role may access this operation
if (!wsContext.isUserInRole("sales")) {
throw new RuntimeException("Access denied");
}
MessageContext mContext = wsContext.getMessageContext();
// See which contents the message context has
Set<String> s = mContext.keySet();
// Using this cxf specific code you can access the CXF Message and Exchange objects
WrappedMessageContext wmc = (WrappedMessageContext)mContext;
Message m = wmc.getWrappedMessage();
Exchange ex = m.getExchange();
}
}