Example usage for org.apache.shiro.web.util SavedRequest getMethod

List of usage examples for org.apache.shiro.web.util SavedRequest getMethod

Introduction

In this page you can find the example usage for org.apache.shiro.web.util SavedRequest getMethod.

Prototype

public String getMethod() 

Source Link

Usage

From source file:com.kelson.keeku.security.MyFormAuthenticationFilter.java

License:Apache License

@Override
protected boolean executeLogin(ServletRequest request, ServletResponse response) throws Exception {
    String username = getUsername(request);
    String password = getPassword(request);
    boolean isAjaxLogin = StringUtils.equals(WebUtils.getCleanParam(request, "ajaxLogin"), "1");
    boolean rememberMe = isRememberMe(request);
    String host = getHost(request);
    UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe, host);

    try {/*w w  w.  jav  a 2s  . c om*/
        Subject subject = getSubject(request, response);
        subject.login(token);
        Session session = subject.getSession();
        Integer userId = (Integer) session.getAttribute("userId");
        LoggerUtil.operation(Operation.Login, String.valueOf(userId) + "has logined",
                (HttpServletRequest) request);
        if (isAjaxLogin) {
            if (StringUtils.equals(WebUtils.getCleanParam(request, "needRedirect"), "1")) {//when login successfully by ajax login and redirect to backurl
                SavedRequest savedRequest = WebUtils.getAndClearSavedRequest(request);
                if (savedRequest != null
                        && savedRequest.getMethod().equalsIgnoreCase(AccessControlFilter.GET_METHOD)) {
                    request.setAttribute("backUrl", savedRequest.getRequestUrl());
                }
            }
            return true;
        } else {
            return onLoginSuccess(token, subject, request, response);
        }
    } catch (AuthenticationException e) {
        if (SecurityUtils.getSubject().getSession(false) != null) {
            SecurityUtils.getSubject().getSession(false).removeAttribute("userId");
        }
        return onLoginFailure(token, e, request, response);
    }
}