import java.lang.reflect.Method;\r
import java.util.GregorianCalendar;\r
import java.util.HashMap;\r
+import java.util.Iterator;\r
+import java.util.List;\r
import java.util.Locale;\r
-import java.util.*;\r
+import java.util.Map;\r
+import java.util.Vector;\r
\r
import javax.servlet.ServletException;\r
import javax.servlet.UnavailableException;\r
import javax.servlet.http.HttpServletResponse;\r
import javax.servlet.http.HttpSession;\r
\r
-import freemarker.template.*;\r
-\r
-import org.apache.struts.util.MessageResources;\r
-\r
-import mir.misc.*;\r
-import mir.servlet.*;\r
-import mir.util.*;\r
-import mir.generator.*;\r
-//import mir.log.Log;\r
-\r
-import mircoders.global.*;\r
-import mircoders.localizer.*;\r
+import mir.config.MirPropertiesConfiguration;\r
+import mir.generator.FreemarkerGenerator;\r
+import mir.misc.HTMLTemplateProcessor;\r
+import mir.misc.StringUtil;\r
+import mir.servlet.AbstractServlet;\r
+import mir.servlet.ServletModule;\r
+import mir.servlet.ServletModuleDispatch;\r
+import mir.servlet.ServletModuleException;\r
+import mir.servlet.ServletModuleUserException;\r
+import mir.util.StringRoutines;\r
import mircoders.entity.EntityUsers;\r
+import mircoders.global.MirGlobal;\r
import mircoders.module.ModuleMessage;\r
import mircoders.module.ModuleUsers;\r
import mircoders.storage.DatabaseArticleType;\r
import mircoders.storage.DatabaseMessages;\r
import mircoders.storage.DatabaseUsers;\r
\r
+import org.apache.struts.util.MessageResources;\r
+\r
+import freemarker.template.SimpleHash;\r
+import freemarker.template.SimpleList;\r
+import freemarker.template.SimpleScalar;\r
+import freemarker.template.TemplateModel;\r
+\r
/**\r
* Mir.java - main servlet, that dispatches to servletmodules\r
*\r
- * @author $Author: mh $\r
- * @version $Id: Mir.java,v 1.26 2003/01/18 08:32:07 mh Exp $\r
+ * @author $Author: idfx $\r
+ * @version $Id: Mir.java,v 1.27 2003/01/25 17:50:34 idfx Exp $\r
*\r
*/\r
\r
private static List loginLanguages = null;\r
\r
public HttpSession session;\r
+ \r
+ \r
\r
public void doGet(HttpServletRequest req, HttpServletResponse res) throws\r
ServletException, IOException {\r
EntityUsers userEntity;\r
String http = "";\r
\r
- if (getServletContext().getAttribute("mir.confed") == null) {\r
- getConfig(req);\r
- }\r
-\r
- MirConfig.setServletName(getServletName());\r
+ configuration.addProperty("ServletName",getServletName());\r
\r
//*** test\r
// Log.info(this, "blalalala");\r
if ( (moduleName != null && moduleName.equals("login")) || (userEntity == null)) {\r
String user = req.getParameter("login");\r
String passwd = req.getParameter("password");\r
- theLog.printDebugInfo("--login: evaluating for user: " + user);\r
+ logger.debug("--login: evaluating for user: " + user);\r
userEntity = allowedUser(user, passwd);\r
if (userEntity == null) {\r
// login failed: redirecting to login\r
- theLog.printWarning("--login: failed!");\r
+ logger.warn("--login: failed!");\r
_sendLoginPage(res, req, res.getWriter());\r
return;\r
}\r
else if (moduleName != null && moduleName.equals("login")) {\r
// login successful\r
\r
- theLog.printInfo("--login: successful! setting uid: " +\r
+ logger.info("--login: successful! setting uid: " +\r
userEntity.getId());\r
session.setAttribute("login.uid", userEntity);\r
- theLog.printDebugInfo("--login: trying to retrieve login.target");\r
+ logger.debug("--login: trying to retrieve login.target");\r
String target = (String) session.getAttribute("login.target");\r
\r
if (target != null) {\r
- theLog.printDebugInfo("Redirect: " + target);\r
+ logger.debug("Redirect: " + target);\r
int serverPort = req.getServerPort();\r
String redirect = "";\r
String redirectString = "";\r
}\r
else {\r
// redirecting to default target\r
- theLog.printDebugInfo("--login: no target - redirecting to default");\r
+ logger.debug("--login: no target - redirecting to default");\r
_sendStartPage(res, req, res.getWriter(), userEntity);\r
}\r
return;\r
} // if login\r
\r
if (moduleName != null && moduleName.equals("logout")) {\r
- theLog.printDebugInfo("--logout");\r
+ logger.info("--logout");\r
session.invalidate();\r
\r
//session = req.getSession(true);\r
String queryString = req.getQueryString();\r
if (queryString != null && !queryString.equals("")) {\r
redirectString += "?" + req.getQueryString();\r
- theLog.printDebugInfo("STORING: " + redirectString);\r
+ logger.debug("STORING: " + redirectString);\r
session.setAttribute("login.target", redirectString);\r
}\r
_sendLoginPage(res, req, res.getWriter());\r
\r
// If no module is specified goto standard startpage\r
if (moduleName == null || moduleName.equals("")) {\r
- theLog.printDebugInfo("no module: redirect to standardpage");\r
+ logger.debug("no module: redirect to standardpage");\r
_sendStartPage(res, req, res.getWriter(), userEntity);\r
return;\r
}\r
\r
// timing...\r
sessionConnectTime = System.currentTimeMillis() - startTime;\r
- theLog.printInfo("EXECTIME (" + moduleName + "): " + sessionConnectTime +\r
+ logger.info("EXECTIME (" + moduleName + "): " + sessionConnectTime +\r
" ms");\r
}\r
\r
PrintWriter out, String errorString) {\r
\r
try {\r
- theLog.printError(errorString);\r
+ logger.error(errorString);\r
SimpleHash modelRoot = new SimpleHash();\r
modelRoot.put("errorstring", new SimpleScalar(errorString));\r
modelRoot.put("date",\r
new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));\r
- HTMLTemplateProcessor.process(res, MirConfig.getProp("Mir.ErrorTemplate"),\r
+ HTMLTemplateProcessor.process(res, MirPropertiesConfiguration.instance().getString("Mir.ErrorTemplate"),\r
modelRoot, out, getLocale(req));\r
out.close();\r
}\r
private void handleUserError(HttpServletRequest req, HttpServletResponse res,\r
PrintWriter out, String errorString) {\r
try {\r
- theLog.printError(errorString);\r
+ logger.error(errorString);\r
SimpleHash modelRoot = new SimpleHash();\r
modelRoot.put("errorstring", new SimpleScalar(errorString));\r
modelRoot.put("date",\r
new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));\r
HTMLTemplateProcessor.process(res,\r
- MirConfig.getProp("Mir.UserErrorTemplate"),\r
+ MirPropertiesConfiguration.instance().getString("Mir.UserErrorTemplate"),\r
modelRoot, out, getLocale(req));\r
out.close();\r
}\r
return usersModule.getUserForLogin(user, password);\r
}\r
catch (Exception e) {\r
- theLog.printDebugInfo(e.getMessage());\r
+ logger.debug(e.getMessage());\r
e.printStackTrace();\r
return null;\r
}\r
// Redirect-methods\r
private void _sendLoginPage(HttpServletResponse res, HttpServletRequest req,\r
PrintWriter out) {\r
- String loginTemplate = MirConfig.getProp("Mir.LoginTemplate");\r
+ String loginTemplate = \r
+ configuration.getString("Mir.LoginTemplate");\r
String sessionUrl = res.encodeURL("");\r
\r
try {\r
}\r
\r
public String getServletInfo() {\r
- return "Mir " + MirConfig.getProp("Mir.Version");\r
+ return "Mir " + configuration.getString("Mir.Version");\r
}\r
\r
private void checkLanguage(HttpSession session, HttpServletRequest req) {\r
// a lang parameter always sets the language\r
String lang = req.getParameter("language");\r
if (lang != null) {\r
- theLog.printInfo("selected language " + lang + " overrides accept-language");\r
+ logger.info("selected language " + lang + " overrides accept-language");\r
setLanguage(session, lang);\r
setLocale(session, new Locale(lang, ""));\r
}\r
// otherwise store language from accept header in session\r
else if (session.getAttribute("Language") == null) {\r
- theLog.printInfo("accept-language is " + req.getLocale().getLanguage());\r
+ logger.info("accept-language is " + req.getLocale().getLanguage());\r
setLanguage(session, req.getLocale().getLanguage());\r
setLocale(session, req.getLocale());\r
}\r