1 16 package com.blandware.atleap.webapp.action.core; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.webapp.util.core.ApplicationResources; 20 import com.blandware.atleap.webapp.util.core.SslUtil; 21 import com.blandware.atleap.webapp.util.core.TokenUtil; 22 import com.blandware.atleap.webapp.util.core.WebappConstants; 23 import org.apache.commons.logging.Log; 24 import org.apache.commons.logging.LogFactory; 25 import org.apache.struts.Globals; 26 import org.apache.struts.action.Action; 27 import org.apache.struts.action.ActionForm; 28 import org.apache.struts.action.ActionMapping; 29 import org.apache.struts.action.ActionMessages; 30 import org.springframework.context.ApplicationContext; 31 import org.springframework.web.context.support.WebApplicationContextUtils; 32 33 import javax.servlet.http.HttpServletRequest ; 34 import javax.servlet.http.HttpServletResponse ; 35 import javax.servlet.http.HttpSession ; 36 import java.util.HashMap ; 37 38 39 55 public class BaseAction extends Action { 56 57 protected transient final Log log = LogFactory.getLog(BaseAction.class); 58 private static final String SECURE = "secure"; 59 private ApplicationContext ctx = null; 60 61 67 protected Object getBean(String name) { 68 if ( ctx == null ) { 69 ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(servlet.getServletContext()); 70 } 71 return ctx.getBean(name); 72 } 73 74 80 protected ActionMessages getMessages(HttpServletRequest request) { 81 ActionMessages messages = null; 82 HttpSession session = request.getSession(); 83 84 if ( request.getAttribute(Globals.MESSAGE_KEY) != null ) { 85 messages = 86 (ActionMessages) request.getAttribute(Globals.MESSAGE_KEY); 87 saveMessages(request, messages); 88 } else if ( session.getAttribute(Globals.MESSAGE_KEY) != null ) { 89 messages = 90 (ActionMessages) session.getAttribute(Globals.MESSAGE_KEY); 91 saveMessages(request, messages); 92 session.removeAttribute(Globals.MESSAGE_KEY); 93 } else { 94 messages = new ActionMessages(); 95 } 96 return messages; 97 } 98 99 107 protected void saveErrors(HttpServletRequest request, ActionMessages errors) { 108 saveErrors(request, errors, true); 109 } 110 111 112 121 protected void saveErrors(HttpServletRequest request, ActionMessages errors, boolean saveToSession) { 122 HttpSession session = request.getSession(); 123 if ( errors == null || errors.isEmpty() ) { 124 request.removeAttribute(Globals.ERROR_KEY); 125 session.removeAttribute(WebappConstants.ERROR_KEY); 126 } else { 127 request.setAttribute(Globals.ERROR_KEY, errors); 128 if ( saveToSession ) { 129 session.setAttribute(WebappConstants.ERROR_KEY, errors); 130 } 131 } 132 } 133 134 142 protected void saveMessages(HttpServletRequest request, ActionMessages messages) { 143 HttpSession session = request.getSession(); 144 if ( messages == null || messages.isEmpty() ) { 145 request.removeAttribute(Globals.MESSAGE_KEY); 146 session.removeAttribute(WebappConstants.MESSAGE_KEY); 147 } else { 148 request.setAttribute(Globals.MESSAGE_KEY, messages); 149 session.setAttribute(WebappConstants.MESSAGE_KEY, messages); 150 } 151 } 152 153 161 protected ActionForm getActionForm(ActionMapping mapping, 162 HttpServletRequest request) { 163 ActionForm actionForm = null; 164 165 if ( mapping.getAttribute() != null ) { 167 if ( "request".equals(mapping.getScope()) ) { 168 actionForm = 169 (ActionForm) request.getAttribute(mapping.getAttribute()); 170 } else { 171 HttpSession session = request.getSession(); 172 173 actionForm = 174 (ActionForm) session.getAttribute(mapping.getAttribute()); 175 } 176 } 177 return actionForm; 178 } 179 180 186 protected HashMap getConfiguration() { 187 return (HashMap ) this.getServlet().getServletContext().getAttribute(Constants.CONFIG); 188 } 189 190 193 201 protected boolean checkSsl(ActionMapping mapping, 202 HttpServletRequest request, 203 HttpServletResponse response) { 204 String redirectString = 205 SslUtil.getRedirectString(request, 206 getServlet().getServletContext(), 207 SECURE.equals(mapping.getParameter())); 208 209 if ( redirectString != null ) { 210 log.debug("protocol switch needed, redirecting..."); 211 212 try { 213 response.sendRedirect(response.encodeRedirectURL(redirectString)); 215 216 return true; 217 } catch ( Exception e ) { 218 log.error("redirect to new protocol failed..."); 219 220 } 222 } 223 224 return false; 225 } 226 227 233 protected void removeFormBean(ActionMapping mapping, 234 HttpServletRequest request) { 235 if ( mapping.getAttribute() != null ) { 237 if ( "request".equals(mapping.getScope()) ) { 238 request.removeAttribute(mapping.getAttribute()); 239 } else { 240 HttpSession session = request.getSession(); 241 242 session.removeAttribute(mapping.getAttribute()); 243 } 244 } 245 } 246 247 254 protected void updateFormBean(ActionMapping mapping, 255 HttpServletRequest request, ActionForm form) { 256 if ( mapping.getAttribute() != null ) { 258 if ( "request".equals(mapping.getScope()) ) { 259 request.setAttribute(mapping.getAttribute(), form); 260 } else { 261 HttpSession session = request.getSession(); 262 263 session.setAttribute(mapping.getAttribute(), form); 264 } 265 } 266 } 267 268 275 protected String getMessage(HttpServletRequest request, String key) { 276 return ApplicationResources.getInstance(request.getSession().getServletContext()).getMessage(getLocale(request), key); 277 } 278 279 280 281 282 299 public synchronized boolean isTokenValid(HttpServletRequest request, boolean reset) { 300 return TokenUtil.getInstance().isTokenValid(request, reset); 301 } 302 303 319 public synchronized boolean isTokenValid(HttpServletRequest request) { 320 return TokenUtil.getInstance().isTokenValid(request); 321 } 322 323 324 342 public synchronized boolean isTokenValid(String [] scopes, HttpServletRequest request) { 343 return TokenUtil.getInstance().isTokenValid(scopes, request); 344 } 345 346 365 public synchronized boolean isTokenValid(String [] scopes, HttpServletRequest request, boolean reset) { 366 return TokenUtil.getInstance().isTokenValid(scopes, request, reset); 367 } 368 369 377 public synchronized void resetToken(String tokenScope, HttpServletRequest request) { 378 TokenUtil.getInstance().resetToken(tokenScope, request); 379 } 380 381 388 public synchronized void resetToken(HttpServletRequest request) { 389 TokenUtil.getInstance().resetToken(request); 390 } 391 392 399 public synchronized void saveToken(String tokenScope, HttpServletRequest request) { 400 TokenUtil.getInstance().saveToken(tokenScope, request); 401 } 402 403 409 public synchronized void saveToken(HttpServletRequest request) { 410 TokenUtil.getInstance().saveToken(request); 411 } 412 413 426 public boolean isBackPressed(HttpServletRequest request) { 427 return (request.getAttribute(WebappConstants.BACK_KEY) != null); 428 } 429 } 430 | Popular Tags |