package org.cloudfoundry.identity.uaa.login; import org.springframework.security.web.authentication.WebAuthenticationDetails; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.Serializable; public class SavedRequestAwareAuthenticationDetails extends WebAuthenticationDetails implements Serializable { private static final long serialVersionUID = 3801124242820219132L; private Object savedRequest; public SavedRequestAwareAuthenticationDetails(HttpServletRequest request) { super(request); HttpSession session = request.getSession(false); if (session != null) { savedRequest = session.getAttribute("SPRING_SECURITY_SAVED_REQUEST"); } } public Object getSavedRequest() { return savedRequest; } public void setSavedRequest(Object savedRequest) { this.savedRequest = savedRequest; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof SavedRequestAwareAuthenticationDetails)) return false; if (!super.equals(o)) return false; SavedRequestAwareAuthenticationDetails that = (SavedRequestAwareAuthenticationDetails) o; if (savedRequest != null ? !savedRequest.equals(that.savedRequest) : that.savedRequest != null) return false; return true; } @Override public int hashCode() { int result = super.hashCode(); result = 31 * result + (savedRequest != null ? savedRequest.hashCode() : 0); return result; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(super.toString()).append(": "); sb.append("SavedRequest: ").append(this.getSavedRequest()); return sb.toString(); } }