X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2FMir.java;h=72432f0b67e93d6eca5a2451d709761111b484a1;hb=68985672fbee2e2a947c7811fb22fc71eaac03d4;hp=377891371935bdbf4100e4e710bfa3c4b86ec859;hpb=c785369f4ca9b7a6b295464041c14206c6db84bf;p=mir.git diff --git a/source/Mir.java b/source/Mir.java index 37789137..72432f0b 100755 --- a/source/Mir.java +++ b/source/Mir.java @@ -30,6 +30,7 @@ public class Mir extends AbstractServlet private static ModuleUsers usersModule=null; private static ModuleMessage messageModule=null; private static boolean confed=false; + public HttpSession session; public void doGet(HttpServletRequest req, HttpServletResponse res) @@ -51,15 +52,14 @@ public class Mir extends AbstractServlet confed = getConfig(req); } - HttpSession session = req.getSession(true); - + session = req.getSession(true); + if (req.getServerPort() == 443) http="https"; else http="http"; res.setContentType("text/html"); String moduleName = req.getParameter("module"); - if(session.getAttribute("Language")==null){ - setLanguage(req,getAcceptLanguage(req)); + setLanguage(session,getAcceptLanguage(req)); } // Authentifizierung @@ -78,38 +78,42 @@ public class Mir extends AbstractServlet // login successful //if accept-language!=selected language change language - if(!getLanguage(req).equals(lang)){ - setLanguage(req,lang); + if(!getLanguage(req,session).equals(lang)){ + setLanguage(session,lang); } theLog.printInfo("--login: successful! setting uid: " + userEntity.getId()); session.setAttribute("login.uid", userEntity); theLog.printDebugInfo("--login: trying to retrieve login.target"); String target = (String)session.getAttribute("login.target"); + if (target != null) { theLog.printDebugInfo("Redirect: "+target); int serverPort = req.getServerPort(); String redirect = ""; + String redirectString =""; + + if(serverPort==80){ - redirect = "going " + target + ""; + redirect=res.encodeURL(http + "://" + req.getServerName() + target); + redirectString = "going Mir"; } else { - redirect = "going " + target + ""; + redirect=res.encodeURL(http + "://" + req.getServerName() + ":" +req.getServerPort() + target); + redirectString = "going Mir"; } - //res.getWriter().println(redirect); - - res.encodeRedirectURL(http + "://" + req.getServerName() - + ":" +req.getServerPort() + target); - + res.getWriter().println(redirectString); + + + //res.sendRedirect(redirect); + } else { - theLog.printDebugInfo("testurl: "+res.encodeURL("")); - theLog.printDebugInfo("querystring: "+req.getQueryString()); // redirecting to default target - //theLog.printDebugInfo("--login: no target - redirecting to default"); - _sendStartPage(res,req, res.getWriter(),userEntity); + theLog.printDebugInfo("--login: no target - redirecting to default"); + _sendStartPage(res,req,res.getWriter(),userEntity); } return; } // if login succesful @@ -136,6 +140,7 @@ public class Mir extends AbstractServlet // Bei blossem Serveltaufruf redirect auf Standardstarttemplate if (moduleName == null || moduleName.equals("")) { + theLog.printDebugInfo("no module: redirect to standardpage"); _sendStartPage(res,req, res.getWriter(),userEntity); return; } @@ -194,12 +199,16 @@ public class Mir extends AbstractServlet // Redirect-methods private void _sendLoginPage(HttpServletResponse res,HttpServletRequest req, PrintWriter out) { String loginTemplate = "login.template"; + String sessionUrl=res.encodeURL(""); + //session = req.getSession(true); try { theLog.printDebugInfo("login: "+lang); if(lang==null){ lang=getAcceptLanguage(req); } - HTMLTemplateProcessor.process(res,lang+"/"+loginTemplate, new SimpleHash(), out); + SimpleHash mergeData = new SimpleHash(); + mergeData.put("session",sessionUrl); + HTMLTemplateProcessor.process(res,lang+"/"+loginTemplate, mergeData, out); } catch(HTMLParseException e) { handleError(res, out, "fehler in logintemplate."); } @@ -207,16 +216,15 @@ public class Mir extends AbstractServlet private void _sendStartPage(HttpServletResponse res, HttpServletRequest req,PrintWriter out, EntityUsers userEntity) { String startTemplate = "start_admin.template"; - String sessionUrl=res.encodeURL(""); - theLog.printDebugInfo("testurl: "+sessionUrl); + String sessionUrl=res.encodeURL(""); try { // merge with logged in user and messages SimpleHash mergeData = new SimpleHash(); - mergeData.put("session",sessionUrl); + mergeData.put("session",sessionUrl); mergeData.put("login_user", HTMLTemplateProcessor.makeSimpleHash(userEntity)); if (messageModule == null) messageModule = new ModuleMessage(DatabaseMessages.getInstance()); mergeData.put("messages", HTMLTemplateProcessor.makeSimpleList(messageModule.getByWhereClause(null, "webdb_create desc",0,10))); - HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+startTemplate, mergeData,out); + HTMLTemplateProcessor.process(res,getLanguage(req,session)+"/"+startTemplate, mergeData,out); } catch(Exception e) { handleError( res,out, "error while trying to send startpage. " + e.toString());