Java Code Examples for org.apache.catalina.connector.Response#setHeader()
The following examples show how to use
org.apache.catalina.connector.Response#setHeader() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: WebappAuthenticationValve.java From carbon-device-mgt with Apache License 2.0 | 6 votes |
private void processRequest(Request request, Response response, CompositeValve compositeValve, AuthenticationInfo authenticationInfo) { switch (authenticationInfo.getStatus()) { case SUCCESS: case CONTINUE: this.getNext().invoke(request, response, compositeValve); break; case FAILURE: String msg = "Failed to authorize incoming request"; if (authenticationInfo.getMessage() != null && !authenticationInfo.getMessage().isEmpty()) { msg = authenticationInfo.getMessage(); response.setHeader("WWW-Authenticate", "Basic"); } if (log.isDebugEnabled()) { log.debug(msg + " , API : " + Encode.forUriComponent(request.getRequestURI())); } AuthenticationFrameworkUtil.handleResponse(request, response, HttpServletResponse.SC_UNAUTHORIZED, msg); break; } }
Example 2
Source File: LetsEncryptValve.java From openwebbeans-meecrowave with Apache License 2.0 | 5 votes |
@Override public void invoke(final Request request, final Response response) throws IOException, ServletException { if (request.getRequestURI().equals(current.endpoint)) { response.setHeader("Content-Type", "text/plain"); response.getWriter().write(current.challenge); return; } getNext().invoke(request, response); }
Example 3
Source File: LoadBalancerDrainingValve.java From Tomcat8-Source-Read with MIT License | 4 votes |
@Override public void invoke(Request request, Response response) throws IOException, ServletException { if ("DIS".equals(request.getAttribute(ATTRIBUTE_KEY_JK_LB_ACTIVATION)) && !request.isRequestedSessionIdValid()) { if (containerLog.isDebugEnabled()) { containerLog.debug("Load-balancer is in DISABLED state; draining this node"); } boolean ignoreRebalance = false; Cookie sessionCookie = null; final Cookie[] cookies = request.getCookies(); final String sessionCookieName = SessionConfig.getSessionCookieName(request.getContext()); if (null != cookies) { for (Cookie cookie : cookies) { final String cookieName = cookie.getName(); if (containerLog.isTraceEnabled()) { containerLog.trace("Checking cookie " + cookieName + "=" + cookie.getValue()); } if (sessionCookieName.equals(cookieName) && request.getRequestedSessionId().equals(cookie.getValue())) { sessionCookie = cookie; } else if (null != _ignoreCookieName && _ignoreCookieName.equals(cookieName) && null != _ignoreCookieValue && _ignoreCookieValue.equals(cookie.getValue())) { // The client presenting a valid ignore-cookie value? ignoreRebalance = true; } } } if (ignoreRebalance) { if (containerLog.isDebugEnabled()) { containerLog.debug("Client is presenting a valid " + _ignoreCookieName + " cookie, re-balancing is being skipped"); } getNext().invoke(request, response); return; } // Kill any session cookie that was found // TODO: Consider implications of SSO cookies if (null != sessionCookie) { sessionCookie.setPath(SessionConfig.getSessionCookiePath(request.getContext())); sessionCookie.setMaxAge(0); // Delete sessionCookie.setValue(""); // Purge the cookie's value response.addCookie(sessionCookie); } // Re-write the URI if it contains a ;jsessionid parameter String uri = request.getRequestURI(); String sessionURIParamName = SessionConfig.getSessionUriParamName(request.getContext()); if (uri.contains(";" + sessionURIParamName + "=")) { uri = uri.replaceFirst(";" + sessionURIParamName + "=[^&?]*", ""); } String queryString = request.getQueryString(); if (null != queryString) { uri = uri + "?" + queryString; } // NOTE: Do not call response.encodeRedirectURL or the bad // sessionid will be restored response.setHeader("Location", uri); response.setStatus(_redirectStatusCode); } else { getNext().invoke(request, response); } }
Example 4
Source File: TestLoadBalancerDrainingValve.java From Tomcat8-Source-Read with MIT License | 4 votes |
private void runValve(String jkActivation, boolean validSessionId, boolean expectInvokeNext, boolean enableIgnore, String queryString) throws Exception { IMocksControl control = EasyMock.createControl(); ServletContext servletContext = control.createMock(ServletContext.class); Context ctx = control.createMock(Context.class); Request request = control.createMock(Request.class); Response response = control.createMock(Response.class); String sessionCookieName = "JSESSIONID"; String sessionId = "cafebabe"; String requestURI = "/test/path"; SessionCookieConfig cookieConfig = new CookieConfig(); cookieConfig.setDomain("example.com"); cookieConfig.setName(sessionCookieName); cookieConfig.setPath("/"); // Valve.init requires all of this stuff EasyMock.expect(ctx.getMBeanKeyProperties()).andStubReturn(""); EasyMock.expect(ctx.getName()).andStubReturn(""); EasyMock.expect(ctx.getPipeline()).andStubReturn(new StandardPipeline()); EasyMock.expect(ctx.getDomain()).andStubReturn("foo"); EasyMock.expect(ctx.getLogger()).andStubReturn(org.apache.juli.logging.LogFactory.getLog(LoadBalancerDrainingValve.class)); EasyMock.expect(ctx.getServletContext()).andStubReturn(servletContext); // Set up the actual test EasyMock.expect(request.getAttribute(LoadBalancerDrainingValve.ATTRIBUTE_KEY_JK_LB_ACTIVATION)).andStubReturn(jkActivation); EasyMock.expect(Boolean.valueOf(request.isRequestedSessionIdValid())).andStubReturn(Boolean.valueOf(validSessionId)); ArrayList<Cookie> cookies = new ArrayList<>(); if(enableIgnore) { cookies.add(new Cookie("ignore", "true")); } if(!validSessionId) { MyCookie cookie = new MyCookie(cookieConfig.getName(), sessionId); cookie.setPath(cookieConfig.getPath()); cookie.setValue(sessionId); cookies.add(cookie); EasyMock.expect(request.getRequestedSessionId()).andStubReturn(sessionId); EasyMock.expect(request.getRequestURI()).andStubReturn(requestURI); EasyMock.expect(request.getCookies()).andStubReturn(cookies.toArray(new Cookie[cookies.size()])); EasyMock.expect(request.getContext()).andStubReturn(ctx); EasyMock.expect(ctx.getSessionCookieName()).andStubReturn(sessionCookieName); EasyMock.expect(servletContext.getSessionCookieConfig()).andStubReturn(cookieConfig); EasyMock.expect(request.getQueryString()).andStubReturn(queryString); EasyMock.expect(ctx.getSessionCookiePath()).andStubReturn("/"); if (!enableIgnore) { EasyMock.expect(Boolean.valueOf(ctx.getSessionCookiePathUsesTrailingSlash())).andStubReturn(Boolean.TRUE); EasyMock.expect(request.getQueryString()).andStubReturn(queryString); // Response will have cookie deleted MyCookie expectedCookie = new MyCookie(cookieConfig.getName(), ""); expectedCookie.setPath(cookieConfig.getPath()); expectedCookie.setMaxAge(0); // These two lines just mean EasyMock.expect(response.addCookie) but for a void method response.addCookie(expectedCookie); EasyMock.expect(ctx.getSessionCookieName()).andReturn(sessionCookieName); // Indirect call String expectedRequestURI = requestURI; if(null != queryString) expectedRequestURI = expectedRequestURI + '?' + queryString; response.setHeader("Location", expectedRequestURI); response.setStatus(307); } } Valve next = control.createMock(Valve.class); if(expectInvokeNext) { // Expect the "next" Valve to fire // Next 2 lines are basically EasyMock.expect(next.invoke(req,res)) but for a void method next.invoke(request, response); EasyMock.expectLastCall(); } // Get set to actually test control.replay(); LoadBalancerDrainingValve valve = new LoadBalancerDrainingValve(); valve.setContainer(ctx); valve.init(); valve.setNext(next); valve.setIgnoreCookieName("ignore"); valve.setIgnoreCookieValue("true"); valve.invoke(request, response); control.verify(); }