|
@@ -72,51 +72,37 @@ abstract public class AbsAuthServlet extends HttpServlet
|
|
|
stateVars.put(keyVal[0], keyVal[1]);
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- int configIndex = 0;
|
|
|
-
|
|
|
- try
|
|
|
- {
|
|
|
+
|
|
|
+ int configIndex = 0;
|
|
|
+
|
|
|
String appIndex = stateVars.get("appIndex");
|
|
|
|
|
|
if (appIndex != null)
|
|
|
{
|
|
|
configIndex = Integer.parseInt(appIndex);
|
|
|
}
|
|
|
- }
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- Config CONFIG = getConfig();
|
|
|
- String secret, client, redirectUri;
|
|
|
- String[] secrets, clients;
|
|
|
-
|
|
|
- if ("127.0.0.1".equals(request.getServerName()))
|
|
|
- {
|
|
|
- secrets = CONFIG.DEV_CLIENT_SECRET.split(SEPARATOR);
|
|
|
- clients = CONFIG.DEV_CLIENT_ID.split(SEPARATOR);
|
|
|
- redirectUri = CONFIG.DEV_REDIRECT_URI;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- secrets = CONFIG.CLIENT_SECRET.split(SEPARATOR);
|
|
|
- clients = CONFIG.CLIENT_ID.split(SEPARATOR);
|
|
|
- redirectUri = CONFIG.REDIRECT_URI;
|
|
|
- }
|
|
|
-
|
|
|
- secret = secrets.length > configIndex ? secrets[configIndex] : secrets[0];
|
|
|
- client = clients.length > configIndex ? clients[configIndex] : clients[0];
|
|
|
+
|
|
|
+ Config CONFIG = getConfig();
|
|
|
+ String secret, client, redirectUri;
|
|
|
+ String[] secrets, clients;
|
|
|
|
|
|
- if (error != null)
|
|
|
- {
|
|
|
- try
|
|
|
+ if ("127.0.0.1".equals(request.getServerName()))
|
|
|
+ {
|
|
|
+ secrets = CONFIG.DEV_CLIENT_SECRET.split(SEPARATOR);
|
|
|
+ clients = CONFIG.DEV_CLIENT_ID.split(SEPARATOR);
|
|
|
+ redirectUri = CONFIG.DEV_REDIRECT_URI;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ secrets = CONFIG.CLIENT_SECRET.split(SEPARATOR);
|
|
|
+ clients = CONFIG.CLIENT_ID.split(SEPARATOR);
|
|
|
+ redirectUri = CONFIG.REDIRECT_URI;
|
|
|
+ }
|
|
|
+
|
|
|
+ secret = secrets.length > configIndex ? secrets[configIndex] : secrets[0];
|
|
|
+ client = clients.length > configIndex ? clients[configIndex] : clients[0];
|
|
|
+
|
|
|
+ if (error != null)
|
|
|
{
|
|
|
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
|
|
@@ -130,137 +116,132 @@ abstract public class AbsAuthServlet extends HttpServlet
|
|
|
writer.flush();
|
|
|
writer.close();
|
|
|
}
|
|
|
- catch(Exception e)
|
|
|
+ else if (code == null && refreshToken == null)
|
|
|
{
|
|
|
- e.printStackTrace();
|
|
|
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
|
|
+ response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
|
|
|
}
|
|
|
- }
|
|
|
- else if (code == null && refreshToken == null)
|
|
|
- {
|
|
|
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- HttpURLConnection con = null;
|
|
|
-
|
|
|
- try
|
|
|
+ else
|
|
|
{
|
|
|
- String url = CONFIG.AUTH_SERVICE_URL;
|
|
|
- URL obj = new URL(url);
|
|
|
- con = (HttpURLConnection) obj.openConnection();
|
|
|
-
|
|
|
- con.setRequestMethod("POST");
|
|
|
- con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
|
|
-
|
|
|
- boolean jsonResponse = false;
|
|
|
- StringBuilder urlParameters = new StringBuilder();
|
|
|
-
|
|
|
- urlParameters.append("client_id=");
|
|
|
- urlParameters.append(client);
|
|
|
- urlParameters.append("&redirect_uri=");
|
|
|
- urlParameters.append(redirectUri);
|
|
|
- urlParameters.append("&client_secret=");
|
|
|
- urlParameters.append(secret);
|
|
|
+ HttpURLConnection con = null;
|
|
|
|
|
|
- if (code != null)
|
|
|
- {
|
|
|
- urlParameters.append("&code=");
|
|
|
- urlParameters.append(code);
|
|
|
- urlParameters.append("&grant_type=authorization_code");
|
|
|
- }
|
|
|
- else
|
|
|
+ try
|
|
|
{
|
|
|
- urlParameters.append("&refresh_token=");
|
|
|
- urlParameters.append(refreshToken);
|
|
|
- urlParameters.append("&grant_type=refresh_token");
|
|
|
- jsonResponse = true;
|
|
|
- }
|
|
|
-
|
|
|
- // Send post request
|
|
|
- con.setDoOutput(true);
|
|
|
- DataOutputStream wr = new DataOutputStream(con.getOutputStream());
|
|
|
- wr.writeBytes(urlParameters.toString());
|
|
|
- wr.flush();
|
|
|
- wr.close();
|
|
|
+ String url = CONFIG.AUTH_SERVICE_URL;
|
|
|
+ URL obj = new URL(url);
|
|
|
+ con = (HttpURLConnection) obj.openConnection();
|
|
|
+
|
|
|
+ con.setRequestMethod("POST");
|
|
|
+ con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
|
|
+
|
|
|
+ boolean jsonResponse = false;
|
|
|
+ StringBuilder urlParameters = new StringBuilder();
|
|
|
+
|
|
|
+ urlParameters.append("client_id=");
|
|
|
+ urlParameters.append(client);
|
|
|
+ urlParameters.append("&redirect_uri=");
|
|
|
+ urlParameters.append(redirectUri);
|
|
|
+ urlParameters.append("&client_secret=");
|
|
|
+ urlParameters.append(secret);
|
|
|
+
|
|
|
+ if (code != null)
|
|
|
+ {
|
|
|
+ urlParameters.append("&code=");
|
|
|
+ urlParameters.append(code);
|
|
|
+ urlParameters.append("&grant_type=authorization_code");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ urlParameters.append("&refresh_token=");
|
|
|
+ urlParameters.append(refreshToken);
|
|
|
+ urlParameters.append("&grant_type=refresh_token");
|
|
|
+ jsonResponse = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Send post request
|
|
|
+ con.setDoOutput(true);
|
|
|
+ DataOutputStream wr = new DataOutputStream(con.getOutputStream());
|
|
|
+ wr.writeBytes(urlParameters.toString());
|
|
|
+ wr.flush();
|
|
|
+ wr.close();
|
|
|
+
|
|
|
+ BufferedReader in = new BufferedReader(
|
|
|
+ new InputStreamReader(con.getInputStream()));
|
|
|
+ String inputLine;
|
|
|
+ StringBuffer authRes = new StringBuffer();
|
|
|
+
|
|
|
+ while ((inputLine = in.readLine()) != null)
|
|
|
+ {
|
|
|
+ authRes.append(inputLine);
|
|
|
+ }
|
|
|
+ in.close();
|
|
|
|
|
|
- BufferedReader in = new BufferedReader(
|
|
|
- new InputStreamReader(con.getInputStream()));
|
|
|
- String inputLine;
|
|
|
- StringBuffer authRes = new StringBuffer();
|
|
|
+ response.setStatus(con.getResponseCode());
|
|
|
+
|
|
|
+ OutputStream out = response.getOutputStream();
|
|
|
+
|
|
|
+ PrintWriter writer = new PrintWriter(out);
|
|
|
|
|
|
- while ((inputLine = in.readLine()) != null)
|
|
|
- {
|
|
|
- authRes.append(inputLine);
|
|
|
+ // Writes JavaScript code
|
|
|
+ writer.println(processAuthResponse(authRes.toString(), jsonResponse));
|
|
|
+
|
|
|
+ writer.flush();
|
|
|
+ writer.close();
|
|
|
}
|
|
|
- in.close();
|
|
|
-
|
|
|
- response.setStatus(con.getResponseCode());
|
|
|
-
|
|
|
- OutputStream out = response.getOutputStream();
|
|
|
-
|
|
|
- PrintWriter writer = new PrintWriter(out);
|
|
|
-
|
|
|
- // Writes JavaScript code
|
|
|
- writer.println(processAuthResponse(authRes.toString(), jsonResponse));
|
|
|
-
|
|
|
- writer.flush();
|
|
|
- writer.close();
|
|
|
- }
|
|
|
- catch(IOException e)
|
|
|
- {
|
|
|
- e.printStackTrace();
|
|
|
- StringBuilder details = new StringBuilder("");
|
|
|
-
|
|
|
- if (con != null)
|
|
|
+ catch(IOException e)
|
|
|
{
|
|
|
- try
|
|
|
+ e.printStackTrace();
|
|
|
+ StringBuilder details = new StringBuilder("");
|
|
|
+
|
|
|
+ if (con != null)
|
|
|
{
|
|
|
- BufferedReader in = new BufferedReader(
|
|
|
- new InputStreamReader(con.getErrorStream()));
|
|
|
-
|
|
|
- String inputLine;
|
|
|
-
|
|
|
- while ((inputLine = in.readLine()) != null)
|
|
|
+ try
|
|
|
+ {
|
|
|
+ BufferedReader in = new BufferedReader(
|
|
|
+ new InputStreamReader(con.getErrorStream()));
|
|
|
+
|
|
|
+ String inputLine;
|
|
|
+
|
|
|
+ while ((inputLine = in.readLine()) != null)
|
|
|
+ {
|
|
|
+ System.err.println(inputLine);
|
|
|
+ details.append(inputLine);
|
|
|
+ details.append("\n");
|
|
|
+ }
|
|
|
+ in.close();
|
|
|
+ }
|
|
|
+ catch (Exception e2)
|
|
|
{
|
|
|
- System.err.println(inputLine);
|
|
|
- details.append(inputLine);
|
|
|
- details.append("\n");
|
|
|
+ // Ignore
|
|
|
}
|
|
|
- in.close();
|
|
|
}
|
|
|
- catch (Exception e2)
|
|
|
+
|
|
|
+ if (e.getMessage() != null && e.getMessage().contains("401"))
|
|
|
{
|
|
|
- // Ignore
|
|
|
+ response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- if (e.getMessage() != null && e.getMessage().contains("401"))
|
|
|
- {
|
|
|
- response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
|
|
- }
|
|
|
-
|
|
|
- if (DEBUG)
|
|
|
- {
|
|
|
- OutputStream out = response.getOutputStream();
|
|
|
|
|
|
- PrintWriter writer = new PrintWriter(out);
|
|
|
-
|
|
|
- e.printStackTrace(writer);
|
|
|
- writer.println(details.toString());
|
|
|
+ if (DEBUG)
|
|
|
+ {
|
|
|
+ OutputStream out = response.getOutputStream();
|
|
|
+
|
|
|
+ PrintWriter writer = new PrintWriter(out);
|
|
|
|
|
|
- writer.flush();
|
|
|
- writer.close();
|
|
|
+ e.printStackTrace(writer);
|
|
|
+ writer.println(details.toString());
|
|
|
+
|
|
|
+ writer.flush();
|
|
|
+ writer.close();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
|
|
- }
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
|
|
}
|
|
|
}
|
|
|
|