public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { JspFactory _jspxFactory = null; javax.servlet.jsp.PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; try { _jspxFactory = JspFactory.getDefaultFactory(); response.setContentType("text/html;charset=ISO-8859-1"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; out.write("\n"); out.write("\n\n"); // Get the current user's ac WTAccountCredentials ac = WTAccountCredentials.current(); SecureInfoManagerImpl sim = new SecureInfoManagerImpl(); // Setup for permission checking boolean editInterfaces = false; if (sim.canEditEntity(ProtectedResourceConstants.PR_INTERFACES, ac)) editInterfaces = true; pageContext.setAttribute("editInterfaces", new Boolean(editInterfaces)); out.write(" \n"); String hostIP = null; try { hostIP = InetAddress.getLocalHost().getHostAddress(); // out.print(hostIP); } catch (UnknownHostException ex) { throw new Exception("Could not determine the local host address", ex); } out.write("\n\nvar javaScriptVar=\""); out.print(hostIP); out.write("\";\nvar javaScriptVar2=\""); out.print(editInterfaces); out.write("\";\n"); } catch (Throwable t) { out = _jspx_out; if (out != null && out.getBufferSize() != 0) out.clearBuffer(); if (pageContext != null) pageContext.handlePageException(t); } finally { if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext); } }
public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { JspFactory _jspxFactory = null; PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; PageContext _jspx_page_context = null; try { _jspxFactory = JspFactory.getDefaultFactory(); response.setContentType("text/html; charset=UTF-8"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; out.write('\n'); out.write('\n'); out.write("\n\n\n\n<html>\n<head>\n"); JspHelper.createTitle(out, request, request.getParameter("filename")); out.write("\n</head>\n<body>\n<form action=\"/tail.jsp\" method=\"GET\">\n"); generateFileChunks(out, request); out.write("\n</form>\n<hr>\n\n<h2>Local logs</h2>\n<a href=\"/logs/\">Log</a> directory\n\n"); out.println(ServletUtil.htmlFooter()); out.write('\n'); } catch (Throwable t) { if (!(t instanceof SkipPageException)) { out = _jspx_out; if (out != null && out.getBufferSize() != 0) out.clearBuffer(); if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); } } finally { if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context); } }
public final class Fines_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent { private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory(); private static java.util.List<String> _jspx_dependants; private org.glassfish.jsp.api.ResourceInjector _jspx_resourceInjector; public java.util.List<String> getDependants() { return _jspx_dependants; } public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; PageContext _jspx_page_context = null; try { response.setContentType("text/html;charset=UTF-8"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; _jspx_resourceInjector = (org.glassfish.jsp.api.ResourceInjector) application.getAttribute("com.sun.appserv.jsp.resource.injector"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("<!DOCTYPE html>\n"); out.write("<html>\n"); out.write(" <head>\n"); out.write( " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n"); out.write(" <title>Fine</title>\n"); out.write(" <link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\"> \n"); out.write("\n"); out.write(" </head>\n"); out.write(" <body style = \"background-image: url(lib2.jpg)\"> \n"); out.write(" <center>\n"); out.write(" <h1>Update Fines information</h1>\n"); out.write(" <form name=\"Update\" action=\"Fines_upd.jsp\">\n"); out.write(" <table border=\"0\" width=\"3\" cellspacing=\"2\">\n"); out.write(" <thead>\n"); out.write(" <tr>\n"); out.write(" <th>Update Fines</th>\n"); out.write(" <th></th>\n"); out.write(" </tr>\n"); out.write(" </thead>\n"); out.write(" <tbody>\n"); out.write(" <tr>\n"); out.write(" <td>Update Fine table with todays Data</td>\n"); out.write( " <td><input type=\"submit\" value=\"Update / View Fines\" name=\"SUBMIT\"/></td>\n"); out.write(" </tr>\n"); out.write(" </tbody>\n"); out.write(" </table> \n"); out.write(" </form>\n"); out.write(" <h1>Check your Fines Here</h1>\n"); out.write(" <form name=\"Fines\" action=\"Fines.jsp\">\n"); out.write(" <table border=\"0\" width=\"3\" cellspacing=\"2\">\n"); out.write(" <thead>\n"); out.write(" <tr>\n"); out.write(" <th>Get Fine Details</th>\n"); out.write(" <th></th>\n"); out.write(" </tr>\n"); out.write(" </thead>\n"); out.write(" <tbody>\n"); out.write(" <tr>\n"); out.write(" <td>Card No</td>\n"); out.write( " <td><input type=\"text\" name=\"Card_no\" value=\"\"/></td>\n"); out.write(" </tr>\n"); out.write(" <tr>\n"); out.write(" <td></td>\n"); out.write( " <td><input type=\"submit\" value=\"Get Fines\" name=\"SUBMIT\" /></td>\n"); out.write(" </tr>\n"); out.write(" </tbody>\n"); out.write(" </table> \n"); out.write(" "); Connection con = null; String[] selected_Checkboxes = request.getParameterValues("chk"); PreparedStatement pst = null; ResultSet result = null; ResultSet resUpd = null; con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/lbms_db?zeroDateTimeBehavior=convertToNull", "root", "admin12"); String Card_no = request.getParameter("Card_no"); String button = null; Date dt = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String current_date = sdf.format(dt); if (Card_no != null && selected_Checkboxes == null) { String selSql = "SELECT l.card_no, SUM(f.fine_amt) AS total_fine, f.paid " + "FROM book_loans l, fines f " + "WHERE l.loan_id = f.loan_id AND " + "l.card_no = " + Card_no + " " + "GROUP BY l.card_no"; pst = con.prepareStatement(selSql); result = pst.executeQuery(); String box = null; String paid; String pay; Boolean chk = false; out.println("<table>"); pay = "<form action='Fines.jsp'>"; out.println(pay); out.println("<tr>"); out.println("<th>Card No</th>"); out.println("<th>Fine_Amt</th>"); out.println("<th>Paid OR Not</th>"); out.println("</tr>"); while (result.next()) { chk = true; paid = "No"; if (result.getBoolean("f.paid")) { paid = "Yes"; } out.println("<tr>"); out.println( "<td>" + result.getInt("l.card_no") + "</td><td>" + result.getString("total_fine") + "</td><td>" + paid + "</td>"); out.print("<td>"); box = "<input name='chk' value=" + result.getInt("l.card_no") + " type='checkbox'>"; out.print(box); out.print("</td>"); out.print("</tr>"); } if (chk == true) { out.println("<tr>"); out.print("<td>"); button = "<input type='submit' value='Pay Fine' name='Pay'>"; out.print(button); out.print("</td>"); out.println("</tr>"); } else { out.write( "<dialog open> <font color = 'green'>No Fine information. You owe nothing! Thank You</font> </dialog>"); } out.println("</form>"); out.println("</table>"); } else if (selected_Checkboxes != null) { String sqlLoan = null; ResultSet resultLoan = null; String sqlUpdFine = null; PreparedStatement pstUpd = null; String sqlBook = null; ResultSet rsltBook = null; char chkouts = 'N'; int length_chk = selected_Checkboxes.length; for (int i = 0; i < length_chk; i++) { // Check whether the Book is returned before paying the fine. sqlBook = "SELECT COUNT(loan_id) AS no_chkouts FROM book_loans WHERE card_no = " + selected_Checkboxes[i] + " AND date_in = '0000-00-00' AND due_date < " + current_date + ""; pst = con.prepareStatement(sqlBook); rsltBook = pst.executeQuery(); while (rsltBook.next()) { if (rsltBook.getInt("no_chkouts") > 0) { chkouts = 'Y'; } } if (chkouts == 'Y') { out.write( "<dialog open> <font color = 'red'>You have outstanding due checkouts!. Please return the books and then Pay the fine</font> </dialog>"); } // Get the corresponding loan_Ids for each customer from Fines table sqlLoan = "SELECT loan_id FROM book_loans WHERE card_no = " + selected_Checkboxes[i] + " AND date_in IS NOT NULL AND due_date < date_in"; pst = con.prepareStatement(sqlLoan); resultLoan = pst.executeQuery(); while (resultLoan.next()) { sqlUpdFine = "UPDATE fines SET paid = true WHERE loan_id = " + resultLoan.getInt("loan_id") + ""; pstUpd = con.prepareStatement(sqlUpdFine); pstUpd.executeUpdate(); out.println("Payment Updated Successfully"); } } } out.write("\n"); out.write(" </form> \n"); out.write(" </center>\n"); out.write("</body>\n"); out.write("</html>\n"); } catch (Throwable t) { if (!(t instanceof SkipPageException)) { out = _jspx_out; if (out != null && out.getBufferSize() != 0) out.clearBuffer(); if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); else throw new ServletException(t); } } finally { _jspxFactory.releasePageContext(_jspx_page_context); } } }
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent { // !---------- ----------! String API_ROOT = null; Boolean localCookie = false; // !---------- ----------! String messageToDisplay = ""; // !---------- Start login/session handling code ----------! static CookieManager cm = new CookieManager(); String shares = null; // Classes used to handle login and session static class keepAlive { static class ka { String action; Boolean success; String message; int time; } public ka response; } static class logIn { static class loginData { public String action; public Boolean success; public int time; } public loginData response; } static class modResponse { static class moduleResponse { public String action; public Boolean success; public String message; public int time; } public moduleResponse response; public String data; } // isLoggedIn - check to see if user is already logged in public Boolean isLoggedIn(HttpServletRequest request, HttpServletResponse response) { String json = callRestfulApi("auth/keepalive", request, response); if (json != null) { keepAlive keepA = new Gson().fromJson(json, keepAlive.class); return keepA.response.success; } else { return false; } } // TESTED // getLogin - attempt to log user in private Boolean getLogin( String username, String password, HttpServletRequest request, HttpServletResponse response) { String json = callRestfulApi("auth/login/" + username + "/" + Utils.encrypt(password), request, response); if (json != null) { logIn login = new Gson().fromJson(json, logIn.class); if (login == null) { return false; } else { return login.response.success; } } else { return false; } } // TESTED // !---------- End login/session handling code ----------! // !---------- Start Get/Post API Handlers ----------! // callRestfulApi - Calls restful API and returns results as a string public String callRestfulApi( String addr, HttpServletRequest request, HttpServletResponse response) { if (localCookie) CookieHandler.setDefault(cm); try { ByteArrayOutputStream output = new ByteArrayOutputStream(); URL url = new URL(API_ROOT + addr); URLConnection urlConnection = url.openConnection(); String cookieVal = getBrowserInfiniteCookie(request); if (cookieVal != null) { urlConnection.addRequestProperty("Cookie", "infinitecookie=" + cookieVal); urlConnection.setDoInput(true); urlConnection.setDoOutput(true); urlConnection.setRequestProperty("Accept-Charset", "UTF-8"); } IOUtils.copy(urlConnection.getInputStream(), output); String newCookie = getConnectionInfiniteCookie(urlConnection); if (newCookie != null && response != null) { setBrowserInfiniteCookie(response, newCookie, request.getServerPort()); } return output.toString(); } catch (IOException e) { System.out.println(e.getMessage()); return null; } } // TESTED // postToRestfulApi - // Note: params in the addr field need to be URLEncoded private String postToRestfulApi( String addr, String data, HttpServletRequest request, HttpServletResponse response) { if (localCookie) CookieHandler.setDefault(cm); String result = ""; try { URLConnection connection = new URL(API_ROOT + addr).openConnection(); String cookieVal = getBrowserInfiniteCookie(request); if (cookieVal != null) { connection.addRequestProperty("Cookie", "infinitecookie=" + cookieVal); connection.setDoInput(true); } connection.setDoOutput(true); connection.setRequestProperty("Accept-Charset", "UTF-8"); // Post JSON string to URL OutputStream os = connection.getOutputStream(); byte[] b = data.getBytes("UTF-8"); os.write(b); // Receive results back from API InputStream is = connection.getInputStream(); result = IOUtils.toString(is, "UTF-8"); String newCookie = getConnectionInfiniteCookie(connection); if (newCookie != null && response != null) { setBrowserInfiniteCookie(response, newCookie, request.getServerPort()); } } catch (Exception e) { // System.out.println("Exception: " + e.getMessage()); } return result; } // TESTED public static void setBrowserInfiniteCookie( HttpServletResponse response, String value, int nServerPort) { String params = null; if ((443 == nServerPort) || (8443 == nServerPort)) { params = "; path=/; HttpOnly; Secure"; } else { params = "; path=/; HttpOnly"; } response.setHeader("SET-COOKIE", "infinitecookie=" + value + params); // (all this is needed in order to support HTTP only cookies) } // TESTED // getBrowserInfiniteCookie public static String getBrowserInfiniteCookie(HttpServletRequest request) { Cookie[] cookieJar = request.getCookies(); if (cookieJar != null) { for (Cookie cookie : cookieJar) { if (cookie.getName().equals("infinitecookie")) { return cookie.getValue() + ";"; } } } return null; } // TESTED // getConnectionInfiniteCookie public static String getConnectionInfiniteCookie(URLConnection urlConnection) { Map<String, List<String>> headers = urlConnection.getHeaderFields(); Set<Map.Entry<String, List<String>>> entrySet = headers.entrySet(); for (Map.Entry<String, List<String>> entry : entrySet) { String headerName = entry.getKey(); if (headerName != null && headerName.equals("Set-Cookie")) { List<String> headerValues = entry.getValue(); for (String value : headerValues) { if (value.contains("infinitecookie")) { int equalsLoc = value.indexOf("="); int semicolonLoc = value.indexOf(";"); return value.substring(equalsLoc + 1, semicolonLoc); } } } } return null; } // TESTED // !---------- END Get/Post API Handlers ----------! // !---------- Start Infinit.e API Calls ----------! // logOut - private String logOut(HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("auth/logout/", request, response); } // TESTED // getShare - private String getShare(String id, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/share/get/" + id + "/", request, response); } // TESTED // getShareObject - private JSONObject getShareObject( String id, HttpServletRequest request, HttpServletResponse response) { try { return new JSONObject(getShare(id, request, response)); } catch (Exception e) { return null; } } // TESTED // getUserSources - private String getUserSources(HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("config/source/user/", request, response); } // TESTED // getSystemCommunity - private String getSystemCommunity(HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/community/getsystem/", request, response); } // getAllCommunities - private String getAllCommunities(HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/community/getall/", request, response); } // getPublicCommunities - private String getPublicCommunities(HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/community/getpublic/", request, response); } // getCommunity - private String getCommunity(String id, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/community/get/" + id, request, response); } // getCommunity - private String removeCommunity( String id, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/community/remove/" + id, request, response); } // updateCommunityMemberStatus - private String updateCommunityMemberStatus( String communityid, String personid, String status, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi( "social/community/member/update/status/" + communityid + "/" + personid + "/" + status, request, response); } // updateCommunityMemberType - private String updateCommunityMemberType( String communityid, String personid, String type, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi( "social/community/member/update/type/" + communityid + "/" + personid + "/" + type, request, response); } // getSource - private String getSource( String sourceId, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("config/source/get/" + sourceId, request, response); } // deleteSource private String deleteSource( String sourceId, boolean bDocsOnly, String communityId, HttpServletRequest request, HttpServletResponse response) { if (bDocsOnly) { return callRestfulApi( "config/source/delete/docs/" + sourceId + "/" + communityId, request, response); } else { return callRestfulApi( "config/source/delete/" + sourceId + "/" + communityId, request, response); } } // getListOfAllShares - private Map<String, String> getListOfAllShares( HttpServletRequest request, HttpServletResponse response) { Map<String, String> allShares = new HashMap<String, String>(); // publishedSources - array of source._ids of published sources ArrayList<String> publishedSources = new ArrayList<String>(); try { JSONObject sharesObject = new JSONObject(getAllShares(request, response)); JSONObject json_response = sharesObject.getJSONObject("response"); if (json_response.getString("success").equalsIgnoreCase("true")) { if (sharesObject.has("data")) { // Iterate over share objects and write to our collection JSONArray shares = sharesObject.getJSONArray("data"); for (int i = 0; i < shares.length(); i++) { JSONObject share = shares.getJSONObject(i); allShares.put(share.getString("title"), share.getString("_id")); } } } } catch (Exception e) { System.out.println(e.getMessage()); } return allShares; } // getAllShares private String getAllShares(HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/share/search/", request, response); } // getListOfSharesByType - private Map<String, String> getListOfSharesByType( String type, HttpServletRequest request, HttpServletResponse response) { Map<String, String> allShares = new HashMap<String, String>(); // publishedSources - array of source._ids of published sources ArrayList<String> publishedSources = new ArrayList<String>(); try { JSONObject sharesObject = new JSONObject(searchSharesByType(type, request, response)); JSONObject json_response = sharesObject.getJSONObject("response"); if (json_response.getString("success").equalsIgnoreCase("true")) { if (sharesObject.has("data")) { // Iterate over share objects and write to our collection JSONArray shares = sharesObject.getJSONArray("data"); for (int i = 0; i < shares.length(); i++) { JSONObject share = shares.getJSONObject(i); allShares.put(share.getString("title"), share.getString("_id")); } } } } catch (Exception e) { System.out.println(e.getMessage()); } return allShares; } // searchSharesByType private String searchSharesByType( String typeStr, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/share/search/?type=" + typeStr, request, response); } // getSourceShares - private String getSourceShares(HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/share/search/?type=source,source_published", request, response); } // TESTED // getUserSources - private Map<String, String> getUserSourcesAndShares( HttpServletRequest request, HttpServletResponse response) { Map<String, String> userSources = new HashMap<String, String>(); String userIdStr = null; // publishedSources - array of source._ids of published sources ArrayList<String> publishedSources = new ArrayList<String>(); try { JSONObject personObj = new JSONObject(getPerson(request, response)); if (personObj.has("data")) { JSONObject person = new JSONObject(personObj.getString("data")); userIdStr = person.getString("_id"); } // Get the user's shares from social.share where type = source or source_published String tempJson = getSourceShares(request, response); // Covert to JSONObject JSONObject json = new JSONObject(tempJson); JSONObject json_response = json.getJSONObject("response"); if (json_response.getString("success").equalsIgnoreCase("true")) { if (json.has("data")) { // Iterate over share objects and write to our collection JSONArray data = json.getJSONArray("data"); for (int i = 0; i < data.length(); i++) { JSONObject shareObj = data.getJSONObject(i); String tempTitle = shareObj.getString("title"); JSONObject sourceObj = new JSONObject(shareObj.getString("share")); if (sourceObj.has("_id")) publishedSources.add(sourceObj.getString("_id")); if (sourceObj.has("ownerId") && !sourceObj.getString("ownerId").equalsIgnoreCase(userIdStr)) tempTitle += " (+)"; tempTitle += " (*)"; userSources.put(tempTitle, shareObj.getString("_id")); } } } // Get sources that the user owns from ingest.source tempJson = getUserSources(request, response); if (tempJson != null) { json = new JSONObject(tempJson); json_response = json.getJSONObject("response"); if (json_response.getString("success").equalsIgnoreCase("true")) { if (json.has("data")) { // Iterate over source objects and write to our collection JSONArray data = json.getJSONArray("data"); for (int i = 0; i < data.length(); i++) { JSONObject sourceObj = data.getJSONObject(i); // Only add the source to our list if it isn't already in our if (!publishedSources.contains(sourceObj.getString("_id"))) { String tempTitle = sourceObj.getString("title"); if (sourceObj.has("ownerId") && !sourceObj.getString("ownerId").equalsIgnoreCase(userIdStr)) tempTitle += " (+)"; userSources.put(tempTitle, sourceObj.getString("_id")); } } } } } } catch (Exception e) { System.out.println(e.getMessage()); } return userSources; } // getListOfAllPeople private Map<String, String> getListOfAllPeople( HttpServletRequest request, HttpServletResponse response) { Map<String, String> allPeople = new HashMap<String, String>(); try { JSONObject communityObj = new JSONObject(getSystemCommunity(request, response)); if (communityObj.has("data")) { JSONObject community = new JSONObject(communityObj.getString("data")); if (community.has("members")) { JSONArray members = community.getJSONArray("members"); for (int i = 0; i < members.length(); i++) { JSONObject member = members.getJSONObject(i); if (member.has("displayName")) { allPeople.put(member.getString("displayName"), member.getString("_id")); } else { allPeople.put(member.getString("_id"), member.getString("_id")); } } } } } catch (Exception e) { System.out.println(e.getMessage()); } return allPeople; } // getListOfCommunityMembers private Map<String, String> getListOfCommunityMembers( String id, HttpServletRequest request, HttpServletResponse response) { Map<String, String> allPeople = new HashMap<String, String>(); try { JSONObject communityObj = new JSONObject(getCommunity(id, request, response)); if (communityObj.has("data")) { JSONObject community = new JSONObject(communityObj.getString("data")); if (community.has("members")) { JSONArray members = community.getJSONArray("members"); for (int i = 0; i < members.length(); i++) { JSONObject member = members.getJSONObject(i); if (member.has("displayName")) { allPeople.put(member.getString("displayName"), member.getString("_id")); } else { allPeople.put(member.getString("_id"), member.getString("_id")); } } } } } catch (Exception e) { // System.out.println(e.getMessage()); } return allPeople; } // getListOfAllCommunities private Map<String, String> getListOfAllCommunities( HttpServletRequest request, HttpServletResponse response) { Map<String, String> allCommunities = new HashMap<String, String>(); try { JSONObject communitiesObj = new JSONObject(getAllCommunities(request, response)); if (communitiesObj.has("data")) { JSONArray communities = communitiesObj.getJSONArray("data"); for (int i = 0; i < communities.length(); i++) { JSONObject community = communities.getJSONObject(i); allCommunities.put(community.getString("name"), community.getString("_id")); } } } catch (Exception e) { // System.out.println(e.getMessage()); } return allCommunities; } // getListOfAllCommunities private Map<String, String> getListOfAllNonPersonalCommunities( HttpServletRequest request, HttpServletResponse response) { Map<String, String> allCommunities = new HashMap<String, String>(); try { JSONObject communitiesObj = new JSONObject(getAllCommunities(request, response)); if (communitiesObj.has("data")) { JSONArray communities = communitiesObj.getJSONArray("data"); for (int i = 0; i < communities.length(); i++) { JSONObject community = communities.getJSONObject(i); if (community.getString("isPersonalCommunity").equalsIgnoreCase("false") && community.has("name")) { allCommunities.put(community.getString("name"), community.getString("_id")); } } } } catch (Exception e) { System.out.println(e.getMessage()); } return allCommunities; } // getPerson - private String getPerson(HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/person/get/", request, response); } // TESTED // getPerson - private String getPerson(String id, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/person/get/" + id, request, response); } // getPersonCommunities - private JSONArray getPersonCommunities(HttpServletRequest request, HttpServletResponse response) { JSONArray communities = null; try { JSONObject person = new JSONObject(getPerson(request, response)); JSONObject json_response = person.getJSONObject("response"); if (json_response.getString("success").equalsIgnoreCase("true")) { JSONObject data = person.getJSONObject("data"); communities = data.getJSONArray("communities"); return communities; } } catch (Exception e) { } return null; } // TESTED // deletePerson private String deletePerson(String id, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi("social/person/delete/" + id, request, response); } // TESTED // updatePassword private String updatePassword( String id, String password, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi( "social/person/update/password/" + id + "/" + password, request, response); } // TESTED // addToCommunity private String addToCommunity( String community, String person, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi( "social/community/member/invite/" + community + "/" + person + "?skipinvitation=true", request, response); } // TESTED // removeFromCommunity private String removeFromCommunity( String community, String person, HttpServletRequest request, HttpServletResponse response) { return callRestfulApi( "social/community/member/update/status/" + community + "/" + person + "/remove", request, response); } // TESTED // !---------- End Get/Post API Handlers ----------! // !---------- Page functions ----------! // createPageString - // Create list of pages for search results private String createPageString( int numberOfItems, int itemsPerPage, int currentPage, String baseUrl) { StringBuffer pageString = new StringBuffer(); // Calculate the total number of pages int totalPages = 1; if (numberOfItems > itemsPerPage) { double pages = Math.ceil(numberOfItems / (double) itemsPerPage); totalPages = (int) Math.ceil(pages); } // if (totalPages > 1) { for (int i = 1; i <= totalPages; i++) { if (i == currentPage) { pageString.append(i); } else { pageString.append("<a href=\"" + baseUrl + i + "\" title=\"" + i + "\">" + i + "</a>"); } if (i != totalPages) pageString.append(" "); } } else { pageString.append("1"); } return pageString.toString(); } // !---------- Misc. Shared Strings ----------! public String basicNewSource = "" + "{\n" + " \"title\": \"Basic RSS Source Template\",\n" + " \"description\": \"Create a description of your source here.\",\n" + " \"url\": \"http://blahblahblah.com/blah.rss\",\n" + " \"communityIds\": [\"4c927585d591d31d7b37097a\"],\n" + " \"extractType\": \"Feed\",\n" + " \"harvestBadSource\": false,\n" + " \"isApproved\": true,\n" + " \"isPublic\": true,\n" + " \"mediaType\": \"Social\",\n" + " \"useExtractor\": \"none\",\n" + " \"tags\": [\n" + " \"tag1\",\n" + " \"tag2\"\n" + "]\n" + "}"; private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory(); private static java.util.List _jspx_dependants; static { _jspx_dependants = new java.util.ArrayList(4); _jspx_dependants.add("/inc/sharedFunctions.jsp"); _jspx_dependants.add("/inc/header.jsp"); _jspx_dependants.add("/inc/login_form.jsp"); _jspx_dependants.add("/inc/footer.jsp"); } private javax.el.ExpressionFactory _el_expressionfactory; private org.apache.AnnotationProcessor _jsp_annotationprocessor; public Object getDependants() { return _jspx_dependants; } public void _jspInit() { _el_expressionfactory = _jspxFactory .getJspApplicationContext(getServletConfig().getServletContext()) .getExpressionFactory(); _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig() .getServletContext() .getAttribute(org.apache.AnnotationProcessor.class.getName()); } public void _jspDestroy() {} public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { PageContext pageContext = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; PageContext _jspx_page_context = null; try { response.setContentType("text/html; charset=ISO-8859-1"); pageContext = _jspxFactory.getPageContext(this, request, response, null, false, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); out = pageContext.getOut(); _jspx_out = out; out.write("<!--\n"); out.write("Copyright 2012 The Infinit.e Open Source Project\n"); out.write("\n"); out.write("Licensed under the Apache License, Version 2.0 (the \"License\");\n"); out.write("you may not use this file except in compliance with the License.\n"); out.write("You may obtain a copy of the License at\n"); out.write("\n"); out.write(" http://www.apache.org/licenses/LICENSE-2.0\n"); out.write("\n"); out.write("Unless required by applicable law or agreed to in writing, software\n"); out.write("distributed under the License is distributed on an \"AS IS\" BASIS,\n"); out.write("WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"); out.write("See the License for the specific language governing permissions and\n"); out.write("limitations under the License.\n"); out.write("-->\n"); out.write("\n"); out.write("\n"); out.write("<!--\n"); out.write("Copyright 2012 The Infinit.e Open Source Project\n"); out.write("\n"); out.write("Licensed under the Apache License, Version 2.0 (the \"License\");\n"); out.write("you may not use this file except in compliance with the License.\n"); out.write("You may obtain a copy of the License at\n"); out.write("\n"); out.write(" http://www.apache.org/licenses/LICENSE-2.0\n"); out.write("\n"); out.write("Unless required by applicable law or agreed to in writing, software\n"); out.write("distributed under the License is distributed on an \"AS IS\" BASIS,\n"); out.write("WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"); out.write("See the License for the specific language governing permissions and\n"); out.write("limitations under the License.\n"); out.write("-->\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write('\n'); out.write('\n'); out.write('\n'); // !---------- Read AppConstants.js to get the API_ROOT value ----------! if (API_ROOT == null) { URL baseUrl = new URL(request.getScheme(), request.getServerName(), request.getServerPort(), ""); ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); String appConstantFile = null; InputStream in = null; // Use file from local deployment always try { in = new FileInputStream(application.getRealPath("/") + "AppConstants.js"); appConstantFile = IOUtils.toString(in); } catch (Exception e) { // System.out.println("Exception: " + e.getMessage()); } // Eval the file as JavaScript through or JS engine and call getEndPointUrl try { engine.eval(appConstantFile); engine.eval("output = getEndPointUrl();"); API_ROOT = (String) engine.get("output"); } catch (Exception e) { // System.out.println("Exception: " + e.getMessage()); } if (null == API_ROOT) { // Default to localhost API_ROOT = "http://localhost:8080/api/"; } if (API_ROOT.contains("localhost")) { localCookie = true; } else { localCookie = false; } } boolean isLoggedIn = false; messageToDisplay = ""; // Page request is a post back from the login form if (request.getParameter("username") != null && request.getParameter("password") != null) { String username = request.getParameter("username"); String password = request.getParameter("password"); isLoggedIn = getLogin(username, password, request, response); // Temp fix, refresh the page to retrieve the new cookie that was set out.println("<meta http-equiv=\"refresh\" content=\"0\">"); } // Make sure user is already logged in and retrieve their user id else { isLoggedIn = isLoggedIn(request, response); } out.write("\n"); out.write("\n"); out.write("\t\n"); out.write('\n'); out.write('\n'); out.write('\n'); messageToDisplay = ""; // if (isLoggedIn) { // Determine which action is being called for by the user String action = ""; if (request.getParameter("action") != null) action = request.getParameter("action").toLowerCase(); if (request.getParameter("dispatchAction") != null) action = request.getParameter("dispatchAction").toLowerCase(); try { if (action.equals("logout")) { logOut(request, response); out.println("<meta http-equiv=\"refresh\" content=\"0;url=index.jsp\">"); } } catch (Exception e) { // System.out.println(e.getMessage()); } } out.write("\n"); out.write("\n"); out.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n"); out.write("<html>\n"); out.write("<head>\n"); out.write("\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\n"); out.write("\t<link rel=\"stylesheet\" type=\"text/css\" href=\"inc/manager.css\" />\n"); out.write("\t<title>Infinit.e.Manager - Home</title>\n"); out.write("</head>\n"); out.write("<body>\n"); out.write("\n"); out.write("<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" >\n"); out.write("<tr valign=\"middle\">\n"); out.write("\t<td width=\"100%\" background=\"image/infinite_logo_bg.png\">\n"); out.write("\t\t<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" >\n"); out.write("\t\t\t<tr valign=\"bottom\">\n"); out.write( "\t\t\t\t<td width=\"200\"><a href=\"index.jsp\"><img src=\"image/infinite_logo.png\" border=\"0\"></a></td>\n"); out.write("\t\t\t\t<td>\n"); out.write( "\t\t\t\t\t<a href=\"people.jsp\" class=\"headerLink\" title=\"Add/Edit Users\">People</a> \n"); out.write( "\t\t\t\t\t<a href=\"communities.jsp\" class=\"headerLink\" title=\"Add/Edit Communities\">Communities</a> \n"); out.write( "\t\t\t\t\t<a href=\"sources.jsp\" class=\"headerLink\" title=\"Add/Edit Sources\">Sources</a> \n"); out.write( "\t\t\t\t\t<!-- <a href=\"widgets.jsp\" class=\"headerLink\" title=\"Add/Edit Widgets\">Widgets</a> -->\n"); out.write( "\t\t\t\t\t<!-- <a href=\"hadoop.jsp\" class=\"headerLink\" title=\"Add/Edit Hadoop Jars\">Hadoop</a> -->\n"); out.write( "\t\t\t\t\t<!-- <a href=\"shares.jsp\" class=\"headerLink\" title=\"Add/Edit Shares\">Shares</a> -->\n"); out.write( "\t\t\t\t\t<a href=\"index.jsp\" class=\"headerLink\" title=\"Home\">Home</a> \n"); out.write( "\t\t\t\t\t<a href=\"?action=logout\" class=\"headerLink\" title=\"Logout\">Logout</a>\n"); out.write("\t\t\t\t</td>\n"); out.write( "\t\t\t\t<td align=\"right\" width=\"120\" background=\"image/ikanow_logo_smaller_bg.png\"></td>\n"); out.write("\t\t\t</tr>\n"); out.write("\t\t</table>\n"); out.write("\t</td>\n"); out.write("</tr>\n"); out.write("<tr>\n"); out.write("\t<td bgcolor=\"#ffffff\">\n"); out.write('\n'); out.write('\n'); if (!isLoggedIn) { out.write('\n'); out.write(' '); out.write(' '); out.write("<!-- Begin login_form.jsp -->\n"); out.write("\n"); out.write("<br />\n"); out.write("<br />\n"); out.write("<br />\n"); out.write("<br />\n"); out.write("<center>\n"); out.write("<form method=\"post\" name=\"login_form\">\n"); out.write( "<table class=\"standardTable\" cellpadding=\"5\" cellspacing=\"1\" width=\"35%\" >\n"); out.write("\t<tr>\n"); out.write("\t\t<td colspan=\"2\" align=\"center\">\n"); out.write("\t\t\t<font color=\"white\"><b>Login to Infinit.e.Manager</b></font>\n"); out.write("\t\t</td>\n"); out.write("\t</tr>\n"); out.write("\t<tr>\n"); out.write("\t\t<td bgcolor=\"white\" width=\"40%\">User Name:</td>\n"); out.write( "\t\t<td bgcolor=\"white\" width=\"60%\"><input type=\"text\" name=\"username\" size=\"40\"></td>\n"); out.write("\t</tr>\n"); out.write("\t<tr>\n"); out.write("\t\t<td bgcolor=\"white\" width=\"40%\">Password:</td>\n"); out.write( "\t\t<td bgcolor=\"white\" width=\"60%\"><input type=\"password\" name=\"password\" size=\"40\"></td>\n"); out.write("\t</tr>\n"); out.write("\t<tr>\n"); out.write("\t\t<td colspan=\"2\" align=\"right\"><input type=\"submit\"></td>\n"); out.write("\t</tr>\n"); out.write("</table>\n"); out.write("</form>\n"); out.write("</center>\n"); out.write("<br />\n"); out.write("<br />\n"); out.write("<br />\n"); out.write("<br />\n"); out.write("<!-- End login_form.jsp -->"); out.write('\n'); } else { out.write("\n"); out.write( "\t<table class=\"standardTable\" cellpadding=\"5\" cellspacing=\"1\" width=\"100%\" >\n"); out.write("\t<tr>\n"); out.write("\t\t<td width=\"100%\" bgcolor=\"#ffffff\">\n"); out.write("\t\t\t<br />\n"); out.write("\t\t\t<br />\n"); out.write("\t\t\t\n"); out.write("\t\t\t<center>\n"); out.write( "\t\t\t<table class=\"standardTable\" cellpadding=\"5\" cellspacing=\"1\" width=\"50%\">\n"); out.write("\t\t\t\t<tr>\n"); out.write("\t\t\t\t\t<td> </td>\n"); out.write("\t\t\t\t</tr>\n"); out.write("\t\t\t\t<tr>\n"); out.write("\t\t\t\t\t<td bgcolor=\"white\">\n"); out.write("\t\t\t\t\t\t<ul>\n"); out.write( "\t\t\t\t\t\t\t<li><b><a href=\"people.jsp\" title=\"Add/Edit Users\">People</a></b> - Add/Edit Users</li>\n"); out.write( "\t\t\t\t\t\t\t<li><b><a href=\"communities.jsp\" title=\"Add/Edit Users\">Communities</a></b> - Add/Edit Communities and Membership</li>\n"); out.write( "\t\t\t\t\t\t\t<li><b><a href=\"sources.jsp\" title=\"Add/Edit Users\">Sources</a></b> - Add/Edit Sources\n"); out.write( "\t\t\t\t\t\t\t\t<ul><li><b><a href=\"sourcemonitor.jsp\" title=\"Monitor Sources\" target=\"_blank\">Source Monitoring</a></b> (new tab)</li></ul>\n"); out.write("\t\t\t\t\t\t\t</li>\n"); out.write("\t\t\t\t\t\t</ul>\n"); out.write("\t\t\t\t\t\t<ul>\n"); out.write( "\t\t\t\t\t\t\t<li><b><a href=\"fileUploader.jsp\" title=\"Add/Edit Users\" target=\"_blank\">File Uploader</a></b> - Add/Edit Files or JSON (new tab)</li>\n"); out.write( "\t\t\t\t\t\t\t<li><b><a href=\"widgetUploader.jsp\" title=\"Add/Edit Users\" target=\"_blank\">Widget Uploader</a></b> - Add/Edit Widgets (new tab)</li>\n"); out.write( "\t\t\t\t\t\t\t<li><b><a href=\"pluginManager.jsp\" title=\"Add/Edit Users\" target=\"_blank\">Plugin Manager</a></b> - Add/Edit Hadoop Plugins (new tab)</li>\t\t\t\t\t\t\n"); out.write("\t\t\t\t\t\t</ul>\n"); out.write("\t\t\t\t\t\t<ul>\n"); out.write( "\t\t\t\t\t\t\t<li><b><a href=\"chrome.html\" title=\"Install Chrome Source Extension\" target=\"_blank\">Infinit.e Chrome Extension</a></b> - Create Sources from Chrome</li>\n"); out.write("\t\t\t\t\t\t</ul>\n"); out.write("\t\t\t\t\t</td>\n"); out.write("\t\t\t\t</tr>\n"); out.write("\t\t\t</table>\n"); out.write("\t\t\t</center>\n"); out.write("\n"); out.write("\t\t\t<br />\n"); out.write("\t\t\t<br />\n"); out.write("\t\t\t<br />\n"); out.write("\t\t\t<br />\n"); out.write("\t\t\t<br />\n"); out.write("\t\t\t<br />\n"); out.write("\t\t</td>\n"); out.write("\t<tr>\n"); out.write("\t</table>\n"); } out.write('\n'); out.write('\n'); out.write("\t\n"); out.write("\t</td>\n"); out.write("<tr>\n"); out.write("<tr>\n"); out.write("\t<td align=\"right\" bgcolor=\"#000000\">\n"); out.write("\t\t \n"); out.write( "\t\t<!-- <a href=\"http://www.ikanow.com\" title=\"www.ikanow.com\"><img src=\"image/ikanow_logo_small.png\" border=\"0\"></a> -->\n"); out.write("\t</td>\n"); out.write("</tr>\n"); out.write("</table>\n"); out.write("\n"); out.write("\n"); out.write("</body>\n"); out.write("</html>"); } catch (Throwable t) { if (!(t instanceof SkipPageException)) { out = _jspx_out; if (out != null && out.getBufferSize() != 0) try { out.clearBuffer(); } catch (java.io.IOException e) { } if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); } } finally { _jspxFactory.releasePageContext(_jspx_page_context); } } }
public final class browseBlock_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent { static JspHelper jspHelper = new JspHelper(); public void generateFileDetails(JspWriter out, HttpServletRequest req, Configuration conf) throws IOException, InterruptedException { int chunkSizeToView = 0; long startOffset = 0; int datanodePort; String blockIdStr = null; long currBlockId = 0; blockIdStr = req.getParameter("blockId"); if (blockIdStr == null) { out.print("Invalid input (blockId absent)"); return; } currBlockId = Long.parseLong(blockIdStr); String datanodePortStr = req.getParameter("datanodePort"); if (datanodePortStr == null) { out.print("Invalid input (datanodePort absent)"); return; } datanodePort = Integer.parseInt(datanodePortStr); String namenodeInfoPortStr = req.getParameter("namenodeInfoPort"); int namenodeInfoPort = -1; if (namenodeInfoPortStr != null) namenodeInfoPort = Integer.parseInt(namenodeInfoPortStr); String chunkSizeToViewStr = req.getParameter("chunkSizeToView"); if (chunkSizeToViewStr != null && Integer.parseInt(chunkSizeToViewStr) > 0) { chunkSizeToView = Integer.parseInt(chunkSizeToViewStr); } else { chunkSizeToView = JspHelper.getDefaultChunkSize(conf); } String startOffsetStr = req.getParameter("startOffset"); if (startOffsetStr == null || Long.parseLong(startOffsetStr) < 0) startOffset = 0; else startOffset = Long.parseLong(startOffsetStr); String filename = HtmlQuoting.unquoteHtmlChars(req.getParameter("filename")); if (filename == null || filename.length() == 0) { out.print("Invalid input"); return; } String blockSizeStr = req.getParameter("blockSize"); long blockSize = 0; if (blockSizeStr == null || blockSizeStr.length() == 0) { out.print("Invalid input"); return; } blockSize = Long.parseLong(blockSizeStr); String tokenString = req.getParameter(JspHelper.DELEGATION_PARAMETER_NAME); UserGroupInformation ugi = JspHelper.getUGI(req, conf); DFSClient dfs = JspHelper.getDFSClient(ugi, jspHelper.nameNodeAddr, conf); List<LocatedBlock> blocks = dfs.namenode.getBlockLocations(filename, 0, Long.MAX_VALUE).getLocatedBlocks(); // Add the various links for looking at the file contents // URL for downloading the full file String downloadUrl = "http://" + req.getServerName() + ":" + +req.getServerPort() + "/streamFile" + URLEncoder.encode(filename, "UTF-8") + "?" + JspHelper.DELEGATION_PARAMETER_NAME + "=" + tokenString; out.print("<a name=\"viewOptions\"></a>"); out.print("<a href=\"" + downloadUrl + "\">Download this file</a><br>"); DatanodeInfo chosenNode; // URL for TAIL LocatedBlock lastBlk = blocks.get(blocks.size() - 1); long blockId = lastBlk.getBlock().getBlockId(); try { chosenNode = jspHelper.bestNode(lastBlk); } catch (IOException e) { out.print(e.toString()); dfs.close(); return; } String fqdn = InetAddress.getByName(chosenNode.getHost()).getCanonicalHostName(); String tailUrl = "http://" + fqdn + ":" + chosenNode.getInfoPort() + "/tail.jsp?filename=" + URLEncoder.encode(filename, "UTF-8") + "&namenodeInfoPort=" + namenodeInfoPort + "&chunkSizeToView=" + chunkSizeToView + "&referrer=" + URLEncoder.encode(req.getRequestURL() + "?" + req.getQueryString(), "UTF-8") + JspHelper.getDelegationTokenUrlParam(tokenString); out.print("<a href=\"" + tailUrl + "\">Tail this file</a><br>"); out.print("<form action=\"/browseBlock.jsp\" method=GET>"); out.print("<b>Chunk size to view (in bytes, up to file's DFS block size): </b>"); out.print("<input type=\"hidden\" name=\"blockId\" value=\"" + currBlockId + "\">"); out.print("<input type=\"hidden\" name=\"blockSize\" value=\"" + blockSize + "\">"); out.print("<input type=\"hidden\" name=\"startOffset\" value=\"" + startOffset + "\">"); out.print("<input type=\"hidden\" name=\"filename\" value=\"" + filename + "\">"); out.print("<input type=\"hidden\" name=\"datanodePort\" value=\"" + datanodePort + "\">"); out.print( "<input type=\"hidden\" name=\"namenodeInfoPort\" value=\"" + namenodeInfoPort + "\">"); out.print( "<input type=\"text\" name=\"chunkSizeToView\" value=" + chunkSizeToView + " size=10 maxlength=10>"); out.print(" <input type=\"submit\" name=\"submit\" value=\"Refresh\">"); out.print("</form>"); out.print("<hr>"); out.print("<a name=\"blockDetails\"></a>"); out.print("<B>Total number of blocks: " + blocks.size() + "</B><br>"); // generate a table and dump the info out.println("\n<table>"); for (LocatedBlock cur : blocks) { out.print("<tr>"); blockId = cur.getBlock().getBlockId(); blockSize = cur.getBlock().getNumBytes(); String blk = "blk_" + Long.toString(blockId); out.print("<td>" + Long.toString(blockId) + ":</td>"); DatanodeInfo[] locs = cur.getLocations(); for (int j = 0; j < locs.length; j++) { String datanodeAddr = locs[j].getName(); datanodePort = Integer.parseInt( datanodeAddr.substring(datanodeAddr.indexOf(':') + 1, datanodeAddr.length())); fqdn = InetAddress.getByName(locs[j].getHost()).getCanonicalHostName(); String blockUrl = "http://" + fqdn + ":" + locs[j].getInfoPort() + "/browseBlock.jsp?blockId=" + Long.toString(blockId) + "&blockSize=" + blockSize + "&filename=" + URLEncoder.encode(filename, "UTF-8") + "&datanodePort=" + datanodePort + "&genstamp=" + cur.getBlock().getGenerationStamp() + "&namenodeInfoPort=" + namenodeInfoPort + "&chunkSizeToView=" + chunkSizeToView; out.print( "<td> </td>" + "<td><a href=\"" + blockUrl + "\">" + datanodeAddr + "</a></td>"); } out.println("</tr>"); } out.println("</table>"); out.print("<hr>"); String namenodeHost = jspHelper.nameNodeAddr.getHostName(); out.print( "<br><a href=\"http://" + InetAddress.getByName(namenodeHost).getCanonicalHostName() + ":" + namenodeInfoPort + "/dfshealth.jsp\">Go back to DFS home</a>"); dfs.close(); } public void generateFileChunks(JspWriter out, HttpServletRequest req, Configuration conf) throws IOException, InterruptedException { long startOffset = 0; int datanodePort = 0; int chunkSizeToView = 0; String namenodeInfoPortStr = req.getParameter("namenodeInfoPort"); int namenodeInfoPort = -1; if (namenodeInfoPortStr != null) namenodeInfoPort = Integer.parseInt(namenodeInfoPortStr); String filename = HtmlQuoting.unquoteHtmlChars(req.getParameter("filename")); if (filename == null) { out.print("Invalid input (filename absent)"); return; } String blockIdStr = null; long blockId = 0; blockIdStr = req.getParameter("blockId"); if (blockIdStr == null) { out.print("Invalid input (blockId absent)"); return; } blockId = Long.parseLong(blockIdStr); String tokenString = req.getParameter(JspHelper.DELEGATION_PARAMETER_NAME); UserGroupInformation ugi = JspHelper.getUGI(req, conf); final DFSClient dfs = JspHelper.getDFSClient(ugi, jspHelper.nameNodeAddr, conf); Token<BlockTokenIdentifier> accessToken = BlockTokenSecretManager.DUMMY_TOKEN; if (conf.getBoolean(DFSConfigKeys.DFS_BLOCK_ACCESS_TOKEN_ENABLE_KEY, false)) { List<LocatedBlock> blks = dfs.namenode.getBlockLocations(filename, 0, Long.MAX_VALUE).getLocatedBlocks(); if (blks == null || blks.size() == 0) { out.print("Can't locate file blocks"); dfs.close(); return; } for (int i = 0; i < blks.size(); i++) { if (blks.get(i).getBlock().getBlockId() == blockId) { accessToken = blks.get(i).getBlockToken(); break; } } } String blockGenStamp = null; long genStamp = 0; blockGenStamp = req.getParameter("genstamp"); if (blockGenStamp == null) { out.print("Invalid input (genstamp absent)"); return; } genStamp = Long.parseLong(blockGenStamp); String blockSizeStr; long blockSize = 0; blockSizeStr = req.getParameter("blockSize"); if (blockSizeStr == null) { out.print("Invalid input (blockSize absent)"); return; } blockSize = Long.parseLong(blockSizeStr); String chunkSizeToViewStr = req.getParameter("chunkSizeToView"); if (chunkSizeToViewStr != null && Integer.parseInt(chunkSizeToViewStr) > 0) chunkSizeToView = Integer.parseInt(chunkSizeToViewStr); else chunkSizeToView = JspHelper.getDefaultChunkSize(conf); String startOffsetStr = req.getParameter("startOffset"); if (startOffsetStr == null || Long.parseLong(startOffsetStr) < 0) startOffset = 0; else startOffset = Long.parseLong(startOffsetStr); String datanodePortStr = req.getParameter("datanodePort"); if (datanodePortStr == null) { out.print("Invalid input (datanodePort absent)"); return; } datanodePort = Integer.parseInt(datanodePortStr); out.print("<h3>File: "); JspHelper.printPathWithLinks( HtmlQuoting.quoteHtmlChars(filename), out, namenodeInfoPort, tokenString); out.print("</h3><hr>"); String parent = new File(filename).getParent(); JspHelper.printGotoForm(out, namenodeInfoPort, tokenString, HtmlQuoting.quoteHtmlChars(parent)); out.print("<hr>"); out.print( "<a href=\"http://" + req.getServerName() + ":" + req.getServerPort() + "/browseDirectory.jsp?dir=" + URLEncoder.encode(parent, "UTF-8") + "&namenodeInfoPort=" + namenodeInfoPort + "\"><i>Go back to dir listing</i></a><br>"); out.print("<a href=\"#viewOptions\">Advanced view/download options</a><br>"); out.print("<hr>"); // Determine the prev & next blocks long nextStartOffset = 0; long nextBlockSize = 0; String nextBlockIdStr = null; String nextGenStamp = null; String nextHost = req.getServerName(); int nextPort = req.getServerPort(); int nextDatanodePort = datanodePort; // determine data for the next link if (startOffset + chunkSizeToView >= blockSize) { // we have to go to the next block from this point onwards List<LocatedBlock> blocks = dfs.namenode.getBlockLocations(filename, 0, Long.MAX_VALUE).getLocatedBlocks(); for (int i = 0; i < blocks.size(); i++) { if (blocks.get(i).getBlock().getBlockId() == blockId) { if (i != blocks.size() - 1) { LocatedBlock nextBlock = blocks.get(i + 1); nextBlockIdStr = Long.toString(nextBlock.getBlock().getBlockId()); nextGenStamp = Long.toString(nextBlock.getBlock().getGenerationStamp()); nextStartOffset = 0; nextBlockSize = nextBlock.getBlock().getNumBytes(); DatanodeInfo d = jspHelper.bestNode(nextBlock); String datanodeAddr = d.getName(); nextDatanodePort = Integer.parseInt( datanodeAddr.substring(datanodeAddr.indexOf(':') + 1, datanodeAddr.length())); nextHost = InetAddress.getByName(d.getHost()).getCanonicalHostName(); nextPort = d.getInfoPort(); } } } } else { // we are in the same block nextBlockIdStr = blockIdStr; nextStartOffset = startOffset + chunkSizeToView; nextBlockSize = blockSize; nextGenStamp = blockGenStamp; } String nextUrl = null; if (nextBlockIdStr != null) { nextUrl = "http://" + nextHost + ":" + nextPort + "/browseBlock.jsp?blockId=" + nextBlockIdStr + "&blockSize=" + nextBlockSize + "&startOffset=" + nextStartOffset + "&genstamp=" + nextGenStamp + "&filename=" + URLEncoder.encode(filename, "UTF-8") + "&chunkSizeToView=" + chunkSizeToView + "&datanodePort=" + nextDatanodePort + "&namenodeInfoPort=" + namenodeInfoPort + JspHelper.getDelegationTokenUrlParam(tokenString); out.print("<a href=\"" + nextUrl + "\">View Next chunk</a> "); } // determine data for the prev link String prevBlockIdStr = null; String prevGenStamp = null; long prevStartOffset = 0; long prevBlockSize = 0; String prevHost = req.getServerName(); int prevPort = req.getServerPort(); int prevDatanodePort = datanodePort; if (startOffset == 0) { List<LocatedBlock> blocks = dfs.namenode.getBlockLocations(filename, 0, Long.MAX_VALUE).getLocatedBlocks(); for (int i = 0; i < blocks.size(); i++) { if (blocks.get(i).getBlock().getBlockId() == blockId) { if (i != 0) { LocatedBlock prevBlock = blocks.get(i - 1); prevBlockIdStr = Long.toString(prevBlock.getBlock().getBlockId()); prevGenStamp = Long.toString(prevBlock.getBlock().getGenerationStamp()); prevStartOffset = prevBlock.getBlock().getNumBytes() - chunkSizeToView; if (prevStartOffset < 0) prevStartOffset = 0; prevBlockSize = prevBlock.getBlock().getNumBytes(); DatanodeInfo d = jspHelper.bestNode(prevBlock); String datanodeAddr = d.getName(); prevDatanodePort = Integer.parseInt( datanodeAddr.substring(datanodeAddr.indexOf(':') + 1, datanodeAddr.length())); prevHost = InetAddress.getByName(d.getHost()).getCanonicalHostName(); prevPort = d.getInfoPort(); } } } } else { // we are in the same block prevBlockIdStr = blockIdStr; prevStartOffset = startOffset - chunkSizeToView; if (prevStartOffset < 0) prevStartOffset = 0; prevBlockSize = blockSize; prevGenStamp = blockGenStamp; } String prevUrl = null; if (prevBlockIdStr != null) { prevUrl = "http://" + prevHost + ":" + prevPort + "/browseBlock.jsp?blockId=" + prevBlockIdStr + "&blockSize=" + prevBlockSize + "&startOffset=" + prevStartOffset + "&filename=" + URLEncoder.encode(filename, "UTF-8") + "&chunkSizeToView=" + chunkSizeToView + "&genstamp=" + prevGenStamp + "&datanodePort=" + prevDatanodePort + "&namenodeInfoPort=" + namenodeInfoPort + JspHelper.getDelegationTokenUrlParam(tokenString); out.print("<a href=\"" + prevUrl + "\">View Prev chunk</a> "); } out.print("<hr>"); out.print("<textarea cols=\"100\" rows=\"25\" wrap=\"virtual\" style=\"width:100%\" READONLY>"); try { jspHelper.streamBlockInAscii( new InetSocketAddress(req.getServerName(), datanodePort), blockId, accessToken, genStamp, blockSize, startOffset, chunkSizeToView, out, conf); } catch (Exception e) { out.print(e); } out.print("</textarea>"); dfs.close(); } private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory(); private static java.util.Vector _jspx_dependants; private org.apache.jasper.runtime.ResourceInjector _jspx_resourceInjector; public Object getDependants() { return _jspx_dependants; } public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; PageContext _jspx_page_context = null; try { response.setContentType("text/html; charset=UTF-8"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; _jspx_resourceInjector = (org.apache.jasper.runtime.ResourceInjector) application.getAttribute("com.sun.appserv.jsp.resource.injector"); out.write('\n'); out.write('\n'); out.write("\n<!DOCTYPE html>\n<html>\n<head>\n"); JspHelper.createTitle(out, request, request.getParameter("filename")); out.write("\n</head>\n<body onload=\"document.goto.dir.focus()\">\n"); Configuration conf = (Configuration) getServletContext().getAttribute(JspHelper.CURRENT_CONF); generateFileChunks(out, request, conf); out.write("\n<hr>\n"); generateFileDetails(out, request, conf); out.write("\n\n<h2>Local logs</h2>\n<a href=\"/logs/\">Log</a> directory\n\n"); out.println(ServletUtil.htmlFooter()); out.write('\n'); } catch (Throwable t) { if (!(t instanceof SkipPageException)) { out = _jspx_out; if (out != null && out.getBufferSize() != 0) out.clearBuffer(); if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); } } finally { _jspxFactory.releasePageContext(_jspx_page_context); } } }