1 package com.sslexplorer.ajax; 2 3 import javax.servlet.http.HttpServletRequest ; 4 import javax.servlet.http.HttpServletResponse ; 5 6 import org.ajaxtags.helpers.AjaxXmlBuilder; 7 import org.apache.struts.action.ActionForm; 8 import org.apache.struts.action.ActionMapping; 9 10 import com.sslexplorer.boot.ContextHolder; 11 import com.sslexplorer.boot.Util; 12 import com.sslexplorer.core.UserDatabaseManager; 13 import com.sslexplorer.install.forms.SelectUserDatabaseForm; 14 import com.sslexplorer.security.Constants; 15 import com.sslexplorer.security.LogonControllerFactory; 16 import com.sslexplorer.security.SessionInfo; 17 import com.sslexplorer.security.User; 18 import com.sslexplorer.security.UserDatabase; 19 import com.sslexplorer.wizard.AbstractWizardSequence; 20 21 33 34 public class ListAccountsAction extends AbstractAjaxXMLAction { 35 36 45 protected void onAjaxRequest(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, 46 AjaxXmlBuilder builder) throws Exception { 47 48 49 UserDatabase udb; 50 if(ContextHolder.getContext().isSetupMode()) { 51 AbstractWizardSequence seq = (AbstractWizardSequence)request.getSession().getAttribute(Constants.WIZARD_SEQUENCE); 52 if(seq == null) { 53 log.error("No wizard sequence, cannot list users."); 54 return; 55 } 56 udb = (UserDatabase)seq.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE_INSTANCE, null); 57 if(udb == null) { 58 log.error("No user database, cannot list users."); 59 return; 60 } 61 } 62 else { 63 SessionInfo sessionInfo = 64 LogonControllerFactory.getInstance().getSessionInfo(request); 65 if(sessionInfo == null) { 66 throw new Exception ("No authenticated."); 67 } 68 udb = UserDatabaseManager.getInstance().getUserDatabase(LogonControllerFactory.getInstance().getUser(request).getRealm()); 69 } 70 String account = request.getParameter("account"); 71 String maxRows = request.getParameter("maxRows"); 72 int rows = Integer.parseInt(maxRows == null ? "10" : maxRows); 73 String filter = ( account == null ? "" : Util.urlDecode(account) ) + "*"; 74 User[] users = udb.listAllUsers(filter); 75 for(int i = 0 ; i < users.length && i < rows; i++) { 76 String s = Util.encodeHTML(users[i].getPrincipalName()); 77 builder.addItem(s, s); 78 } 79 } 80 81 89 public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 90 return SessionInfo.MANAGEMENT_CONSOLE_CONTEXT | SessionInfo.SETUP_CONSOLE_CONTEXT; 91 } 92 93 } 94 | Popular Tags |