//* Licensed Materials - Property of *
//* IBM *
//* Alexandra Instituttet A/S *
//* *
//* eu.abc4trust.pabce.1.34 *
//* *
//* (C) Copyright IBM Corp. 2014. All Rights Reserved. *
//* (C) Copyright Alexandra Instituttet A/S, Denmark. 2014. All *
//* Rights Reserved. *
//* US Government Users Restricted Rights - Use, duplication or *
//* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. *
//* *
//* This file is licensed under the Apache License, Version 2.0 (the *
//* "License"); you may not use this file except in compliance with *
//* the License. You may obtain a copy of the License at: *
//* http://www.apache.org/licenses/LICENSE-2.0 *
//* 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 eu.abce4trust.ri.test.tools;
import java.io.IOException;
import javax.ws.rs.core.MediaType;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource.Builder;
import eu.abc4trust.returnTypes.UiIssuanceArguments;
import eu.abc4trust.returnTypes.UiIssuanceReturn;
import eu.abc4trust.xml.IssuanceMessage;
import eu.abc4trust.xml.ObjectFactory;
import eu.abc4trust.xml.util.XmlUtils;
public class UserServiceProxy extends ServiceProxy {
private final ObjectFactory of = new ObjectFactory();
private final String userUrl;
private final Client client = Client.create();
public UserServiceProxy(String userUrl) {
this.userUrl = userUrl;
}
void unlockSmartcard(String sessionId) {
String urlString = this.userUrl + "/unlockSmartcards/" + sessionId;
Builder userserviceResource = this.client.resource(urlString)
.type(MediaType.TEXT_PLAIN).accept(MediaType.TEXT_PLAIN);
this.postMessage(urlString, userserviceResource, "5678");
}
void issuanceProtocolStep(IssuanceMessage server_im, String sessionId) {
String issuanceProtocolStepUrlString = this.userUrl
+ "/issuanceProtocolStep/" + sessionId
+ "?startRequest=fakeUrl&stepRequest=fakeUrl";
Builder issuanceProtocolStepUserserviceResource = this
.prepareIssuanceStep(issuanceProtocolStepUrlString);
String returnStatus = this.postMessage(issuanceProtocolStepUrlString,
issuanceProtocolStepUserserviceResource, String.class,
this.of.createIssuanceMessage(server_im));
if (returnStatus == "GO AHEAD CALL NEW UI FOR ISSUANCE") {
this.exit("Wrong responce");
}
}
IssuanceMessage issuanceProtocolStepIssuanceMessage(
IssuanceMessage server_im,
String sessionId) {
String issuanceProtocolStepUrlString = this.userUrl
+ "/issuanceProtocolStep/" + sessionId
+ "?startRequest=fakeUrl&stepRequest=fakeUrl";
Builder issuanceProtocolStepUserserviceResource = this
.prepareIssuanceStep(issuanceProtocolStepUrlString);
IssuanceMessage user_im = this.postMessage(
issuanceProtocolStepUrlString,
issuanceProtocolStepUserserviceResource, IssuanceMessage.class,
this.of.createIssuanceMessage(server_im));
return user_im;
}
UiIssuanceReturn getUiIssuanceArguments(String sessionId)
throws IOException, JsonParseException, JsonMappingException {
String urlString = this.userUrl + "/getUiIssuanceArguments/"
+ sessionId;
Builder userserviceResource = this
.prepareUIIssuanceArguments(urlString);
UiIssuanceArguments uiSelectionString = this.getMessage(urlString,
userserviceResource, UiIssuanceArguments.class);
UiIssuanceReturn uiIssuanceReturn = this.uiSelection(uiSelectionString);
return uiIssuanceReturn;
}
void setUiIssuanceArguments(String sessionId,
UiIssuanceReturn uiIssuanceReturn) {
String urlString;
Builder userserviceResource;
urlString = this.userUrl + "/setUiIssuanceReturn/" + sessionId;
userserviceResource = this.prepareIssuanceStepSelect(urlString);
ClientResponse r = this.postMessage(urlString, userserviceResource,
ClientResponse.class, uiIssuanceReturn);
int responceCode = 204; // 200
if (r.getStatus() != responceCode) {
this.exit("Recieved an error code from the user-service: "
+ r.getStatus());
}
}
private UiIssuanceReturn uiSelection(UiIssuanceArguments uiSelectionString)
throws IOException, JsonParseException, JsonMappingException {
System.out.println(uiSelectionString);
UiIssuanceReturn uiIssuanceReturn = new UiIssuanceReturn();
uiIssuanceReturn.chosenIssuanceToken = 0;
uiIssuanceReturn.chosenPseudonymList = 0;
return uiIssuanceReturn;
}
private Builder prepareIssuanceStep(String urlString) {
Builder userserviceResource;
userserviceResource = this.client.resource(urlString)
.type(MediaType.APPLICATION_XML).accept(MediaType.TEXT_XML);
return userserviceResource;
}
private Builder prepareUIIssuanceArguments(String urlString) {
Builder userserviceResource;
userserviceResource = this.client.resource(urlString)
.type(MediaType.APPLICATION_XML)
.accept(MediaType.APPLICATION_XML);
return userserviceResource;
}
private Builder prepareIssuanceStepSelect(String urlString) {
Builder userserviceResource;
userserviceResource = this.client.resource(urlString)
.type(MediaType.APPLICATION_XML)
.accept(MediaType.APPLICATION_XML);
return userserviceResource;
}
public IssuanceMessage issuanceProtocolStepSelect(
IssuanceMessage server_im, String sessionId) throws Exception {
String issuanceProtocolStepSelectUrlString = this.userUrl
+ "/issuanceProtocolStepSelect/" + sessionId
+ "?startRequest=fakeUrl&stepRequest=fakeUrl";
Builder issuanceProtocolStepSelectUserserviceResource = this
.prepareIssuanceProtocolStepSelect(issuanceProtocolStepSelectUrlString);
IssuanceMessage user_im = this
.postMessage(issuanceProtocolStepSelectUrlString,
issuanceProtocolStepSelectUserserviceResource,
IssuanceMessage.class);
System.out.println(" - initial message - client - created ");
System.out.println(" - initial message - client - created " + user_im);
System.out
.println(" - initial message - client : "
+ XmlUtils.toXml(
this.of.createIssuanceMessage(user_im),
false));
return user_im;
}
private Builder prepareIssuanceProtocolStepSelect(
String issuanceProtocolStepSelectUrlString) {
Builder userserviceResource;
userserviceResource = this.client.resource(issuanceProtocolStepSelectUrlString)
.type(MediaType.APPLICATION_JSON).accept(MediaType.TEXT_XML);
return userserviceResource;
}
}