void preprocessCommand( Command cmd ) { String cmdName = cmd.getClass().getSimpleName(); if( ! config.getDisableTaskSecurity() && cmd instanceof TaskCommand ) { TaskCommand taskCmd = (TaskCommand) cmd; String cmdUserId = taskCmd.getUserId(); String authUserId = config.getUserName(); if( cmdUserId == null ) { taskCmd.setUserId(authUserId); logger.debug("Using user id '" + authUserId + "' for '" + cmdName + "'."); } else if( ! cmdUserId.equals(authUserId) ) { throw new RemoteApiException("The user id used when retrieving task information (" + cmdUserId + ")" + " must match the authenticating user (" + authUserId + ")!"); } } }
@Override public RemoteApiResponse release( long taskId ) { RemoteApiResponse<Void> response; try { delegate.release(taskId, delegate.getConfig().getUserName()); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse skip( long taskId ) { RemoteApiResponse<Void> response; try { delegate.skip(taskId, delegate.getConfig().getUserName()); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse claim( long taskId ) { RemoteApiResponse<Void> response; try { delegate.claim(taskId, delegate.getConfig().getUserName()); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse exit( long taskId ) { RemoteApiResponse<Void> response; try { delegate.exit(taskId, delegate.getConfig().getUserName()); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse suspend( long taskId ) { RemoteApiResponse<Void> response; try { delegate.suspend(taskId, delegate.getConfig().getUserName()); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse activate( long taskId ) { RemoteApiResponse<Void> response; try { delegate.activate(taskId, delegate.getConfig().getUserName()); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse delegate( long taskId, String targetUserId ) { RemoteApiResponse<Void> response; try { delegate.delegate(taskId, delegate.getConfig().getUserName(), targetUserId); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse start( long taskId ) { RemoteApiResponse<Void> response; try { delegate.start(taskId, delegate.getConfig().getUserName()); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse claimNextAvailable() { RemoteApiResponse<Void> response; try { delegate.claimNextAvailable(delegate.getConfig().getUserName()); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse complete( long taskId, Map<String, Object> data ) { RemoteApiResponse<Void> response; try { delegate.complete(taskId, delegate.getConfig().getUserName(), data); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse fail( long taskId, Map<String, Object> faultData ) { RemoteApiResponse<Void> response; try { delegate.fail(taskId, delegate.getConfig().getUserName(), faultData); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse forward( long taskId, String targetEntityId ) { RemoteApiResponse<Void> response; try { delegate.forward(taskId, delegate.getConfig().getUserName(), targetEntityId); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse resume( long taskId ) { RemoteApiResponse<Void> response; try { delegate.resume(taskId, delegate.getConfig().getUserName()); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse stop( long taskId ) { RemoteApiResponse<Void> response; try { delegate.stop(taskId, delegate.getConfig().getUserName()); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse nominate( long taskId, String... potentialOwnerUserIds ) { RemoteApiResponse<Void> response; if( potentialOwnerUserIds == null || potentialOwnerUserIds.length == 0 ) { return new RemoteApiResponse<Void>(RemoteOperationStatus.CLIENT_FAILURE, "Null or empty list of potential owner user ids received as argument"); } try { NominateTaskCommand cmd = new NominateTaskCommand(); cmd.setTaskId(taskId); cmd.setUserId(delegate.getConfig().getUserName()); List<org.kie.remote.jaxb.gen.OrganizationalEntity> genOrgEntList = convertStringListToGenOrgEntList(Arrays.asList(potentialOwnerUserIds)); if( genOrgEntList != null ) { cmd.getPotentialOwners().addAll(genOrgEntList); } delegate.executeCommand(cmd); response = new RemoteApiResponse<Void>(); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Void>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse<Map<String, Object>> getOutputContentMap( long taskId ) { RemoteApiResponse<Map<String, Object>> response; try { GetContentMapForUserCommand cmd = new GetContentMapForUserCommand(); cmd.setTaskId(taskId); cmd.setUserId(delegate.getConfig().getUserName()); Map<String, Object> outputContentMap = delegate.executeCommand(cmd); response = new RemoteApiResponse<Map<String, Object>>(outputContentMap); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Map<String, Object>>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
@Override public RemoteApiResponse<Long> addOutputContent( long taskId, Map<String, Object> params ) { RemoteApiResponse<Long> response; if( params == null ) { return new RemoteApiResponse<Long>(RemoteOperationStatus.CLIENT_FAILURE, "Null Map<String, Object> received as argument"); } try { AddContentFromUserCommand cmd = new AddContentFromUserCommand(); cmd.setTaskId(taskId); cmd.setUserId(delegate.getConfig().getUserName()); cmd.setOutputContentMap(convertMapToJaxbStringObjectPairArray(params)); Long contentId = delegate.executeCommand(cmd); response = new RemoteApiResponse<Long>(contentId); } catch( RemoteClientException rce ) { response = createRemoteApiResponse(rce); } catch( Exception e ) { response = new RemoteApiResponse<Long>(RemoteOperationStatus.UNKNOWN_FAILURE, e); } return response; }
assertEquals( maryUser, maryConfig.getUserName()); assertEquals( maryPass, maryConfig.getPassword()); assertEquals( krisUser, krisConfig.getUserName()); assertEquals( krisPassword, krisConfig.getPassword()); assertEquals( johnUser, johnConfig.getUserName()); assertEquals( johnPassword, johnConfig.getPassword());
/** * Method to communicate with the backend via JMS. * * @param command The {@link Command} object to be executed. * @return The result of the {@link Command} object execution. */ private <T> T executeJmsCommand( Command command ) { Queue sendQueue; boolean isTaskCommand = (command instanceof TaskCommand); if( isTaskCommand ) { sendQueue = config.getTaskQueue(); if( ! config.getUseUssl() && ! config.getDisableTaskSecurity() ) { throw new RemoteCommunicationException("Task operation requests can only be sent via JMS if SSL is used."); } } else { sendQueue = config.getKsessionQueue(); } return internalExecuteJmsCommand(command, config.getConnectionUserName(), config.getConnectionPassword(), config.getUserName(), config.getPassword(), config.getDeploymentId(), config.getProcessInstanceId(), config.getCorrelationProperties(), config.getConnectionFactory(), sendQueue, config.getResponseQueue(), (SerializationProvider) config.getJaxbSerializationProvider(), config.getExtraJaxbClasses(), config.getSerializationType(), config.getTimeout()); }