diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java index d0932e587e..e4d42ef161 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java @@ -371,7 +371,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable if (line.length() == 0) { String ok = getTunnel().getContext().getProperty("i2ptunnel.gzip"); - boolean gzip = true; + boolean gzip = false; if (ok != null) gzip = Boolean.valueOf(ok).booleanValue(); if (gzip) diff --git a/apps/syndie/java/src/net/i2p/syndie/BlogManager.java b/apps/syndie/java/src/net/i2p/syndie/BlogManager.java index bbc0423119..8c3fe86347 100644 --- a/apps/syndie/java/src/net/i2p/syndie/BlogManager.java +++ b/apps/syndie/java/src/net/i2p/syndie/BlogManager.java @@ -240,11 +240,22 @@ public class BlogManager { File cfg = getConfigFile(); return (cfg.exists()); } + + /** + * If true, this syndie instance is meant for just one local user, so we don't need + * to password protect registration, remote.jsp, or admin.jsp + * + */ + public boolean isSingleUser() { + String isSingle = _context.getProperty("syndie.singleUser"); + return ( (isSingle != null) && (Boolean.valueOf(isSingle).booleanValue()) ); + } public String getDefaultProxyHost() { return _context.getProperty("syndie.defaultProxyHost", ""); } public String getDefaultProxyPort() { return _context.getProperty("syndie.defaultProxyPort", ""); } public boolean authorizeAdmin(String pass) { + if (isSingleUser()) return true; String admin = getAdminPasswordHash(); if ( (admin == null) || (admin.trim().length() <= 0) ) return false; @@ -252,15 +263,20 @@ public class BlogManager { return (hash.equals(admin)); } public boolean authorizeRemote(String pass) { + if (isSingleUser()) return true; String rem = getRemotePasswordHash(); if ( (rem == null) || (rem.trim().length() <= 0) ) return false; String hash = Base64.encode(_context.sha().calculateHash(DataHelper.getUTF8(pass.trim())).getData()); return (hash.equals(rem)); } + public boolean authorizeRemote(User user) { + if (isSingleUser()) return true; + return (!user.getAuthenticated() || !user.getAllowAccessRemote()); + } public void configure(String registrationPassword, String remotePassword, String adminPass, String defaultSelector, - String defaultProxyHost, int defaultProxyPort, Properties opts) { + String defaultProxyHost, int defaultProxyPort, boolean isSingleUser, Properties opts) { File cfg = getConfigFile(); Writer out = null; try { @@ -277,6 +293,7 @@ public class BlogManager { out.write("syndie.defaultProxyHost="+defaultProxyHost.trim() + "\n"); if (defaultProxyPort > 0) out.write("syndie.defaultProxyPort="+defaultProxyPort + "\n"); + out.write("syndie.singleUser=" + isSingleUser + "\n"); if (opts != null) { for (Iterator iter = opts.keySet().iterator(); iter.hasNext(); ) { String key = (String)iter.next(); @@ -327,7 +344,7 @@ public class BlogManager { public String register(User user, String login, String password, String registrationPassword, String blogName, String blogDescription, String contactURL) { System.err.println("Register [" + login + "] pass [" + password + "] name [" + blogName + "] descr [" + blogDescription + "] contact [" + contactURL + "] regPass [" + registrationPassword + "]"); String hashedRegistrationPassword = getRegistrationPasswordHash(); - if (hashedRegistrationPassword != null) { + if ( (hashedRegistrationPassword != null) && (!isSingleUser()) ) { try { if (!hashedRegistrationPassword.equals(Base64.encode(_context.sha().calculateHash(registrationPassword.getBytes("UTF-8")).getData()))) return "Invalid registration password"; diff --git a/apps/syndie/java/src/net/i2p/syndie/sml/HTMLRenderer.java b/apps/syndie/java/src/net/i2p/syndie/sml/HTMLRenderer.java index 57607ac760..ac31b4492a 100644 --- a/apps/syndie/java/src/net/i2p/syndie/sml/HTMLRenderer.java +++ b/apps/syndie/java/src/net/i2p/syndie/sml/HTMLRenderer.java @@ -351,7 +351,7 @@ public class HTMLRenderer extends EventReceiverImpl { _bodyBuffer.append(getSpan("blogArchive")).append(" Archives: "); for (int i = 0; i < locations.size(); i++) { SafeURL surl = (SafeURL)locations.get(i); - if (_user.getAuthenticated() && _user.getAllowAccessRemote()) + if (_user.getAuthenticated() && BlogManager.instance().authorizeRemote(_user) ) _bodyBuffer.append("").append(sanitizeString(surl.toString())).append(" "); else _bodyBuffer.append(getSpan("blogArchiveURL")).append(sanitizeString(surl.toString())).append(" "); diff --git a/apps/syndie/java/src/net/i2p/syndie/web/PostBean.java b/apps/syndie/java/src/net/i2p/syndie/web/PostBean.java index 597c897b38..fbc3d03587 100644 --- a/apps/syndie/java/src/net/i2p/syndie/web/PostBean.java +++ b/apps/syndie/java/src/net/i2p/syndie/web/PostBean.java @@ -97,7 +97,7 @@ public class PostBean { _filenames, localStreams, _fileTypes); if (_log.shouldLog(Log.DEBUG)) _log.debug("Posted the entry " + uri.toString() + " (archive = " + _archive + ")"); - if ( (uri != null) && (_user.getAllowAccessRemote()) ) { + if ( (uri != null) && BlogManager.instance().authorizeRemote(_user) ) { PetName pn = _user.getPetNameDB().get(_archive); if (_log.shouldLog(Log.DEBUG)) _log.debug("Archive to petname? " + pn + " (protocol: " + (pn != null ? pn.getProtocol() : "") + ")"); diff --git a/apps/syndie/jsp/admin.jsp b/apps/syndie/jsp/admin.jsp index 59eb76dd02..7fd2ae6715 100644 --- a/apps/syndie/jsp/admin.jsp +++ b/apps/syndie/jsp/admin.jsp @@ -25,11 +25,18 @@ if (!user.getAuthenticated()) { String proxyHost = request.getParameter("proxyhost"); String proxyPort = request.getParameter("proxyport"); String selector = request.getParameter("selector"); + boolean isSingleUser = BlogManager.instance().isSingleUser(); + String singleSet = request.getParameter("singleuser"); + if (singleSet != null) + isSingleUser = true; + else + isSingleUser = false; + if (configured) { - if ( (adminPass != null) && (BlogManager.instance().authorizeAdmin(adminPass)) ) { + if (BlogManager.instance().authorizeAdmin(adminPass)) { int port = -1; try { port = Integer.parseInt(proxyPort); } catch (NumberFormatException nfe) { port = 4444; } - BlogManager.instance().configure(regPass, remotePass, adminPass, selector, proxyHost, port, null); + BlogManager.instance().configure(regPass, remotePass, adminPass, selector, proxyHost, port, isSingleUser, null); %>Configuration updated<% } else { %>Invalid admin password. If you lost it, please update your syndie.config.<% @@ -37,11 +44,15 @@ if (!user.getAuthenticated()) { } else { int port = -1; try { port = Integer.parseInt(proxyPort); } catch (NumberFormatException nfe) { port = 4444; } - BlogManager.instance().configure(regPass, remotePass, adminPass, selector, proxyHost, port, null); + BlogManager.instance().configure(regPass, remotePass, adminPass, selector, proxyHost, port, isSingleUser, null); %>Configuration saved<% } } else { %>