/** * setup security work context for the work * * @param securityWorkContext security work context * @param listener listener to be notified * @param raName resource-adapter name */ private void setupSecurityWorkContext(SecurityContext securityWorkContext, WorkContextLifecycleListener listener, String raName) throws WorkCompletedException{ try { Subject executionSubject = new Subject(); Subject serviceSubject = new Subject(); //TODO need to populate with server's credentials ? //Map securityMap = getSecurityWorkContextMap(raName); Map securityMap = getWorkContextMap(raName); CallbackHandler handler = new ConnectorCallbackHandler(executionSubject, runtime.getCallbackHandler(), securityMap); securityWorkContext.setupSecurityContext(handler, executionSubject, serviceSubject); notifyContextSetupComplete(listener); } catch (Exception e) { logger.log(Level.WARNING, RAR_SETUP_SECURITY_CONTEXT_ERROR, e); notifyContextSetupFailure(listener, WorkContextErrorCodes.CONTEXT_SETUP_FAILED); WorkCompletedException wce = new WorkCompletedException(e.getMessage()); wce.initCause(e); throw wce; } }