[freenet-cvs] r16806 - branches/legacy/stable/src/freenet/node/http

jolantern at freenetproject.org jolantern at freenetproject.org
Sun Dec 23 16:26:45 UTC 2007


Author: jolantern
Date: 2007-12-23 16:26:44 +0000 (Sun, 23 Dec 2007)
New Revision: 16806

Modified:
   branches/legacy/stable/src/freenet/node/http/BookmarkManagerServlet.java
Log:
indent

Modified: branches/legacy/stable/src/freenet/node/http/BookmarkManagerServlet.java
===================================================================
--- branches/legacy/stable/src/freenet/node/http/BookmarkManagerServlet.java	2007-12-23 13:07:07 UTC (rev 16805)
+++ branches/legacy/stable/src/freenet/node/http/BookmarkManagerServlet.java	2007-12-23 16:26:44 UTC (rev 16806)
@@ -45,114 +45,114 @@
 	extends HttpServlet
 	implements ConfigUpdateListener {
 
-    private final static String NL = System.getProperty("line.separator");
-    private boolean allowUpdatingBookmarks;
-    private String thisPath;
-    private ArrayList bookmarks;
-    private HtmlTemplate pageTemplate;
-    /** bookmark submitted via add but not yet confirmed */
-    private Bookmark pendingNewBookmark;
+	private final static String NL = System.getProperty("line.separator");
+	private boolean allowUpdatingBookmarks;
+	private String thisPath;
+	private ArrayList bookmarks;
+	private HtmlTemplate pageTemplate;
+	/** bookmark submitted via add but not yet confirmed */
+	private Bookmark pendingNewBookmark;
 	/**
 	 * random challenge the user must confirm with to get the pending bookmark
 	 * added
 	 */
-    private long pendingNewBookmarkSecret;
-    /** random source used to calculate said random challenge */
-    private RandomSource randSource;
+	private long pendingNewBookmarkSecret;
+	/** random source used to calculate said random challenge */
+	private RandomSource randSource;
 	/**
 	 * random challenge built into the html form so that only update and remove
 	 * requests
 	 */
-    private long lastRenderSecret;
-    private boolean logDEBUG;
+	private long lastRenderSecret;
+	private boolean logDEBUG;
 
-    /*
-     * All supported params
-     */
-    public final static String PARAM_OP = "op";
-    public final static String PARAM_BACK = "back";
-    public final static String PARAM_NUM = "num";
-    public final static String PARAM_KEY = "key";
-    public final static String PARAM_OLDKEY = "oldKey";
-    public final static String PARAM_TITLE = "title";
-    public final static String PARAM_DESCRIPTION = "description";
-    public final static String PARAM_ACTIVELINKFILE = "activelinkFile";
-    public final static String PARAM_CONFIRMID = "confirmid";
-    public final static String PARAM_CHALLENGE = "challenge";
-    
-    /*
-     * All supported ops
-     */
-    public final static String PARAM_OP_ADD = "add";
-    public final static String PARAM_OP_UPDATE = "update";
-    public final static String PARAM_OP_REMOVE = "remove";
-    public final static String PARAM_OP_CONFIRM = "confirm";
-    
-    /*
-     * These are used to render the HTML form.  yuck, I know.  so, when do we
-     * integrate jsps?
-     */
-    private final static int SIZE_KEY = 60;
-    private final static int SIZE_TITLE = 25;
-    private final static int SIZE_ACTIVELINK = 15;
-    private final static int SIZE_DESCRIPTION_WIDTH = 60;
-    private final static int SIZE_DESCRIPTION_HEIGHT = 2;
-    
-    /**
+	/*
+	 * All supported params
+	 */
+	public final static String PARAM_OP = "op";
+	public final static String PARAM_BACK = "back";
+	public final static String PARAM_NUM = "num";
+	public final static String PARAM_KEY = "key";
+	public final static String PARAM_OLDKEY = "oldKey";
+	public final static String PARAM_TITLE = "title";
+	public final static String PARAM_DESCRIPTION = "description";
+	public final static String PARAM_ACTIVELINKFILE = "activelinkFile";
+	public final static String PARAM_CONFIRMID = "confirmid";
+	public final static String PARAM_CHALLENGE = "challenge";
+	
+	/*
+	 * All supported ops
+	 */
+	public final static String PARAM_OP_ADD = "add";
+	public final static String PARAM_OP_UPDATE = "update";
+	public final static String PARAM_OP_REMOVE = "remove";
+	public final static String PARAM_OP_CONFIRM = "confirm";
+	
+	/*
+	 * These are used to render the HTML form.  yuck, I know.  so, when do we
+	 * integrate jsps?
+	 */
+	private final static int SIZE_KEY = 60;
+	private final static int SIZE_TITLE = 25;
+	private final static int SIZE_ACTIVELINK = 15;
+	private final static int SIZE_DESCRIPTION_WIDTH = 60;
+	private final static int SIZE_DESCRIPTION_HEIGHT = 2;
+	
+	/**
 	 * hardcoded path to the node info servlet config options for the
 	 * bookmarks. what, the bookmarks should be under their own tree? or
 	 * perhaps in their own file?
-     */
+	 */
 	private final static String BOOKMARK_PATH =
 		"mainport.params.servlet.2.bookmarks";
 
-    public final void init() {
+	public final void init() {
 		randSource =
 			(RandomSource) getServletContext().getAttribute(
 				"freenet.crypt.RandomSource");
-        bookmarks = loadDefaultBookmarks();
-        thisPath = "/servlet/bookmarkmanager";
-        pendingNewBookmark = null;
-        logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
-        try {
+		bookmarks = loadDefaultBookmarks();
+		thisPath = "/servlet/bookmarkmanager";
+		pendingNewBookmark = null;
+		logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
+		try {
 			pageTemplate =
 				HtmlTemplate.createTemplate("BookmarkManagerServletTmpl.html");
-        } catch (IOException ioe) {
-            Core.logger.log(this, "Error creating template", ioe, Logger.ERROR);
-        }
-        NodeConfigUpdater.addUpdateListener(BOOKMARK_PATH, this);
-        allowUpdatingBookmarks = !Main.publicNode;
-    }
-    
-    /**
-     * Read through the Node.config and create Bookmark objects based only on
-     * that (does not read the config file)
-     */
-    private ArrayList loadDefaultBookmarks() {
-        ArrayList bmks = new ArrayList();
-        try {
-            Params params = new Params(Node.getConfig().getOptions());
-        
-            if (params != null) {
-                Option countOpt = params.getOption(BOOKMARK_PATH+".count");
-                int maxBookmarks = -1;
-                if (countOpt != null) 
-                    try {
+		} catch (IOException ioe) {
+			Core.logger.log(this, "Error creating template", ioe, Logger.ERROR);
+		}
+		NodeConfigUpdater.addUpdateListener(BOOKMARK_PATH, this);
+		allowUpdatingBookmarks = !Main.publicNode;
+	}
+	
+	/**
+	 * Read through the Node.config and create Bookmark objects based only on
+	 * that (does not read the config file)
+	 */
+	private ArrayList loadDefaultBookmarks() {
+		ArrayList bmks = new ArrayList();
+		try {
+			Params params = new Params(Node.getConfig().getOptions());
+		
+			if (params != null) {
+				Option countOpt = params.getOption(BOOKMARK_PATH+".count");
+				int maxBookmarks = -1;
+				if (countOpt != null) 
+					try {
 						maxBookmarks =
 							Integer.parseInt("" + countOpt.defaultValue());
-                    } catch (NumberFormatException nfe) {
-                        maxBookmarks = -1;
-                    }
-                int i = 0;
-                while (true) {
-                    if ( (maxBookmarks >= 0) && (i >= maxBookmarks) )
-                        break;
-                    
+					} catch (NumberFormatException nfe) {
+						maxBookmarks = -1;
+					}
+				int i = 0;
+				while (true) {
+					if ( (maxBookmarks >= 0) && (i >= maxBookmarks) )
+						break;
+					
 					Option keyOpt =
 						params.getOption(BOOKMARK_PATH + "." + i + ".key");
 					if (keyOpt == null)
 						break;
-                    
+					
 					Option titleOpt =
 						params.getOption(BOOKMARK_PATH + "." + i + ".title");
 					Option activelinkOpt =
@@ -161,108 +161,108 @@
 					Option descOpt =
 						params.getOption(
 							BOOKMARK_PATH + "." + i + ".description");
-                
-                    String key = (String)keyOpt.defaultValue();
-                    String title = (String)titleOpt.defaultValue();
-                    String al = (String)activelinkOpt.defaultValue();
-                    String desc = (String)descOpt.defaultValue();
-		    
-		    if(logDEBUG)
-						Core.logger.log(
-							BookmarkManagerServlet.class,
-					"Load a new bookmark [" + key + "]", 
-					Logger.DEBUG);
-		    bmks.add(new Bookmark(key, title, al, desc));
-		    i++;
-                }
-            }
-	    if(logDEBUG)
+				
+					String key = (String)keyOpt.defaultValue();
+					String title = (String)titleOpt.defaultValue();
+					String al = (String)activelinkOpt.defaultValue();
+					String desc = (String)descOpt.defaultValue();
+			
+			if(logDEBUG)
 				Core.logger.log(
 					BookmarkManagerServlet.class,
-					"Bookmarks found [" + bmks.size() + "] fieldset: " + params,
+					"Load a new bookmark [" + key + "]", 
 					Logger.DEBUG);
-        } catch (Exception e) {
+			bmks.add(new Bookmark(key, title, al, desc));
+			i++;
+				}
+			}
+		if(logDEBUG)
 			Core.logger.log(
+				BookmarkManagerServlet.class,
+				"Bookmarks found [" + bmks.size() + "] fieldset: " + params,
+				Logger.DEBUG);
+		} catch (Exception e) {
+			Core.logger.log(
 				this,
 				"Error loading default bookmarks: " + e.getMessage(),
 				e,
 				Logger.ERROR);
-        }
-        return bmks;
-    }
+		}
+		return bmks;
+	}
 
-    private long createSecret() {
-        return randSource.nextLong();
-    }
-    
-    /**
-     * Put the bookmark in the confirm slot for further confirmation.
+	private long createSecret() {
+		return randSource.nextLong();
+	}
+	
+	/**
+	 * Put the bookmark in the confirm slot for further confirmation.
 	 * 
-     * @return success/fail message 
-     */
+	 * @return success/fail message 
+	 */
 	private String addBookmark(
 		String key,
 		String title,
 		String description,
 		String activelinkFile) {
-        logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
-        if (!allowUpdatingBookmarks) {
-            return "Bookmarks cannot be updated on public nodes";
-        } 
-	if(!safeKey(key))
-	    return "Unsafe key";
-	if(!safeTitle(title))
-	    return "Unsafe title";
-	if(!safeDesc(description))
-	    return "Unsafe description";
-	if(!safeLink(activelinkFile))
-	    return "Unsafe activelink file";
+		logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
+		if (!allowUpdatingBookmarks) {
+			return "Bookmarks cannot be updated on public nodes";
+		} 
+		if(!safeKey(key))
+			return "Unsafe key";
+		if(!safeTitle(title))
+			return "Unsafe title";
+		if(!safeDesc(description))
+			return "Unsafe description";
+		if(!safeLink(activelinkFile))
+			return "Unsafe activelink file";
 		pendingNewBookmark =
 			new Bookmark(key, title, activelinkFile, description);
-        pendingNewBookmarkSecret = createSecret();
-        
-        return "Please confirm adding the bookmark";
-    }
-    /**
-     * Actually add a new bookmark if the confirm matches
+		pendingNewBookmarkSecret = createSecret();
+		
+		return "Please confirm adding the bookmark";
+	}
+	/**
+	 * Actually add a new bookmark if the confirm matches
 	 * 
-     * @return success/fail message 
-     */
-    private String confirmAddBookmark(long secret) {
-        logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
-        if (!allowUpdatingBookmarks) {
-            return "Bookmarks cannot be updated on public nodes";
-        } 
-        
-        if (secret == pendingNewBookmarkSecret) {
-            bookmarks.add(pendingNewBookmark);
-            pendingNewBookmark = null;
-            pendingNewBookmarkSecret = 0;
-            saveChanges();
-            return "Bookmark added";
-        } else {
-            return "Incorrect confirmation code.  Bookmarks unchanged";
-        }
-    }
-    
-    /**
+	 * @return success/fail message 
+	 */
+	private String confirmAddBookmark(long secret) {
+		logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
+		if (!allowUpdatingBookmarks) {
+			return "Bookmarks cannot be updated on public nodes";
+		} 
+		
+		if (secret == pendingNewBookmarkSecret) {
+			bookmarks.add(pendingNewBookmark);
+			pendingNewBookmark = null;
+			pendingNewBookmarkSecret = 0;
+			saveChanges();
+			return "Bookmark added";
+		} else {
+			return "Incorrect confirmation code.  Bookmarks unchanged";
+		}
+	}
+	
+	/**
 	 * Actually remove the bookmark at the index specified (only if the key is
 	 * the same)
 	 * 
-     * @return success/fail message
-     */
-    private String removeBookmark(int num, String key) {
-        logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
-        if (!allowUpdatingBookmarks) {
-            return "Bookmarks cannot be updated on public nodes";
-        } 
-        
-        if ( (num < 0) || (num > bookmarks.size()) ) {
-            return "Invalid bookmark index specified";
-        }
-        
-        Bookmark bmk = (Bookmark)bookmarks.get(num);
-        if ( (bmk == null) || (bmk.getKey() == null) ) {
+	 * @return success/fail message
+	 */
+	private String removeBookmark(int num, String key) {
+		logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
+		if (!allowUpdatingBookmarks) {
+			return "Bookmarks cannot be updated on public nodes";
+		} 
+		
+		if ( (num < 0) || (num > bookmarks.size()) ) {
+			return "Invalid bookmark index specified";
+		}
+		
+		Bookmark bmk = (Bookmark)bookmarks.get(num);
+		if ( (bmk == null) || (bmk.getKey() == null) ) {
 			Core.logger.log(
 				this,
 				"on remove: bookmarks.get("
@@ -270,24 +270,24 @@
 					+ ") didn't have a valid key or was null.  bookmarks = "
 					+ bookmarks,
 				Logger.ERROR);
-            return "Internal error removing the bookmark.  No bookmarks have been changed";
-        }
-        if (!bmk.getKey().equals(key)) {
-            return "Incorrect key specified to remove... malicious link?";
-        }
-       
-        Object removed = bookmarks.remove(num);
-        
-        saveChanges();
-        return "Bookmark removed";
-    }
-    
-    /**
+			return "Internal error removing the bookmark.  No bookmarks have been changed";
+		}
+		if (!bmk.getKey().equals(key)) {
+			return "Incorrect key specified to remove... malicious link?";
+		}
+	   
+		Object removed = bookmarks.remove(num);
+		
+		saveChanges();
+		return "Bookmark removed";
+	}
+	
+	/**
 	 * Actually update the bookmark at the index specified, only if the key
 	 * matches
-     *
-     * @return success/fail message
-     */
+	 *
+	 * @return success/fail message
+	 */
 	private String updateBookmark(
 		int num,
 		String key,
@@ -295,25 +295,25 @@
 		String newTitle,
 		String newDesc,
 		String newActivelinkFile) {
-        logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
-        if (!allowUpdatingBookmarks) {
-            return "Bookmarks cannot be updated on public nodes";
-        } 
-        
-        if ( (num < 0) || (num > bookmarks.size()) ) {
-            return "Invalid bookmark index specified";
-        }
-        
-	if(!safeKey(newKey))
-	    return "Unsafe key";
-	if(!safeTitle(newTitle))
-	    return "Unsafe title";
-	if(!safeDesc(newDesc))
-	    return "Unsafe description";
-	if(!safeLink(newActivelinkFile))
-	    return "Unsafe activelink file";
-        Bookmark bmk = (Bookmark)bookmarks.get(num);
-        if ( (bmk == null) || (bmk.getKey() == null) ) {
+		logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
+		if (!allowUpdatingBookmarks) {
+			return "Bookmarks cannot be updated on public nodes";
+		} 
+		
+		if ( (num < 0) || (num > bookmarks.size()) ) {
+			return "Invalid bookmark index specified";
+		}
+		
+		if(!safeKey(newKey))
+			return "Unsafe key";
+		if(!safeTitle(newTitle))
+			return "Unsafe title";
+		if(!safeDesc(newDesc))
+			return "Unsafe description";
+		if(!safeLink(newActivelinkFile))
+			return "Unsafe activelink file";
+		Bookmark bmk = (Bookmark)bookmarks.get(num);
+		if ( (bmk == null) || (bmk.getKey() == null) ) {
 			Core.logger.log(
 				this,
 				"on update, bookmarks.get("
@@ -321,77 +321,77 @@
 					+ ") didn't have a valid key or was null.  bookmarks = "
 					+ bookmarks,
 				Logger.ERROR);
-            return "Internal error updating the bookmark.  No bookmarks have been changed";
-        }
-        if (!bmk.getKey().equals(key)) {
-            return "Incorrect key specified to update... malicious link?";
-        }
-       
-        bmk.setKey(newKey);
-        bmk.setTitle(newTitle);
-        bmk.setActivelinkFile(newActivelinkFile);
-        bmk.setDescription(newDesc);
-        
-        saveChanges();
-        return "Bookmark updated";
-    }
-    
-    /**
-     * Write the bookmarks to the first existing config file
-     */
-    private void saveChanges() {
-	synchronized(Main.getConfigUpdater().syncOb()) {
-	    // write the config file, and then notify the NodeConfigUpdater
-	    Core.logger.log(this, "Bookmarks being saved", Logger.NORMAL);
-	    
-	    try {
-		File f = Main.paramFile;
-		if (f.exists()) {
-		    boolean success = saveChanges(f);
-		    if(logDEBUG)
+			return "Internal error updating the bookmark.  No bookmarks have been changed";
+		}
+		if (!bmk.getKey().equals(key)) {
+			return "Incorrect key specified to update... malicious link?";
+		}
+	   
+		bmk.setKey(newKey);
+		bmk.setTitle(newTitle);
+		bmk.setActivelinkFile(newActivelinkFile);
+		bmk.setDescription(newDesc);
+		
+		saveChanges();
+		return "Bookmark updated";
+	}
+	
+	/**
+	 * Write the bookmarks to the first existing config file
+	 */
+	private void saveChanges() {
+		synchronized(Main.getConfigUpdater().syncOb()) {
+			// write the config file, and then notify the NodeConfigUpdater
+			Core.logger.log(this, "Bookmarks being saved", Logger.NORMAL);
+		
+			try {
+				File f = Main.paramFile;
+				if (f.exists()) {
+					boolean success = saveChanges(f);
+					if(logDEBUG)
 						Core.logger.log(
 							this,
 							"Saving to [" + f + "]: " + success,
 							Logger.DEBUG);
-		}
-		Main.getConfigUpdater().checkpoint();
-	    } catch (Exception e) {
+				}
+				Main.getConfigUpdater().checkpoint();
+			} catch (Exception e) {
 				Core.logger.log(
 					this,
 					"Error saving changes: " + e.getMessage(),
 					e,
 					Logger.ERROR);
-	    }
+			}
+		}
 	}
-    }
-    
-    /**
-     * Actually write out the config file, leaving the previous version of the
-     * bookmarks commented out, but with the new ones at the end of the file
-     */
-    private boolean saveChanges(File f) {
-	synchronized(Main.getConfigUpdater().syncOb()) {
-	    StringBuffer updated = new StringBuffer(65536); // at a minimum!
-	    
-	    try {
-		BufferedReader reader = new BufferedReader(new FileReader(f));
-		String line = null;
-		int oldLines = 0;
-		int updatedLines = 0;
-		while ( (line = reader.readLine()) != null) {
-		    if (line.startsWith("%"+BOOKMARK_PATH)) {
-			// skip it
-		    } else if (!line.startsWith(BOOKMARK_PATH)) {
-			updated.append(line).append(NL);
-			oldLines++;
-		    } else {
-			updated.append("%").append(line).append(NL);
-			updatedLines++;
-		    }
-		}
-		reader.close();
+	
+	/**
+	 * Actually write out the config file, leaving the previous version of the
+	 * bookmarks commented out, but with the new ones at the end of the file
+	 */
+	private boolean saveChanges(File f) {
+		synchronized(Main.getConfigUpdater().syncOb()) {
+			StringBuffer updated = new StringBuffer(65536); // at a minimum!
 		
-		if(logDEBUG)
+			try {
+				BufferedReader reader = new BufferedReader(new FileReader(f));
+				String line = null;
+				int oldLines = 0;
+				int updatedLines = 0;
+				while ( (line = reader.readLine()) != null) {
+					if (line.startsWith("%"+BOOKMARK_PATH)) {
+						// skip it
+					} else if (!line.startsWith(BOOKMARK_PATH)) {
+						updated.append(line).append(NL);
+						oldLines++;
+					} else {
+						updated.append("%").append(line).append(NL);
+						updatedLines++;
+					}
+				}
+				reader.close();
+		
+				if(logDEBUG)
 					Core.logger.log(
 						this,
 						"Saving to "
@@ -400,26 +400,26 @@
 							+ oldLines
 							+ " and commented out "
 							+ updatedLines,
-				    Logger.DEBUG);
+					Logger.DEBUG);
 		
 		// now append the updated ones
 				updated.append(BOOKMARK_PATH).append(".count=").append(
 					bookmarks.size()).append(
 					NL);
-		for (int i = 0; i < bookmarks.size(); i++) {
-		    Bookmark bmk = (Bookmark)bookmarks.get(i);
+				for (int i = 0; i < bookmarks.size(); i++) {
+					Bookmark bmk = (Bookmark)bookmarks.get(i);
 					updated.append(BOOKMARK_PATH).append(".").append(i).append(
 						".");
 					if (!safeKey(bmk.getKey()))
 						throw new IllegalStateException("invalid key writing out");
-		    updated.append("key=").append(bmk.getKey()).append(NL);
-		    
+					updated.append("key=").append(bmk.getKey()).append(NL);
+			
 					updated.append(BOOKMARK_PATH).append(".").append(i).append(
 						".");
 					if (!safeTitle(bmk.getTitle()))
 						throw new IllegalStateException("invalid title writing out");
-		    updated.append("title=").append(bmk.getTitle()).append(NL);
-		    
+					updated.append("title=").append(bmk.getTitle()).append(NL);
+			
 					updated.append(BOOKMARK_PATH).append(".").append(i).append(
 						".");
 					if (!safeLink(bmk.getActivelinkFile()))
@@ -435,77 +435,77 @@
 					updated.append("description=").append(
 						bmk.getDescription()).append(
 						NL);
-		}
+				}
 		
-		FileOutputStream fos = new FileOutputStream(f);
-		fos.write(updated.toString().getBytes());
-		fos.close();
-		return true;
-	    } catch (IOException ioe) {
+				FileOutputStream fos = new FileOutputStream(f);
+				fos.write(updated.toString().getBytes());
+				fos.close();
+				return true;
+			} catch (IOException ioe) {
 				Core.logger.log(
 					this,
 					"Saving to " + f.getName() + " failed: " + ioe.getMessage(),
 					ioe,
 					Logger.NORMAL);
-		return false;
-	    }
+				return false;
+			}
+		}
 	}
-    }
-    
-    public void doGet(HttpServletRequest req, HttpServletResponse resp)
+	
+	public void doGet(HttpServletRequest req, HttpServletResponse resp)
 		throws IOException {
-        processRequest(req, resp);
-    }
-    
-    /**
-     * Distribute the request to addBookmark/updateBookmark/removeBookmark, and
+		processRequest(req, resp);
+	}
+	
+	/**
+	 * Distribute the request to addBookmark/updateBookmark/removeBookmark, and
 	 * then render the bookmarks page Synchronized, as this may write to files
 	 * and updates a class level var (bookmarks)
-     */
+	 */
 	private synchronized void processRequest(
 		HttpServletRequest req,
 		HttpServletResponse resp)
 		throws IOException {
-        StringBuffer resultMessage = new StringBuffer();
-    
-        String op = req.getParameter(PARAM_OP);
-        
-	if(logDEBUG)
+		StringBuffer resultMessage = new StringBuffer();
+	
+		String op = req.getParameter(PARAM_OP);
+		
+		if(logDEBUG)
 			Core.logger.log(
 				this,
 				"Processing a request w/ op: " + op,
-			    Logger.DEBUG);
-        
-        if (PARAM_OP_ADD.equalsIgnoreCase(op)) {
-            String key = req.getParameter(PARAM_KEY);
-            String title = req.getParameter(PARAM_TITLE);
-            String desc = req.getParameter(PARAM_DESCRIPTION);
-            String alFile = req.getParameter(PARAM_ACTIVELINKFILE);
-            resultMessage.append(addBookmark(key, title, desc, alFile));
-        } else if (PARAM_OP_CONFIRM.equalsIgnoreCase(op)) {
-            String code = req.getParameter(PARAM_CONFIRMID);
-            try {
-                long id = Long.parseLong(code);
-                resultMessage.append(confirmAddBookmark(id));
-            } catch (Exception e) {
-                resultMessage.append("Invalid confirm code specified");
-            }
-            pendingNewBookmark = null;
-        } else if (PARAM_OP_UPDATE.equalsIgnoreCase(op)) {
-            int num = 0;
-            try {
-                num = Integer.parseInt(req.getParameter(PARAM_NUM));
+				Logger.DEBUG);
+		
+		if (PARAM_OP_ADD.equalsIgnoreCase(op)) {
+			String key = req.getParameter(PARAM_KEY);
+			String title = req.getParameter(PARAM_TITLE);
+			String desc = req.getParameter(PARAM_DESCRIPTION);
+			String alFile = req.getParameter(PARAM_ACTIVELINKFILE);
+			resultMessage.append(addBookmark(key, title, desc, alFile));
+		} else if (PARAM_OP_CONFIRM.equalsIgnoreCase(op)) {
+			String code = req.getParameter(PARAM_CONFIRMID);
+			try {
+				long id = Long.parseLong(code);
+				resultMessage.append(confirmAddBookmark(id));
+			} catch (Exception e) {
+				resultMessage.append("Invalid confirm code specified");
+			}
+			pendingNewBookmark = null;
+		} else if (PARAM_OP_UPDATE.equalsIgnoreCase(op)) {
+			int num = 0;
+			try {
+				num = Integer.parseInt(req.getParameter(PARAM_NUM));
 				if (num < 0)
 					throw new Exception();
-                
-                if (!verifyChallenge(req)) {
-                    resultMessage.append("Invalid challenge - malicious link?");
-                } else {
-                    String key = req.getParameter(PARAM_OLDKEY);
-                    String newKey = req.getParameter(PARAM_KEY);
-                    String newTitle = req.getParameter(PARAM_TITLE);
-                    String newDesc = req.getParameter(PARAM_DESCRIPTION);
-                    String newAlFile = req.getParameter(PARAM_ACTIVELINKFILE);
+				
+				if (!verifyChallenge(req)) {
+					resultMessage.append("Invalid challenge - malicious link?");
+				} else {
+					String key = req.getParameter(PARAM_OLDKEY);
+					String newKey = req.getParameter(PARAM_KEY);
+					String newTitle = req.getParameter(PARAM_TITLE);
+					String newDesc = req.getParameter(PARAM_DESCRIPTION);
+					String newAlFile = req.getParameter(PARAM_ACTIVELINKFILE);
 					resultMessage.append(
 						updateBookmark(
 							num,
@@ -514,8 +514,8 @@
 							newTitle,
 							newDesc,
 							newAlFile));
-                }
-            } catch (Exception e) {
+				}
+			} catch (Exception e) {
 				Core.logger.log(
 					this,
 					"Error updating: " + e.getMessage(),
@@ -525,22 +525,22 @@
 					.append("Invalid update index (")
 					.append(req.getParameter(PARAM_NUM))
 					.append(")");
-            }
-            pendingNewBookmark = null;
-        } else if (PARAM_OP_REMOVE.equalsIgnoreCase(op)) {
-            int num = 0;
-            try {
-                num = Integer.parseInt(req.getParameter(PARAM_NUM));
+			}
+			pendingNewBookmark = null;
+		} else if (PARAM_OP_REMOVE.equalsIgnoreCase(op)) {
+			int num = 0;
+			try {
+				num = Integer.parseInt(req.getParameter(PARAM_NUM));
 				if (num < 0)
 					throw new Exception();
-                String key = req.getParameter(PARAM_KEY);
-                
-                if (!verifyChallenge(req)) {
-                    resultMessage.append("Invalid challenge - malicious link?");
-                } else {
-                    resultMessage.append(removeBookmark(num, key));
-                }
-            } catch (Exception e) {
+				String key = req.getParameter(PARAM_KEY);
+				
+				if (!verifyChallenge(req)) {
+					resultMessage.append("Invalid challenge - malicious link?");
+				} else {
+					resultMessage.append(removeBookmark(num, key));
+				}
+			} catch (Exception e) {
 				Core.logger.log(
 					this,
 					"Error removing: " + e.getMessage(),
@@ -550,75 +550,75 @@
 					.append("Invalid remove index (")
 					.append(req.getParameter(PARAM_NUM))
 					.append(")");
-            }
-            pendingNewBookmark = null;
-        } else if (op != null) {
+			}
+			pendingNewBookmark = null;
+		} else if (op != null) {
 			resultMessage.append("Invalid operation requested: ").append(
 				op).append(
 				"<br />");
-            resultMessage.append("Valid options: ");
-            resultMessage.append(PARAM_OP_ADD).append(" ");
-            resultMessage.append(PARAM_OP_UPDATE).append(" ");
-            resultMessage.append(PARAM_OP_REMOVE).append(" ");
-            pendingNewBookmark = null;
-        } else {
-            // no op, just display
-            pendingNewBookmark = null;
-        }
-      
-        String backLink = req.getParameter(PARAM_BACK);
-        
-        PrintWriter pw = resp.getWriter();
-        resp.setContentType("text/html");
+			resultMessage.append("Valid options: ");
+			resultMessage.append(PARAM_OP_ADD).append(" ");
+			resultMessage.append(PARAM_OP_UPDATE).append(" ");
+			resultMessage.append(PARAM_OP_REMOVE).append(" ");
+			pendingNewBookmark = null;
+		} else {
+			// no op, just display
+			pendingNewBookmark = null;
+		}
+	  
+		String backLink = req.getParameter(PARAM_BACK);
+		
+		PrintWriter pw = resp.getWriter();
+		resp.setContentType("text/html");
 
-        try {
-            String body = renderBookmarkForm();
-            pageTemplate.set("MESSAGE", resultMessage.toString());
-            pageTemplate.set("BACK", renderBackLink(backLink));
-            pageTemplate.set("CONFIRMHTML", renderConfirmHTML());
-            pageTemplate.set("BODY", body);
-            pageTemplate.toHtml(pw);
-        } catch (Throwable t) {
-            t.printStackTrace();
+		try {
+			String body = renderBookmarkForm();
+			pageTemplate.set("MESSAGE", resultMessage.toString());
+			pageTemplate.set("BACK", renderBackLink(backLink));
+			pageTemplate.set("CONFIRMHTML", renderConfirmHTML());
+			pageTemplate.set("BODY", body);
+			pageTemplate.toHtml(pw);
+		} catch (Throwable t) {
+			t.printStackTrace();
 			Core.logger.log(
 				this,
 				"Error rendering the form: " + t.getMessage(),
 				t,
 				Logger.ERROR);
-        }
-        try {
-            pw.flush();
-            resp.flushBuffer();
-        } catch (IOException ioe) {
+		}
+		try {
+			pw.flush();
+			resp.flushBuffer();
+		} catch (IOException ioe) {
 			Core.logger.log(
 				this,
 				"I/O error writing the bookmark manager buffer... probably harmless",
 				ioe,
 				Logger.MINOR);
-        }
-    }
-    
-    private boolean verifyChallenge(HttpServletRequest req) {
-        String offered = req.getParameter(PARAM_CHALLENGE);
-        try {
-            long challenge = Long.parseLong(offered);
-            if (challenge == lastRenderSecret)
-                return true;
+		}
+	}
+	
+	private boolean verifyChallenge(HttpServletRequest req) {
+		String offered = req.getParameter(PARAM_CHALLENGE);
+		try {
+			long challenge = Long.parseLong(offered);
+			if (challenge == lastRenderSecret)
+				return true;
 		} catch (Exception e) {
 		}
-        return false;
-    }
-    
-    private String renderBackLink(String link) {
-        if (link != null)
-            return "<a href=\"/"+ link + "\">Back</a><p />";
-        else
-            return "";
-    }
-    
-    private String renderConfirmHTML() {
-        if (pendingNewBookmark != null) {
-            StringBuffer confirmHtml = new StringBuffer();
+		return false;
+	}
+	
+	private String renderBackLink(String link) {
+		if (link != null)
+			return "<a href=\"/"+ link + "\">Back</a><p />";
+		else
+			return "";
+	}
+	
+	private String renderConfirmHTML() {
+		if (pendingNewBookmark != null) {
+			StringBuffer confirmHtml = new StringBuffer();
 			confirmHtml
 				.append("<b>Please ")
 				.append("<a href=\"/servlet/bookmarkmanager?")
@@ -633,41 +633,41 @@
 				.append(NL)
 				.append(renderLink(pendingNewBookmark))
 				.append("<p />");
-            return confirmHtml.toString();
-        } else {
-            return "&nbsp;";
-        }
-    }
-    
-    /**
-     * Render the html table for the bookmarks, including the forms to update 
-     * and add new ones
-     */
-    private String renderBookmarkForm() {
+			return confirmHtml.toString();
+		} else {
+			return "&nbsp;";
+		}
+	}
+	
+	/**
+	 * Render the html table for the bookmarks, including the forms to update 
+	 * and add new ones
+	 */
+	private String renderBookmarkForm() {
 		StringBuffer buf = new StringBuffer(512);
-        buf.append("<table>").append(NL);
-        
-        lastRenderSecret = randSource.nextLong();
-        
-        if (bookmarks != null) {
-            for (int i = 0; i < bookmarks.size(); i++) {
-                Bookmark bookmark = (Bookmark)bookmarks.get(i);
-                String key = bookmark.getKey();
-                String title = bookmark.getTitle();
-                String activelinkFile = bookmark.getActivelinkFile();
-                String description = bookmark.getDescription();
-            
-                String activelink = null;
-                if (activelinkFile != null) { 
-                    if (key.endsWith("/"))
-                        activelink = key + activelinkFile;
-                    else if (key.indexOf('/') > 0) 
+		buf.append("<table>").append(NL);
+		
+		lastRenderSecret = randSource.nextLong();
+		
+		if (bookmarks != null) {
+			for (int i = 0; i < bookmarks.size(); i++) {
+				Bookmark bookmark = (Bookmark)bookmarks.get(i);
+				String key = bookmark.getKey();
+				String title = bookmark.getTitle();
+				String activelinkFile = bookmark.getActivelinkFile();
+				String description = bookmark.getDescription();
+			
+				String activelink = null;
+				if (activelinkFile != null) { 
+					if (key.endsWith("/"))
+						activelink = key + activelinkFile;
+					else if (key.indexOf('/') > 0) 
 						activelink =
 							key.substring(0, key.lastIndexOf('/') + 1)
 								+ activelinkFile;
-                }
+				}
 		
-		if(logDEBUG)
+				if(logDEBUG)
 					Core.logger.log(
 						this,
 						"Found full bookmark ["
@@ -681,7 +681,7 @@
 							+ "/"
 							+ description,
 						Logger.DEBUG);
-            
+			
 				buf
 					.append("<tr><td colspan=\"2\">")
 					.append(NL)
@@ -761,10 +761,10 @@
 					.append(NL)
 					.append("</form>")
 					.append(NL);
-            } // end looping over all bookmarks
-        } // end bookmarks != null 
-         
-        // now the add bookmark form
+			} // end looping over all bookmarks
+		} // end bookmarks != null 
+		 
+		// now the add bookmark form
 		buf
 			.append("<tr><td colspan=\"3\"><b>New bookmark</b></td></tr>")
 			.append(NL)
@@ -809,126 +809,126 @@
 			.append(NL)
 			.append("</table>")
 			.append(NL);
-        return buf.toString();
-    }
+		return buf.toString();
+	}
   
-    /**
-     * Render an img src + href + title + description in html
-     */
-    private String renderLink(Bookmark bookmark) {
+	/**
+	 * Render an img src + href + title + description in html
+	 */
+	private String renderLink(Bookmark bookmark) {
 		if (bookmark == null)
 			return "";
-        String key = bookmark.getKey();
-        String title = bookmark.getTitle();
-        String activelinkFile = bookmark.getActivelinkFile();
-        String description = bookmark.getDescription();
-            
-        String activelink = null;
-        if (activelinkFile != null) { 
-            if (key.endsWith("/"))
-                activelink = key + activelinkFile;
-            else if (key.indexOf('/') > 0) 
+		String key = bookmark.getKey();
+		String title = bookmark.getTitle();
+		String activelinkFile = bookmark.getActivelinkFile();
+		String description = bookmark.getDescription();
+			
+		String activelink = null;
+		if (activelinkFile != null) { 
+			if (key.endsWith("/"))
+				activelink = key + activelinkFile;
+			else if (key.indexOf('/') > 0) 
 				activelink =
 					key.substring(0, key.lastIndexOf('/') + 1) + activelinkFile;
-        }
-        
-        StringBuffer buf = new StringBuffer();
-        buf.append("<a href=\"/").append(key).append("\">");
-        if (activelink != null)
+		}
+		
+		StringBuffer buf = new StringBuffer();
+		buf.append("<a href=\"/").append(key).append("\">");
+		if (activelink != null)
 			buf
 				.append("<img src=\"/")
 				.append(activelink)
 				.append("\" alt=\"")
 				.append(title)
 				.append("\" width=\"95\" height=\"32\" /> ");
-        buf.append(title).append("</a>");
-        if (description != null) 
-            buf.append(" - ").append(description);
-        buf.append(NL);
-        return buf.toString();
-    }
-    
-    /**
-     *  Gets the servletInfo attribute of the NodeInfoServlet object
-     *
-     * @return    The servletInfo value
-     */
-    public String getServletInfo() {
-        return "Bookmark manager for fproxy";
-    }
+		buf.append(title).append("</a>");
+		if (description != null) 
+			buf.append(" - ").append(description);
+		buf.append(NL);
+		return buf.toString();
+	}
+	
+	/**
+	 *  Gets the servletInfo attribute of the NodeInfoServlet object
+	 *
+	 * @return    The servletInfo value
+	 */
+	public String getServletInfo() {
+		return "Bookmark manager for fproxy";
+	}
 
-    /**
-     *  Gets the servletName attribute of the NodeInfoServlet object
-     *
-     * @return    The servletName value
-     */
-    public String getServletName() {
-        return "Bookmark Manager";
-    }
+	/**
+	 *  Gets the servletName attribute of the NodeInfoServlet object
+	 *
+	 * @return    The servletName value
+	 */
+	public String getServletName() {
+		return "Bookmark Manager";
+	}
 
 	/**
 	 * Notify the listener that the property specified by path has been changed
-     * to the value given.
-     *
+	 * to the value given.
+	 *
 	 * @param path
 	 *            defines what configuration property was updated (allows a.b.c
 	 *            notation)
 	 * @param val
 	 *            value the configuration system has for the property
-     */
-    public void configPropertyUpdated(String path, String val) {
-        // ignored
-    }  
+	 */
+	public void configPropertyUpdated(String path, String val) {
+		// ignored
+	}  
 
 	/**
 	 * Notify the listener that the property specified by path has been changed
-     * to the field set given.
-     *
+	 * to the field set given.
+	 *
 	 * @param path
 	 *            defines what configuration property was updated (allows a.b.c
 	 *            notation)
 	 * @param fs
 	 *            value the configuration system has for the field set (if the
 	 *            path is a.b.c and the configuration system has properties
-     *             a.b.c.d and a.b.c.e, fs will contain d and e)
-     */
-    public void configPropertyUpdated(String path, Params fs) {
-        logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
-	if(logDEBUG)
+	 *             a.b.c.d and a.b.c.e, fs will contain d and e)
+	 */
+	public void configPropertyUpdated(String path, Params fs) {
+		logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
+		if(logDEBUG)
 			Core.logger.log(
 				this,
 				"configPropertyUpdated called w/ path [" + path + "]",
 				Logger.DEBUG);
-        
-        int count = -1;
-        
-        // load the bookmarks from the Node.config values
-        ArrayList newBookmarks = loadDefaultBookmarks();
-        // now go through the config file to override the Node.config
-        if (fs != null) {
+		
+		int count = -1;
+		
+		// load the bookmarks from the Node.config values
+		ArrayList newBookmarks = loadDefaultBookmarks();
+		// now go through the config file to override the Node.config
+		if (fs != null) {
 			Params params = fs;
-            
-            Option countOpt = params.getOption(BOOKMARK_PATH+".count");
-            Object defaultCount = null;
-            if (countOpt != null)
-                defaultCount = countOpt.defaultValue();
-            try {
-                int specCount = params.getInt("count");
-		if(logDEBUG)
+			
+			Option countOpt = params.getOption(BOOKMARK_PATH+".count");
+			Object defaultCount = null;
+			if (countOpt != null)
+				defaultCount = countOpt.defaultValue();
+			try {
+				int specCount = params.getInt("count");
+				if(logDEBUG)
 					Core.logger.log(
 						this,
 						"Bookmarks.specCount = " + specCount,
-				    Logger.DEBUG);
-                count = specCount;
-            } catch (Exception e) {
-                try {
-                    count = Integer.parseInt(""+defaultCount);
-                } catch (NumberFormatException nfe) {
-                    count = -1;
-                }
-            }
-            
-	    if(logDEBUG)
+					Logger.DEBUG);
+				count = specCount;
+			} catch (Exception e) {
+				try {
+					count = Integer.parseInt(""+defaultCount);
+				} catch (NumberFormatException nfe) {
+					count = -1;
+				}
+			}
+			
+			if(logDEBUG)
 				Core.logger.log(
 					this,
 					"Bookmarks.count = "
@@ -937,8 +937,8 @@
 						+ countOpt
 						+ "]",
 					Logger.DEBUG);
-            
-            int i = 0;
+			
+			int i = 0;
 			while (!((i >= count) && (count >= 0))) {
 
 				fs = (Params) params.getSet(i + "");
@@ -948,9 +948,9 @@
 							this,
 							"bookmarks.getSet(" + i + ") returned null",
 							Logger.DEBUG);
-                    break;
-                }
-                    
+					break;
+				}
+					
 				Option keyOpt =
 					params.getOption(BOOKMARK_PATH + "." + i + ".key");
 				Option titleOpt =
@@ -965,8 +965,8 @@
 				String t = fs.getString("title");
 				String al = fs.getString("activelinkFile");
 				String desc = fs.getString("description");
-                    
-		    if(logDEBUG)
+					
+				if(logDEBUG)
 					Core.logger.log(
 						this,
 						"bookmarks.isSet("
@@ -982,20 +982,20 @@
 					&& (t == null)
 					&& (al == null)
 					&& (desc == null)) {
-                        i++;
-                        continue;
-                    }
-                    
-                    if (i >= newBookmarks.size()) {
-                        newBookmarks.add(new Bookmark(k, t, al, desc));
-			if(logDEBUG)
+						i++;
+						continue;
+					}
+					
+				if (i >= newBookmarks.size()) {
+					newBookmarks.add(new Bookmark(k, t, al, desc));
+					if(logDEBUG)
 						Core.logger.log(
 							this,
 							"Update had a new bookmark [" + k + "]",
 							Logger.DEBUG);
-                    } else {
-                        Bookmark bmk = (Bookmark)newBookmarks.get(i);
-			if(logDEBUG)
+				} else {
+					Bookmark bmk = (Bookmark)newBookmarks.get(i);
+					if(logDEBUG)
 						Core.logger.log(
 							this,
 							"Update changed a bookmark ["
@@ -1012,24 +1012,24 @@
 						bmk.setActivelinkFile(al);
 					if (desc != null)
 						bmk.setDescription(desc);
-                    }
-                    i++;
-            } // end looping over bookmarks
-        } else {
-            // (bookmarks NOT specified in update)
-	    if(logDEBUG)
+				}
+					i++;
+			} // end looping over bookmarks
+		} else {
+			// (bookmarks NOT specified in update)
+			if(logDEBUG)
 				Core.logger.log(
 					this,
 					"bookmarks NOT specified in update",
 				Logger.DEBUG);
-        }
-        
-        if (count >= 0) 
-            while (count < newBookmarks.size())
-                newBookmarks.remove(count);
-        
-        bookmarks = newBookmarks;
-	if(logDEBUG)
+		}
+		
+		if (count >= 0) 
+			while (count < newBookmarks.size())
+				newBookmarks.remove(count);
+		
+		bookmarks = newBookmarks;
+		if(logDEBUG)
 			Core.logger.log(
 				this,
 				"Bookmarks now contains "
@@ -1038,56 +1038,56 @@
 					+ count
 					+ " bookmarks",
 				Logger.DEBUG);
-        Core.logger.log(this, "Bookmarks updated on request",Logger.NORMAL);
-    }
-    
+		Core.logger.log(this, "Bookmarks updated on request",Logger.NORMAL);
+	}
+	
 	// \n's would be DISASTROUS, allowing insertion of arbitrary data into
 	// config file
-    // :'s would also be disastrous, allowing linking to external sites
-    // <'s would allow insertion of arbitrary HTML
-    
-    protected boolean safeKey(String s) {
+	// :'s would also be disastrous, allowing linking to external sites
+	// <'s would allow insertion of arbitrary HTML
+	
+	protected boolean safeKey(String s) {
 		return s.indexOf('\n') < 0
 			&& s.indexOf('\r') < 0
 			&& s.indexOf(':') < 0
 			&& s.indexOf('<') < 0;
-    }
-    
-    protected boolean safeTitle(String s) {
+	}
+	
+	protected boolean safeTitle(String s) {
 		return s.indexOf('\n') < 0
 			&& s.indexOf('\r') < 0
 			&& s.indexOf(':') < 0
 			&& s.indexOf('<') < 0;
-    }
-    
-    protected boolean safeDesc(String s) {
+	}
+	
+	protected boolean safeDesc(String s) {
 		return s.indexOf('\n') < 0
 			&& s.indexOf('\r') < 0
 			&& s.indexOf(':') < 0
 			&& s.indexOf('<') < 0;
-    }
-    
-    protected boolean safeLink(String s) {
+	}
+	
+	protected boolean safeLink(String s) {
 		return s.indexOf('\n') < 0
 			&& s.indexOf('\r') < 0
 			&& s.indexOf(':') < 0
 			&& s.indexOf('<') < 0;
-    }
-    
-    /**
-     * Defines a bookmark
-     */
-    public static class Bookmark {
-        private String key;
-        private String title;
-        private String activelink;
-        private String description;
-        public Bookmark(String ky, String ttle, String alFile, String desc) { 
-            setKey(ky);
-            setTitle(ttle);
-            setActivelinkFile(alFile);
-            setDescription(desc);
-        }
+	}
+	
+	/**
+	 * Defines a bookmark
+	 */
+	public static class Bookmark {
+		private String key;
+		private String title;
+		private String activelink;
+		private String description;
+		public Bookmark(String ky, String ttle, String alFile, String desc) { 
+			setKey(ky);
+			setTitle(ttle);
+			setActivelinkFile(alFile);
+			setDescription(desc);
+		}
 		public String getKey() {
 			return key;
 		}
@@ -1109,18 +1109,18 @@
 		public String getDescription() {
 			return description;
 		}
-        public void setDescription(String desc) { 
-            description = clean(desc); 
-        }
-        private String clean(String string) {
-            if (string != null) {
-                string = string.replace('\n', ' ');
-                string = string.replace('=', ' ');
-            }
-            return string;
-        }
+		public void setDescription(String desc) { 
+			description = clean(desc); 
+		}
+		private String clean(String string) {
+			if (string != null) {
+				string = string.replace('\n', ' ');
+				string = string.replace('=', ' ');
+			}
+			return string;
+		}
 		public String toString() {
 			return getKey();
 		}
-    }   
+	}   
 }




More information about the cvs mailing list