package net.whydah.admin.createlogon; 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.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Entity; 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 UibCreateLogonConnection { private static final Logger log = LoggerFactory.getLogger(UibCreateLogonConnection.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 String USER_AUTHENTICATION_PATH = "authenticate/user"; private static final String CREATE_AND_LOGON_OPERATION = "createandlogon"; private final WebTarget uibService; @Autowired public UibCreateLogonConnection(AppConfig appConfig) { Client client = ClientBuilder.newClient(); String uibUrl = appConfig.getProperty("useridentitybackend"); log.info("Connection to UserIdentityBackend on {}" , uibUrl); uibService = client.target(uibUrl); } public String createUser(String applicationTokenId, String fbUserXml) { WebTarget webResource = uibService.path("/" + applicationTokenId).path(USER_AUTHENTICATION_PATH).path(CREATE_AND_LOGON_OPERATION); log.debug("URI to use {}",webResource.getUri()); Response response = webResource.request(MediaType.APPLICATION_XML).post(Entity.entity(fbUserXml, MediaType.APPLICATION_XML)); int statusCode = response.getStatus(); if (statusCode != 200) { log.info("Request to UIB failed status {}, response {}", statusCode, response.getEntity()); throw new ConnectionFailedException("Error creating user based on facebookUserXml {" + fbUserXml + "}, Response: {"+response.getEntity() +"}, Status {"+ statusCode +"}"); } return response.getEntity().toString(); } }