/*
* Licensed to csti consulting
* You may obtain a copy of the License at
*
* http://www.csticonsulting.com
* Copyright (c) 2006-Nov 25, 2010 Consultation CS-TI inc.
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.salesmanager.core.service.ws.utils;
import java.util.Locale;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.context.MessageSource;
import com.salesmanager.core.service.ServiceException;
import com.salesmanager.core.service.ws.WebServiceCredentials;
import com.salesmanager.core.service.ws.WebServiceResponse;
import com.salesmanager.core.util.EncryptionUtil;
import com.salesmanager.core.util.SpringUtil;
public class WebServiceUtils {
/**
* Validates web service credentials
* @param locale
* @param credentials
* @throws ServiceException
*/
public static void validateCredentials(Locale locale, WebServiceCredentials credentials,Logger log) throws ServiceException {
MessageSource messageSource = (MessageSource)SpringUtil.getBean("messageSource");
try {
int merchantId = credentials.getMerchantId();
String k = EncryptionUtil.generatekey(String.valueOf(merchantId));
String apiKeyGen = EncryptionUtil.encrypt(k, String.valueOf(merchantId));
if(StringUtils.isBlank(apiKeyGen) || apiKeyGen.length()<16) {
log.error("Problem with API KEY GENERATION " + apiKeyGen);
throw new ServiceException(messageSource.getMessage("errors.technical",
null, locale));
}
String apiKey = credentials.getApiKey();
if(StringUtils.isBlank(apiKey)) {
throw new ServiceException(messageSource.getMessage("messages.error.ws.invalidcredentials",
null, locale));
}
if(!apiKeyGen.equals(apiKey)) {
throw new ServiceException(messageSource.getMessage("messages.error.ws.invalidcredentials",
null, locale));
}
} catch (Exception e) {
if(e instanceof ServiceException) {
throw (ServiceException)e;
}
log.error(e);
throw new ServiceException(messageSource.getMessage("errors.technical",
null, locale));
}
}
public static void setStatusMsg(MessageSource messageSource, Locale locale,
WebServiceResponse response,String messageKey,Object args[],int status) {
response.setMessages(new String[]{messageSource.getMessage(messageKey,
args, locale)});
response.setStatus(status);
}
}