/activeobjects-plugin/src/main/java/com/atlassian/plugin/web/springmvc/interceptor/WebSudoAuthorisationInterceptor.java

https://bitbucket.org/activeobjects/ao-plugin · Java · 29 lines · 21 code · 5 blank · 3 comment · 0 complexity · 8c24d5fc816c0b63f36c917e584f609b MD5 · raw file

  1. package com.atlassian.plugin.web.springmvc.interceptor;
  2. import com.atlassian.sal.api.websudo.WebSudoManager;
  3. import com.atlassian.sal.api.websudo.WebSudoSessionException;
  4. import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. /**
  8. * Requires a WebSudo session to access admin pages.
  9. */
  10. public final class WebSudoAuthorisationInterceptor extends HandlerInterceptorAdapter {
  11. private WebSudoManager webSudoManager;
  12. public WebSudoAuthorisationInterceptor(WebSudoManager webSudoManager) {
  13. this.webSudoManager = webSudoManager;
  14. }
  15. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
  16. try {
  17. webSudoManager.willExecuteWebSudoRequest(request);
  18. return true;
  19. } catch (WebSudoSessionException wes) {
  20. webSudoManager.enforceWebSudoProtection(request, response);
  21. return false;
  22. }
  23. }
  24. }