/**
*
*/
package com.azwul.api.service.impl;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import com.azwul.api.model.Credentials;
import com.azwul.api.model.HttpConfiguration;
import com.azwul.api.model.SessionToken;
import com.azwul.api.model.result.HttpResult;
import com.azwul.api.model.result.LoginResult;
import com.azwul.api.service.AzService;
import com.azwul.api.service.helper.HelperFactory;
import com.azwul.api.service.helper.HttpHelper;
import com.azwul.api.util.ResponseUtil;
/**
* @author Theotime Jurzak
*
*/
public class AzServiceImpl implements AzService {
protected HttpHelper httpHelper = HelperFactory.getHttpHelper();
protected HttpConfiguration httpConfiguration;
public LoginResult login(Credentials credentials) {
return login(credentials.getP12(), credentials.getPassword(),
credentials.getApiId());
}
public LoginResult login(File p12, String password, String apiId) {
Map<String, String> params = new HashMap<String, String>();
params.put("j_password", password);
params.put("apiId", apiId);
HttpResult httpResult = httpHelper.doPostMultipart(
"/j_spring_security_check", httpConfiguration, null, p12,
"j_key", params);
String setCookie = httpResult.getHttpMethod()
.getResponseHeader("Set-Cookie").getValue();
httpResult.releaseConnection();
SessionToken sessionToken = new SessionToken();
sessionToken.setApiId(apiId);
sessionToken.setCookie(setCookie);
httpResult.setSessionToken(sessionToken);
return isLogged(sessionToken);
}
public LoginResult isLogged(SessionToken token) {
HttpResult checkLoggedResult = httpHelper.doGet("/basic/checkLogged",
httpConfiguration, token);
String resLogin = ResponseUtil.getBasicResponse(checkLoggedResult);
String resLoginSplit[] = resLogin.split("\\s");
LoginResult loginResult = new LoginResult();
loginResult.setBasicResponse(resLogin);
loginResult.setHttpResult(checkLoggedResult);
if ("OK".equals(resLoginSplit[1])) {
loginResult.setOk(true);
}
return loginResult;
}
public void logout(SessionToken token) {
httpHelper.doGet("/logout.jsp", httpConfiguration, token);
}
public void setHttpConfiguration(HttpConfiguration httpConfiguration) {
this.httpConfiguration = httpConfiguration;
}
public void setHttpHelper(HttpHelper httpHelper) {
this.httpHelper = httpHelper;
}
}