Example usage for org.apache.shiro.web.servlet Cookie saveTo

List of usage examples for org.apache.shiro.web.servlet Cookie saveTo

Introduction

In this page you can find the example usage for org.apache.shiro.web.servlet Cookie saveTo.

Prototype

void saveTo(HttpServletRequest request, HttpServletResponse response);

Source Link

Usage

From source file:com.fengduo.spark.commons.shiro.session.SessionManager.java

License:Open Source License

@Override
protected Serializable getSessionId(ServletRequest request, ServletResponse response) {
    // ??__sid??sid? http://localhost/project?__sid=xxx&__cookie=true
    String sid = request.getParameter("__sid");
    if (StringUtils.isNotBlank(sid)) {
        // ?sid?cookie???
        if (WebUtils.isTrue(request, "__cookie")) {
            HttpServletRequest rq = (HttpServletRequest) request;
            HttpServletResponse rs = (HttpServletResponse) response;
            Cookie template = getSessionIdCookie();
            Cookie cookie = new SimpleCookie(template);
            cookie.setValue(sid);/*  w  w  w  .  j  a v a  2s  . c o  m*/
            cookie.saveTo(rq, rs);
        }
        // ?session?
        request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID_SOURCE,
                ShiroHttpServletRequest.URL_SESSION_ID_SOURCE); // session??url
        request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID, sid);
        request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID_IS_VALID, Boolean.TRUE);
        return sid;
    } else {
        return super.getSessionId(request, response);
    }
}

From source file:org.sonatype.nexus.security.StatelessAndStatefulWebSessionManager.java

License:Open Source License

private void storeSessionId(Serializable currentId, HttpServletRequest request, HttpServletResponse response) {
    if (currentId == null) {
        String msg = "sessionId cannot be null when persisting for subsequent requests.";
        throw new IllegalArgumentException(msg);
    }//from w w  w.  j a v a 2s.  c  o  m
    Cookie template = getSessionIdCookie();
    Cookie cookie = new SimpleCookie(template);
    String idString = currentId.toString();
    cookie.setValue(idString);
    cookie.saveTo(request, response);
    log.trace("Set session ID cookie for session with id {}", idString);
}

From source file:org.tolven.shiro.web.session.mgt.TolvenWebSessionManager.java

License:Open Source License

@Override
protected void onStart(Session session, SessionContext context) {
    super.onStart(session, context);
    HttpServletRequest request = WebUtils.getHttpRequest(context);
    HttpServletResponse response = WebUtils.getHttpResponse(context);
    //Remove cookie added by super class
    Cookie template = getSessionIdCookie();
    Cookie cookie = new SimpleCookie(template);
    cookie.removeFrom(request, response);
    /*//from   w  w  w. j a  v a 2 s.c o  m
     * Now place the secret key in a cookie by combining it with the sessionId using a
     * two way algorithm
     */
    if (logger.isDebugEnabled()) {
        logger.debug("Creating secret key cookie for cookie template name: " + template.getName());
    }
    String sessionId = session.getId().toString();
    cookie.setValue(SecretKeyThreadLocal.getExtendedSessionId(sessionId, SecretKeyThreadLocal.get()));
    cookie.saveTo(request, response);
    if (logger.isDebugEnabled()) {
        logger.debug("Saved secret key cookie to response for session: " + sessionId);
    }
}