diff --git a/java/com.sap.sailing.domain.igtimiadapter.gateway/build.properties b/java/com.sap.sailing.domain.igtimiadapter.gateway/build.properties index a4af5b4a1ef..cab8cf66a3c 100644 --- a/java/com.sap.sailing.domain.igtimiadapter.gateway/build.properties +++ b/java/com.sap.sailing.domain.igtimiadapter.gateway/build.properties @@ -3,4 +3,5 @@ source.. = src/,\ output.. = bin/ bin.includes = META-INF/,\ .,\ - WEB-INF/ + WEB-INF/,\ + redirect.html diff --git a/java/com.sap.sailing.domain.igtimiadapter.gateway/redirect.html b/java/com.sap.sailing.domain.igtimiadapter.gateway/redirect.html new file mode 100644 index 00000000000..2c42adca434 --- /dev/null +++ b/java/com.sap.sailing.domain.igtimiadapter.gateway/redirect.html @@ -0,0 +1,29 @@ + + +Igtimi + + + + + \ No newline at end of file diff --git a/java/com.sap.sailing.domain.igtimiadapter.gateway/src/com/sap/sailing/domain/igtimiadapter/gateway/oauth/AuthorizationCallback.java b/java/com.sap.sailing.domain.igtimiadapter.gateway/src/com/sap/sailing/domain/igtimiadapter/gateway/oauth/AuthorizationCallback.java index c9ec0b8ad6f..a377ce1d9a2 100644 --- a/java/com.sap.sailing.domain.igtimiadapter.gateway/src/com/sap/sailing/domain/igtimiadapter/gateway/oauth/AuthorizationCallback.java +++ b/java/com.sap.sailing.domain.igtimiadapter.gateway/src/com/sap/sailing/domain/igtimiadapter/gateway/oauth/AuthorizationCallback.java @@ -4,10 +4,12 @@ import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.net.URLEncoder; +import java.util.Base64; import java.util.logging.Level; import java.util.logging.Logger; import javax.ws.rs.GET; +import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; @@ -55,7 +57,10 @@ public class AuthorizationCallback { Response result; if (state != null) { // redirect to the server whose base URL is contained in the state parameter - result = Response.temporaryRedirect(new URI(state+"/igtimi/oauth/v1"+AUTHORIZATIONCALLBACK+"?code="+URLEncoder.encode(code, "UTF-8"))).build(); + String target = Base64.getEncoder().encodeToString( + (state + "/igtimi/oauth/v1" + AUTHORIZATIONCALLBACK + "?code=" + URLEncoder.encode(code, "UTF-8")) + .getBytes()); + result = Response.temporaryRedirect(new URI(state + "/igtimi/redirect.html?" + target)).build(); } else { if (code != null) { try { @@ -82,7 +87,15 @@ public class AuthorizationCallback { } return result; } - + + @POST + @Produces("text/plain;charset=UTF-8") + @Path(AUTHORIZATIONCALLBACK) + public Response obtainAccessTokenPost(@QueryParam("code") String code, @QueryParam("state") String state) + throws ClientProtocolException, IOException, IllegalStateException, ParseException, URISyntaxException { + return obtainAccessToken(code, state); + } + @GET @Produces("application/json;charset=UTF-8") @Path("uri") diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/ExpeditionWindMeasureStatusGetServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/ExpeditionWindMeasureStatusGetServlet.java index 3d9932e1e35..fe9339679ef 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/ExpeditionWindMeasureStatusGetServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/ExpeditionWindMeasureStatusGetServlet.java @@ -24,7 +24,7 @@ import com.sap.sailing.expeditionconnector.ExpeditionMessage; import com.sap.sailing.expeditionconnector.ExpeditionTrackerFactory; import com.sap.sailing.expeditionconnector.UDPExpeditionReceiver; -public class ExpeditionWindMeasureStatusGetServlet extends SailingServerHttpServletWithPostBasedConrentReplacing implements ExpeditionListener { +public class ExpeditionWindMeasureStatusGetServlet extends SailingServerHttpServletWithPostBasedContentReplacing implements ExpeditionListener { private static final long serialVersionUID = -6791613843435009810L; private Map lastMessageInfosPerBoat; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/SailingServerHttpServletWithPostBasedConrentReplacing.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/SailingServerHttpServletWithPostBasedContentReplacing.java similarity index 97% rename from java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/SailingServerHttpServletWithPostBasedConrentReplacing.java rename to java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/SailingServerHttpServletWithPostBasedContentReplacing.java index da50396229b..f4c098caeae 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/SailingServerHttpServletWithPostBasedConrentReplacing.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/SailingServerHttpServletWithPostBasedContentReplacing.java @@ -20,7 +20,7 @@ import com.sap.sse.common.HttpRequestHeaderConstants; * @author Axel Uhl (D043530) * */ -public abstract class SailingServerHttpServletWithPostBasedConrentReplacing extends SailingServerHttpServlet { +public abstract class SailingServerHttpServletWithPostBasedContentReplacing extends SailingServerHttpServlet { private static final long serialVersionUID = -2819428093387051473L; protected void writePostRefreshingHeadAndEmptyBody(HttpServletRequest req, HttpServletResponse resp, String title) throws IOException { diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/WindStatusServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/WindStatusServlet.java index d460dc6304b..889fbba5897 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/WindStatusServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/WindStatusServlet.java @@ -39,7 +39,7 @@ import com.sap.sse.common.Util; * @author Simon Marcel Pamies * */ -public abstract class WindStatusServlet extends SailingServerHttpServletWithPostBasedConrentReplacing implements IgtimiWindListener, BulkFixReceiver { +public abstract class WindStatusServlet extends SailingServerHttpServletWithPostBasedContentReplacing implements IgtimiWindListener, BulkFixReceiver { private static final Logger logger = Logger.getLogger(WindStatusServlet.class.getName()); private static final long serialVersionUID = -6791613843435003810L;