package net.whydah.admin.applications;
import net.whydah.admin.AuthenticationFailedException;
import net.whydah.admin.config.AppConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.ws.rs.BadRequestException;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
/**
* @author <a href="bard.lind@gmail.com">Bard Lind</a>
*/
@Component
public class UibApplicationsConnection {
private static final Logger log = LoggerFactory.getLogger(UibApplicationsConnection.class);
private static final int STATUS_BAD_REQUEST = 400; //Response.Status.BAD_REQUEST.getStatusCode();
private static final int STATUS_OK = 200; //Response.Status.OK.getStatusCode();
private static final int NOT_AUTHERIZED = 403;
private final WebTarget uib;
private final String userIdentityBackendUri = "http://localhost:9995/uib";
@Autowired
public UibApplicationsConnection(AppConfig appConfig) {
Client client = ClientBuilder.newClient();
String uibUrl = appConfig.getProperty("useridentitybackend");
log.info("Connection to UserIdentityBackend on {}" , uibUrl);
uib = client.target(uibUrl);
}
public String listAll(String userAdminServiceTokenId, String userTokenId) {
WebTarget webResource = uib.path("/" + userAdminServiceTokenId + "/" + userTokenId + "/applications");
Response response = webResource.request(MediaType.APPLICATION_JSON).get();
// String output = response.readEntity(String.class);
int statusCode = response.getStatus();
String output = response.readEntity(String.class);
switch (statusCode) {
case STATUS_OK:
break;
case STATUS_BAD_REQUEST:
log.error("listAll-Response from UIB: {}: {}", response.getStatus(), output);
throw new BadRequestException("listAll failed. Bad request " + response.toString() + ", Status code " + response.getStatus());
case NOT_AUTHERIZED:
log.error("listAll-Response from UIB: {}: {}", response.getStatus(), output);
throw new BadRequestException("listAll failed. Bad request " + response.toString() + ", Status code " + response.getStatus());
default:
log.error("listAll-Response from UIB: {}: {}", response.getStatus(), output);
throw new AuthenticationFailedException("listAll failed. Status code " + response.getStatus());
}
return output;
}
}