📄 jahiaadministration.java
字号:
internalQueryParams = extraQueryParams; } return response.encodeURL ( request.getContextPath() + getServletPath() + internalDoAction + internalQueryParams ); } //------------------------------------------------------------------------- /** * This method is used like a dispatcher for user requests. * @author Alexandre Kraft * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ private void userRequestDispatcher( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException { String operation = request.getParameter("do"); if ( operation == null ) operation = ""; try { if(operation.equals("processlogin")) { // operation : process login... processLogin( request, response, session, null, null ); } else if(request.getAttribute(JahiaConfigurationWizard.CLASS_NAME + ".directAdministration") != null) { processLogin( request, response, session, (String) request.getAttribute(JahiaConfigurationWizard.CLASS_NAME + ".rootName"), (String) request.getAttribute(JahiaConfigurationWizard.CLASS_NAME + ".rootPass") ); } else { Boolean accessGranted = (Boolean) session.getAttribute(CLASS_NAME + "accessGranted"); if ( accessGranted == null ) accessGranted = new Boolean(false); if(accessGranted.booleanValue()) { // authorize these methods only if it's a superadmin group member... Boolean isSuperAdmin = (Boolean) session.getAttribute( CLASS_NAME + "isSuperAdmin" ); boolean alreadyExited = false; if(isSuperAdmin.booleanValue()) { initAdminJahiaData( request, response, session); if(operation.equals("server")) { // operation : server settings ManageServer manageServer = new ManageServer( request, response, session ); alreadyExited = true; } else if(operation.equals("database")) { // operation : database management ManageDatabase manageDatabase = new ManageDatabase( request, response, session, context ); alreadyExited = true; } else if(operation.equals("sites")) { // operation : sites management ManageSites manageSites = new ManageSites( request, response, session, context ); alreadyExited = true; } else if(operation.equals("jeffile")) { // operation : jef files management ManageJefFile manageJefFile = new ManageJefFile( request, response, session ); alreadyExited = true; } else if(operation.equals("extdepsite")) { // operation : site extract/deploy management ExtractDeploySite extDepSite = new ExtractDeploySite( request, response, session, context ); alreadyExited = true; } else if(operation.equals("switch")) { // operation : switch management mode (server, sites) switchModeAction( request, response, session ); alreadyExited = true; } else if(operation.equals("logs")) { // operation : audit log management ManageLogs manageLogs = new ManageLogs( request, response, session ); alreadyExited = true; } else if(operation.equals("info")) { // operation : display license info LicenseInfo licenseInfo = new LicenseInfo( request, response, session ); alreadyExited = true; } else if ("status".equals(operation)) { // operation : display server statistics ManageStatus manageStatus = new ManageStatus (request, response, session); alreadyExited = true; } } if(!alreadyExited) { // authorize these methods for all admins and superadmins... if(operation.equals("users")) { // operation : users management initAdminJahiaData( request, response, session); ManageUsers manageUsers = new ManageUsers( request, response, session ); } else if(operation.equals("groups")) { // operation : groups management initAdminJahiaData( request, response, session); ManageGroups manageGroups = new ManageGroups( request, response, session ); } else if(operation.equals("pages")) { // operation : pages management initAdminJahiaData( request, response, session); ManagePages managePages = new ManagePages( request, response, session ); } else if(operation.equals("components")) { // operation : components management initAdminJahiaData( request, response, session); ManageComponents manageComponents = new ManageComponents( request, response, session ); } else if(operation.equals("templates")) { // operation : templates management initAdminJahiaData( request, response, session); ManageTemplates manageTemplates = new ManageTemplates( request, response, session, context ); } else if(operation.equals("search")) { // operation : search engine management initAdminJahiaData( request, response, session); ManageSearch manageSearch = new ManageSearch( request, response, session, context ); } else if(operation.equals("homepages")) { // operation : homepages management initAdminJahiaData( request, response, session); ManageHomepages manageHomepages = new ManageHomepages( request, response, session, context ); } else if(operation.equals("change")) { // operation : change site id to manage changeSite( request, response, session ); } else if(operation.equals("access")) { // operation : display license info ViewAccess viewAccess = new ViewAccess( request, response, session ); alreadyExited = true; // in case when an unknown operation is requested... } else { displayMenu( request, response, session ); } } // the user don't currently have a granted access... } else if(isValidLoginSession( session ) ) { displayMenu( request, response, session ); } else { displayLogin( request, response, session ); } } } catch (Throwable t) { JahiaConsole.printe("JahiaAdministration.userRequestDispatcher", t); if(request.getAttribute(JahiaConfigurationWizard.CLASS_NAME + ".directAdministration") != null) { processLogin( request, response, session, (String) request.getAttribute(JahiaConfigurationWizard.CLASS_NAME + ".rootName"), (String) request.getAttribute(JahiaConfigurationWizard.CLASS_NAME + ".rootPass") ); } else if(isValidLoginSession( session ) ) { displayMenu( request, response, session ); } else { displayLogin( request, response, session ); } } } // end userRequestDispatcher //------------------------------------------------------------------------- /** * Forward servlet request and servlet response objects, using the request * dispatcher contained in the context. Please be careful: use only context * relative path. * @author Alexandre Kraft * * @param request Servlet request. * @param response Servlet response. * @param destination Context relative path where you want to go. */ public synchronized static void doRedirect( HttpServletRequest request, HttpServletResponse response, HttpSession session, String destination ) throws IOException, ServletException { try { if(session.getAttribute(CLASS_NAME + "jahiaDisplayMessage") == null) { request.setAttribute("jahiaDisplayMessage", Jahia.COPYRIGHT); } else { request.setAttribute("jahiaDisplayMessage", (String) session.getAttribute(CLASS_NAME + "jahiaDisplayMessage") ); } session.setAttribute(CLASS_NAME + "jahiaDisplayMessage", Jahia.COPYRIGHT); request.setAttribute("URL", JahiaAdministration.installerURL); request.setAttribute("requestURI", request.getRequestURI()); if ( request.getAttribute("title")== null ){ request.setAttribute("title","no title"); } // response no-cache headers... response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); config.getServletContext().getRequestDispatcher( destination ).forward( request, response ); } catch (ServletException se) { StringWriter strWriter = new StringWriter(); PrintWriter ptrWriter = new PrintWriter(strWriter); JahiaConsole.printe("JahiaAdministration.doRedirect", se); ptrWriter.println("Exception in doRedirect"); se.printStackTrace(ptrWriter); Throwable t = se.getRootCause(); if (t != null) { ptrWriter.println("Root cause Exception"); t.printStackTrace(ptrWriter); } JahiaConsole.println("JahiaAdministration", strWriter.toString()); } } // end doRedirect //------------------------------------------------------------------------- /** * Display the login page, using doRedirect(). * @author Alexandre Kraft * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ private void displayLogin( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException { // retrieve previous form values... String jahiaLoginUsername = (String) request.getAttribute(CLASS_NAME + "jahiaLoginUsername"); // set default values (if necessary)... if(jahiaLoginUsername == null) { jahiaLoginUsername = ""; } // set request attributes... request.setAttribute("jahiaLoginUsername", jahiaLoginUsername); doRedirect( request, response, session, JSP_PATH + "login.jsp" ); } // end displayLogin //------------------------------------------------------------------------- /** * Process and check validity of inputs from the login page. * @author Alexandre Kraft * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. * @param rootName String containing root username fo bypass login. * @param rootPass String containing root password fo bypass login. */ private void processLogin( HttpServletRequest request, HttpServletResponse response, HttpSession session, String rootName, String rootPass ) throws IOException, ServletException { JahiaConsole.println("JahiaAdministration", "processLogin started"); boolean loginError = true; String jahiaLoginUsername; String jahiaLoginPassword; JahiaUser theUser = null; JahiaGroup theGroup = null; // get form values... if((rootName == null) && (rootPass == null)) { jahiaLoginUsername = (String) request.getParameter("login_username").trim(); jahiaLoginPassword = (String) request.getParameter("login_password").trim(); } else { jahiaLoginUsername = rootName; jahiaLoginPassword = rootPass; } // get references to user manager and group manager...
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -