Author: sshafroi Date: 2008-04-23 15:33:04 +0200 (Wed, 23 Apr 2008) New Revision: 6543
Modified: trunk/ trunk/core-api/src/main/java/no/sesat/search/view/output/SyndicationGenerator.java trunk/generic.sesam/sesam.com/ trunk/generic.sesam/sesam.com/pom.xml trunk/generic.sesam/sesam.com/war/src/main/conf/views.xml trunk/generic.sesam/sesam.com/war/src/main/images/logo.png trunk/generic.sesam/sesam.com/war/src/main/webapp/WEB-INF/classes/fragments/layout/sesam.com/head.jsp trunk/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java trunk/site-spi/src/test/java/no/sesat/search/site/config/FileResourceLoader.java trunk/skin-archetype/src/main/resources/archetype-resources/pom.xml trunk/view-config-spi/src/main/java/no/sesat/search/view/navigation/OptionsNavigationConfig.java trunk/view-control-spi/src/main/java/no/sesat/search/view/navigation/OptionNavigationController.java trunk/war/pom.xml trunk/war/src/main/java/no/sesat/search/http/filters/MD5ProtectedParametersFilter.java trunk/war/src/main/java/no/sesat/search/http/servlet/SearchServlet.java Log: Merged revisions 6502-6541 via svnmerge from http://sesat.no/svn/sesat-kernel/branches/2.17 ........ r6503 | ssmiweve | 2008-04-19 21:36:14 +0200 (Sat, 19 Apr 2008) | 1 line SEARCH-4616 - sesat tests broken on windows machines ........ r6504 | ssenrogn | 2008-04-20 23:20:20 +0200 (Sun, 20 Apr 2008) | 1 line Added Eclipse files to ignore list. ........ r6505 | ssmiweve | 2008-04-21 08:44:14 +0200 (Mon, 21 Apr 2008) | 1 line SEARCH-4648 - Move sesam.no code out of SyndicationGenerator ........ r6509 | ssmiweve | 2008-04-21 13:33:22 +0200 (Mon, 21 Apr 2008) | 1 line SEARCH-4581 - Geo-ord med bindestrek har sluttet ?\195?\165 splitte korrekt ........ r6515 | ssmiweve | 2008-04-21 13:53:51 +0200 (Mon, 21 Apr 2008) | 2 lines fix to avod NPE (when a skin doesn't set any md5. properties) + javadoc ........ r6516 | ssmiweve | 2008-04-21 14:27:20 +0200 (Mon, 21 Apr 2008) | 2 lines base default tab got display-css="false" added. ........ r6518 | ssmiweve | 2008-04-21 14:48:55 +0200 (Mon, 21 Apr 2008) | 1 line we use ports now against generic.sesam ........ r6523 | ssmiweve | 2008-04-21 15:01:30 +0200 (Mon, 21 Apr 2008) | 1 line following r6518 ........ r6532 | ssmiweve | 2008-04-22 10:18:30 +0200 (Tue, 22 Apr 2008) | 2 lines odd property left out in the cold. ........ r6536 | ssmiweve | 2008-04-22 12:16:38 +0200 (Tue, 22 Apr 2008) | 1 line erroneous log line every request. ........ r6537 | ssmiweve | 2008-04-22 20:07:54 +0200 (Tue, 22 Apr 2008) | 2 lines SEARCH-4105 - Move logic from get-method to constructor in NavigationManager ........ r6538 | ssmiweve | 2008-04-22 22:23:38 +0200 (Tue, 22 Apr 2008) | 1 line SEARCH-4661 - NullPointerException: <init>(SyndicationGenerator.java:133) ........ r6541 | ssmiweve | 2008-04-23 11:59:27 +0200 (Wed, 23 Apr 2008) | 2 lines logo back to company ........ Property changes on: trunk ___________________________________________________________________ Name: svnmerge-integrated - /branches/2.10:1-4690,4692-4745 /branches/2.11:1-4933 /branches/2.12:1-5051,5053-5106 /branches/2.13:1-5378 /branches/2.14:1-5508 /branches/2.15:1-5995 /branches/2.16:1-6499 /branches/2.17:1-6501 /branches/2.6:1-3877 /branches/2.7:1-4160 /branches/2.8:1-4446 /branches/2.9:1-4626 /branches/MAP_SEARCHv2:1-4544 + /branches/2.10:1-4690,4692-4745 /branches/2.11:1-4933 /branches/2.12:1-5051,5053-5106 /branches/2.13:1-5378 /branches/2.14:1-5508 /branches/2.15:1-5995 /branches/2.16:1-6499 /branches/2.17:1-6541 /branches/2.6:1-3877 /branches/2.7:1-4160 /branches/2.8:1-4446 /branches/2.9:1-4626 /branches/MAP_SEARCHv2:1-4544 Modified: trunk/core-api/src/main/java/no/sesat/search/view/output/SyndicationGenerator.java =================================================================== --- trunk/core-api/src/main/java/no/sesat/search/view/output/SyndicationGenerator.java 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/core-api/src/main/java/no/sesat/search/view/output/SyndicationGenerator.java 2008-04-23 13:33:04 UTC (rev 6543) @@ -63,6 +63,8 @@ import java.util.List; import java.util.Properties; import java.util.TimeZone; +import javax.resource.NotSupportedException; +import no.sesat.search.result.BasicResultList; /** * Used by the rssDecorator.jsp to print out the results in rss format. @@ -125,17 +127,21 @@ * Creates a new instance. * * @param context The context this class needs to do its work. + * @throws SyndicationNotSupportedException */ - public SyndicationGenerator(final Context context) { + public SyndicationGenerator(final Context context) throws SyndicationNotSupportedException{ + + if(null == context.getTab().getRssResultName()){ throw new SyndicationNotSupportedException(); } this.context = context; - this.result = context.getDataModel().getSearch(context.getTab().getRssResultName()).getResults(); + this.result = null != context.getDataModel().getSearch(context.getTab().getRssResultName()) + ? context.getDataModel().getSearch(context.getTab().getRssResultName()).getResults() + : new BasicResultList<ResultItem>(); + this.site = context.getSite(); this.text = TextMessages.valueOf(getTextMessagesContext()); - //this.channels = Channels.instanceOf(getChannelContext()); - this.uri = context.getURL(); final String type = getParameter("feedType"); @@ -324,31 +330,6 @@ final String origUri = uri.replaceAll("&?output=[^&]+", "").replaceAll("&?feedtype=[^&]+", ""); cxt.put("uri", origUri); - //cxt.put("channels", channels); - - // @todo. Specific to sesam.no. Move somewhere else. result-spi? templates? The command? - if ("c".equals(context.getTab().getKey())) { - - final String contentSource = getParameter("contentsource"); - final String newsCountry = getParameter("newsCountry"); - - if (contentSource != null && contentSource.startsWith("Interna")) { - cxt.put("newstype", "- Internasjonale nyheter"); - } else if (contentSource != null && contentSource.equals("Mediearkivet")) { - cxt.put("newstype", "- Papiraviser"); - } else if (newsCountry != null && newsCountry.equals("Sverige")) { - cxt.put("newstype", "- Svenske nyheter"); - } else if (newsCountry != null && newsCountry.equals("Island")) { - cxt.put("newstype", "- Islandske nyheter"); - } else if (newsCountry != null && newsCountry.equals("Finland")) { - cxt.put("newstype", "- Finske nyheter"); - } else if (newsCountry != null && newsCountry.equals("Danmark")) { - cxt.put("newstype", "- Danske nyheter"); - } else { - cxt.put("newstype", "- Norske nyheter"); - } - } - final Template tpl = VelocityEngineFactory.getTemplate(engine, site, templateUri); final StringWriter writer = new StringWriter(); @@ -412,4 +393,8 @@ // } // Inner classes ------------------------------------------------- + + public static final class SyndicationNotSupportedException extends Exception{ + + } } Property changes on: trunk/generic.sesam/sesam.com ___________________________________________________________________ Name: svn:ignore - target + .project .classpath .settings .checkstyle target Modified: trunk/generic.sesam/sesam.com/pom.xml =================================================================== --- trunk/generic.sesam/sesam.com/pom.xml 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/generic.sesam/sesam.com/pom.xml 2008-04-23 13:33:04 UTC (rev 6543) @@ -162,7 +162,7 @@ <properties> <sesam.site>alpha.test.sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.alpha.test.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.alpha.test.sesam:8084</sesam.site.parent> </properties> </profile> <profile> @@ -173,7 +173,7 @@ <properties> <sesam.site>nuclei.test.sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.nuclei.test.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.nuclei.test.sesam:8082</sesam.site.parent> </properties> </profile> <profile> @@ -184,7 +184,7 @@ <properties> <sesam.site>beta.test.sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.beta.test.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.beta.test.sesam:8085</sesam.site.parent> </properties> </profile> <profile> @@ -195,7 +195,7 @@ <properties> <sesam.site>electron.test.sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.electron.test.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.electron.test.sesam:8083</sesam.site.parent> </properties> </profile> <profile> @@ -206,7 +206,7 @@ <properties> <sesam.site>gamma.test.sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.gamma.test.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.sesam:8086</sesam.site.parent> </properties> </profile> @@ -219,7 +219,7 @@ <properties> <sesam.site>sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.sesam:8080</sesam.site.parent> </properties> </profile> </profiles> Modified: trunk/generic.sesam/sesam.com/war/src/main/conf/views.xml =================================================================== --- trunk/generic.sesam/sesam.com/war/src/main/conf/views.xml 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/generic.sesam/sesam.com/war/src/main/conf/views.xml 2008-04-23 13:33:04 UTC (rev 6543) @@ -23,7 +23,11 @@ Purpose of the document follows. --> <views> + <!-- Override default to show its css --> + <tab id="default" display-css="true" inherit="default"/> + <!-- Our base sesam.com view --> <tab id="default-sesam-com" inherit="default"/> + <!-- The one vertical we have. --> <tab id="international" inherit="default-sesam-com" key="g" mode="international" Modified: trunk/generic.sesam/sesam.com/war/src/main/images/logo.png =================================================================== (Binary files differ) Modified: trunk/generic.sesam/sesam.com/war/src/main/webapp/WEB-INF/classes/fragments/layout/sesam.com/head.jsp =================================================================== --- trunk/generic.sesam/sesam.com/war/src/main/webapp/WEB-INF/classes/fragments/layout/sesam.com/head.jsp 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/generic.sesam/sesam.com/war/src/main/webapp/WEB-INF/classes/fragments/layout/sesam.com/head.jsp 2008-04-23 13:33:04 UTC (rev 6543) @@ -33,13 +33,17 @@ <!-- Css --> <c:forEach var="ww" items="${tab.css}"> <c:set var="ww_link"><search:findResource url="/css/tab/${ww.id}.css"/></c:set> - <link rel="stylesheet" type="text/css" href="${ww_link}" media="screen"/> + <c:if test="${not empty ww_link}"> + <link rel="stylesheet" type="text/css" href="${ww_link}" media="screen"/> + </c:if> </c:forEach> <c:forEach var="w" items="${tab.ancestry}"> <c:set var="w_link"><search:findResource url="/css/tab/${w.id}.css"/></c:set> - <link rel="stylesheet" type="text/css" href="${w_link}" media="screen"/> + <c:if test="${not empty w_link}"> + <link rel="stylesheet" type="text/css" href="${w_link}" media="screen"/> + </c:if> </c:forEach> -<c:set var="w_link"><search:findResource url="/css/print-style.css"/></c:set> +<c:set var="w_link"><search:findResource url="/css/print.css"/></c:set> <link rel="stylesheet" type="text/css" href="${w_link}" media="print"/> <!-- Page Icons --> @@ -55,7 +59,9 @@ <c:forEach var="js" items="${tab.javascript}"> <c:set var="js_link"><search:findResource url="/javascript/${js}.js"/></c:set> - <script type='text/javascript' src="${js_link}"></script> + <c:if test="${not empty js_link}"> + <script type='text/javascript' src="${js_link}"></script> + </c:if> </c:forEach> </jsp:root> Modified: trunk/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java =================================================================== --- trunk/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java 2008-04-23 13:33:04 UTC (rev 6543) @@ -527,7 +527,7 @@ return string .replaceAll(" ", "xxKEEPWSxx") // Hack to keep spaces. - .replaceAll(SKIP_REGEX, "") + .replaceAll(SKIP_REGEX, " ") .replaceAll("xxKEEPWSxx", " ") // Hack to keep spaces. .replaceAll(OPERATOR_REGEX, " "); } Modified: trunk/site-spi/src/test/java/no/sesat/search/site/config/FileResourceLoader.java =================================================================== --- trunk/site-spi/src/test/java/no/sesat/search/site/config/FileResourceLoader.java 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/site-spi/src/test/java/no/sesat/search/site/config/FileResourceLoader.java 2008-04-23 13:33:04 UTC (rev 6543) @@ -111,7 +111,7 @@ protected final String getProjectName(final String siteName){ - // XXX Very hacky and awful! desparately needs attention. + // XXX Very hacky and awful! desparately needs attention. One idea is to always use "generic.sesam" as skin name String projectName = siteName .replaceAll("(localhost|(alpha|nuclei|beta|electron|gamma).test.sesam)", "sesam") .replaceAll("generic.(sesam.no)", "generic.sesam"); @@ -154,12 +154,21 @@ String basedir = System.getProperty("basedir") + File.separatorChar; LOG.debug("project " + project); while(true){ - final String basedirNormalised = new File(basedir).toURI().normalize().toString() - .replaceFirst("file:", "").replace('/', File.separatorChar); + String basedirNormalised = new File(basedir).toURI().normalize().toString() + .replaceFirst("file:", "") + .replace('/', File.separatorChar); + if(!basedirNormalised.endsWith(File.separator)){ + basedirNormalised = basedirNormalised + File.separatorChar; + } + LOG.debug("basedirNormalised " + basedirNormalised); - assert ! (File.separatorChar + "war").equals(basedirNormalised) : "At root of filesystem!"; + if((File.separatorChar + "war" + File.separatorChar).equals(basedirNormalised)){ + throw new IllegalStateException("At root of filesystem!" + + "+ Current requirement of tests is that sesat-kernel is checked out, and named such," + + " in any parent folder from here. I've searched all the way to the root of the filesystem"); + } if(basedirNormalised.endsWith(project) || basedirNormalised.endsWith(project + "war" + File.separatorChar)){ Modified: trunk/skin-archetype/src/main/resources/archetype-resources/pom.xml =================================================================== --- trunk/skin-archetype/src/main/resources/archetype-resources/pom.xml 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/skin-archetype/src/main/resources/archetype-resources/pom.xml 2008-04-23 13:33:04 UTC (rev 6543) @@ -167,7 +167,7 @@ <properties> <sesam.site>alpha.test.sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.alpha.test.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.alpha.test.sesam:8084</sesam.site.parent> </properties> </profile> <profile> @@ -177,7 +177,7 @@ <properties> <sesam.site>nuclei.test.sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.nuclei.test.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.nuclei.test.sesam:8082</sesam.site.parent> </properties> </profile> <profile> @@ -187,7 +187,7 @@ <properties> <sesam.site>beta.test.sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.beta.test.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.beta.test.sesam:8085</sesam.site.parent> </properties> </profile> <profile> @@ -197,7 +197,7 @@ <properties> <sesam.site>electron.test.sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.electron.test.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.electron.test.sesam:8083</sesam.site.parent> </properties> </profile> <profile> @@ -207,7 +207,7 @@ <properties> <sesam.site>gamma.test.sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.gamma.test.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.sesam:8086</sesam.site.parent> </properties> </profile> @@ -219,7 +219,7 @@ <properties> <sesam.site>sesam.com</sesam.site> <!-- The parent Site --> - <sesam.site.parent>generic.sesam.no</sesam.site.parent> + <sesam.site.parent>generic.sesam:8080</sesam.site.parent> </properties> </profile> </profiles> Modified: trunk/view-config-spi/src/main/java/no/sesat/search/view/navigation/OptionsNavigationConfig.java =================================================================== --- trunk/view-config-spi/src/main/java/no/sesat/search/view/navigation/OptionsNavigationConfig.java 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/view-config-spi/src/main/java/no/sesat/search/view/navigation/OptionsNavigationConfig.java 2008-04-23 13:33:04 UTC (rev 6543) @@ -34,6 +34,9 @@ import java.util.Collections; import java.util.Collection; import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; +import no.sesat.search.view.config.SearchTab; /** * @@ -117,6 +120,8 @@ private String tab; private boolean useHitCount; private String commandName; + // just like NavigationConfig.Navigation.Nav we'll handle tab via staticParameters + private Map<String,String> staticParameters = new HashMap<String,String>(); public Option(final Element e) { fillBeanProperty(this, null, "value", ParseType.String, e, null); @@ -149,7 +154,7 @@ return valueRef; } - public void setValueRef(String valueRef) { + public void setValueRef(final String valueRef) { this.valueRef = valueRef; } @@ -157,7 +162,7 @@ return defaultSelect; } - public void setDefaultSelect(boolean defaultSelect) { + public void setDefaultSelect(final boolean defaultSelect) { this.defaultSelect = defaultSelect; } @@ -165,7 +170,7 @@ return defaultSelectValueRef; } - public void setDefaultSelectValueRef(String defaultSelectValueRef) { + public void setDefaultSelectValueRef(final String defaultSelectValueRef) { this.defaultSelectValueRef = defaultSelectValueRef; } @@ -173,15 +178,17 @@ return tab; } - public void setTab(String tab) { + public void setTab(final String tab) { this.tab = tab; + // The tab property takes preference over any url parameters. intialse it here and use against urlGenerator. + staticParameters.put(SearchTab.PARAMETER_KEY, tab); } public boolean isUseHitCount() { return useHitCount; } - public void setUseHitCount(boolean useHitCount) { + public void setUseHitCount(final boolean useHitCount) { this.useHitCount = useHitCount; } @@ -189,10 +196,14 @@ return commandName; } - public void setCommandName(String commandName) { + public void setCommandName(final String commandName) { this.commandName = commandName; } + public Map<String, String> getStaticParameters() { + return Collections.unmodifiableMap(staticParameters); + } + @Override public String toString() { return "\nOption{" + Modified: trunk/view-control-spi/src/main/java/no/sesat/search/view/navigation/OptionNavigationController.java =================================================================== --- trunk/view-control-spi/src/main/java/no/sesat/search/view/navigation/OptionNavigationController.java 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/view-control-spi/src/main/java/no/sesat/search/view/navigation/OptionNavigationController.java 2008-04-23 13:33:04 UTC (rev 6543) @@ -145,18 +145,9 @@ } if (value != null) { - final Map<String,String> urlParameters; - - if (option.getTab() != null) { - urlParameters = new HashMap<String, String>(1); - urlParameters.put(SearchTab.PARAMETER_KEY, option.getTab()); - } else { - urlParameters = Collections.<String, String> emptyMap(); - } - final NavigationItem navigator = new BasicNavigationItem( option.getDisplayName(), - context.getUrlGenerator().getURL(value, config.getParent(), urlParameters), + context.getUrlGenerator().getURL(value, config.getParent(), option.getStaticParameters()), -1); parentResult.addResult(navigator); Modified: trunk/war/pom.xml =================================================================== --- trunk/war/pom.xml 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/war/pom.xml 2008-04-23 13:33:04 UTC (rev 6543) @@ -335,8 +335,6 @@ <id>production</id> <activation /> <properties> - <sesam.site.default>generic.sesam.no</sesam.site.default> - <server.port>80</server.port> <tradedoubler.form.action>$$url</tradedoubler.form.action> <tradedoubler.context.url>http://www.sesam.no</tradedoubler.context.url> <msearch.configuration.url>http://www.sesam.no/mobil.sesam.no/conf/msearch-client.properties</msearch.configuration.url> Modified: trunk/war/src/main/java/no/sesat/search/http/filters/MD5ProtectedParametersFilter.java =================================================================== --- trunk/war/src/main/java/no/sesat/search/http/filters/MD5ProtectedParametersFilter.java 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/war/src/main/java/no/sesat/search/http/filters/MD5ProtectedParametersFilter.java 2008-04-23 13:33:04 UTC (rev 6543) @@ -35,72 +35,73 @@ import javax.servlet.ServletResponse; import org.apache.log4j.Logger; -/** - * @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a> - * @version <tt>$Revision$</tt> +/** Generalised way to protect parameter values through md5 signings. + * A skin must define the properties (in configuration.properties): + * md5.secret and md5.protectedParameters + * Any secret can be chosen. Any parameter matches those listed in md5.protectedParameters (separated by commas) + * are expected to have a paired parameter (called <parameterName>_x) that represents the signing of the + * original parameter value. If this second parameter does not exist or it's not an accurate signing of the original + * parameter then the request immediately returns with a 404 response error. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a> + * @version <tt>$Id$</tt> */ public final class MD5ProtectedParametersFilter implements Filter { private static final Logger LOG = Logger.getLogger(MD5ProtectedParametersFilter.class); - /** [EMAIL PROTECTED] **/ public void init(final FilterConfig filterConfig) throws ServletException { } - /** [EMAIL PROTECTED] **/ public void doFilter( final ServletRequest servletRequest, final ServletResponse servletResponse, final FilterChain filterChain) throws IOException, ServletException { final Enumeration e = servletRequest.getParameterNames(); - + if(servletRequest instanceof HttpServletRequest) { - HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; - - DataModel datamodel = (DataModel)httpServletRequest.getSession().getAttribute(DataModel.KEY); - SiteConfiguration siteConfig = datamodel.getSite().getSiteConfiguration(); - - MD5Generator digestGenerator = new MD5Generator(siteConfig.getProperty("md5.secret")); - - Map<String, Boolean> protectedParameters = new HashMap<String, Boolean>(); - final String[] p = siteConfig.getProperty("md5.protectedParameters").split(","); - for (final String parameter : p) { - LOG.info("Adding " + parameter + " as protected parameter"); - protectedParameters.put(parameter, Boolean.TRUE); + final HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; + + final DataModel datamodel = (DataModel)httpServletRequest.getSession().getAttribute(DataModel.KEY); + final SiteConfiguration siteConf = datamodel.getSite().getSiteConfiguration(); + + if(null != siteConf.getProperty("md5.secret") && null != siteConf.getProperty("md5.protectedParameters")){ + + final MD5Generator generator = new MD5Generator(siteConf.getProperty("md5.secret")); + + final Map<String, Boolean> protectedParameters = new HashMap<String, Boolean>(); + final String[] p = siteConf.getProperty("md5.protectedParameters").split(","); + for (final String parameter : p) { + LOG.info("Adding " + parameter + " as protected parameter"); + protectedParameters.put(parameter, Boolean.TRUE); + } + + while (e.hasMoreElements()) { + final String paramName = (String) e.nextElement(); + + LOG.trace("Checking to see if " + paramName + " is protected"); + + if (protectedParameters.containsKey(paramName)) { + + LOG.trace(paramName + " is protected"); + + final String md5Param = servletRequest.getParameter(paramName + "_x"); + + if (md5Param == null || !generator.validate(servletRequest.getParameter(paramName), md5Param)){ + final HttpServletResponse response = (HttpServletResponse) servletResponse; + response.sendError(HttpServletResponse.SC_NOT_FOUND); + return; + } + } + } + + servletRequest.setAttribute("hashGenerator", generator); } - - while (e.hasMoreElements()) { - final String parameterName = (String) e.nextElement(); - - if (LOG.isTraceEnabled()) { - LOG.trace("Checking to see if " + parameterName + " is protected"); - } - - if (protectedParameters.containsKey(parameterName)) { - - if (LOG.isTraceEnabled()) { - LOG.trace(parameterName + " is protected"); - } - - final String md5Parameter = servletRequest.getParameter(parameterName + "_x"); - - if (md5Parameter == null - || !digestGenerator.validate(servletRequest.getParameter(parameterName), md5Parameter)) - { - final HttpServletResponse response = (HttpServletResponse) servletResponse; - response.sendError(HttpServletResponse.SC_NOT_FOUND); - return; - } - } - } - - servletRequest.setAttribute("hashGenerator", digestGenerator); } filterChain.doFilter(servletRequest, servletResponse); } - /** [EMAIL PROTECTED] **/ public void destroy() { } Modified: trunk/war/src/main/java/no/sesat/search/http/servlet/SearchServlet.java =================================================================== --- trunk/war/src/main/java/no/sesat/search/http/servlet/SearchServlet.java 2008-04-23 12:52:13 UTC (rev 6542) +++ trunk/war/src/main/java/no/sesat/search/http/servlet/SearchServlet.java 2008-04-23 13:33:04 UTC (rev 6543) @@ -282,15 +282,18 @@ for (String s : ipaddress) { allowed |= ipAddr.startsWith(s); } - if(!allowed){ LOG.warn("ipaddress " + ipAddr + "trying to performFactoryReload(..)"); } + if (null != reload && reload.length() > 0){ + + if (allowed){ + try{ + final ReloadArg arg = ReloadArg.valueOf(reload.toUpperCase()); + FactoryReloads.performReloads(genericCxt, arg); - if (allowed && null != reload && reload.length() > 0){ - try{ - final ReloadArg arg = ReloadArg.valueOf(reload.toUpperCase()); - FactoryReloads.performReloads(genericCxt, arg); - - }catch(IllegalArgumentException ex){ - LOG.info("Invalid reload parameter -->" + reload); + }catch(IllegalArgumentException ex){ + LOG.info("Invalid reload parameter -->" + reload); + } + }else{ + LOG.warn("ipaddress " + ipAddr + " not allowed to performFactoryReload(..)"); } } } _______________________________________________ Kernel-commits mailing list [email protected] http://sesat.no/mailman/listinfo/kernel-commits
