Search in sources :

Example 31 with SlingHttpServletRequest

use of org.apache.sling.api.SlingHttpServletRequest in project sling by apache.

the class SlingMDCFilter method doFilter.

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    final SlingHttpServletRequest request = (SlingHttpServletRequest) servletRequest;
    try {
        insertIntoMDC(request);
        filterChain.doFilter(request, servletResponse);
    } finally {
        clearMDC();
    }
}
Also used : SlingHttpServletRequest(org.apache.sling.api.SlingHttpServletRequest)

Example 32 with SlingHttpServletRequest

use of org.apache.sling.api.SlingHttpServletRequest in project sling by apache.

the class ContentDispositionFilter method doFilter.

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    final SlingHttpServletRequest slingRequest = (SlingHttpServletRequest) request;
    final SlingHttpServletResponse slingResponse = (SlingHttpServletResponse) response;
    final RewriterResponse rewriterResponse = new RewriterResponse(slingRequest, slingResponse);
    chain.doFilter(request, rewriterResponse);
}
Also used : SlingHttpServletResponse(org.apache.sling.api.SlingHttpServletResponse) SlingHttpServletRequest(org.apache.sling.api.SlingHttpServletRequest)

Example 33 with SlingHttpServletRequest

use of org.apache.sling.api.SlingHttpServletRequest in project sling by apache.

the class ContentDispositionFilterTest method test_isJcrData1.

@Test
public void test_isJcrData1() throws Throwable {
    contentDispositionFilter = new ContentDispositionFilter();
    final SlingHttpServletRequest request = context.mock(SlingHttpServletRequest.class);
    final SlingHttpServletResponse response = context.mock(SlingHttpServletResponse.class);
    final Resource resource = null;
    context.checking(new Expectations() {

        {
            allowing(request).getResource();
            will(returnValue(resource));
        }
    });
    final ContentDispositionFilter.RewriterResponse rewriterResponse = contentDispositionFilter.new RewriterResponse(request, response);
    Boolean result = (Boolean) PrivateAccessor.invoke(rewriterResponse, "isJcrData", new Class[] { Resource.class }, new Object[] { resource });
    Assert.assertFalse(result);
}
Also used : SlingHttpServletResponse(org.apache.sling.api.SlingHttpServletResponse) Expectations(org.jmock.Expectations) RewriterResponse(org.apache.sling.security.impl.ContentDispositionFilter.RewriterResponse) Resource(org.apache.sling.api.resource.Resource) RewriterResponse(org.apache.sling.security.impl.ContentDispositionFilter.RewriterResponse) SlingHttpServletRequest(org.apache.sling.api.SlingHttpServletRequest) Test(org.junit.Test)

Example 34 with SlingHttpServletRequest

use of org.apache.sling.api.SlingHttpServletRequest in project sling by apache.

the class ContentDispositionFilterTest method test_doFilter19.

@Test
public void test_doFilter19() throws Throwable {
    final SlingHttpServletRequest request = context.mock(SlingHttpServletRequest.class);
    final SlingHttpServletResponse response = context.mock(SlingHttpServletResponse.class);
    final Resource resource = context.mock(Resource.class, "resource");
    final ValueMap properties = context.mock(ValueMap.class);
    callActivateWithConfiguration(new String[] { "/content/usergenerated" }, new String[] { "/content" }, true);
    final AtomicInteger counter = new AtomicInteger();
    context.checking(new Expectations() {

        {
            allowing(request).getMethod();
            will(returnValue("GET"));
            exactly(1).of(response).containsHeader("Content-Disposition");
            will(returnValue(false));
            exactly(1).of(response).containsHeader("Content-Disposition");
            will(returnValue(true));
            exactly(1).of(request).getAttribute(RewriterResponse.ATTRIBUTE_NAME);
            will(returnValue(null));
            exactly(1).of(request).getAttribute(RewriterResponse.ATTRIBUTE_NAME);
            will(returnValue("text/html"));
            allowing(request).setAttribute(RewriterResponse.ATTRIBUTE_NAME, "text/xml");
            allowing(request).setAttribute(RewriterResponse.ATTRIBUTE_NAME, "text/html");
            allowing(request).getResource();
            will(returnValue(resource));
            allowing(resource).getPath();
            will(returnValue("/content/other"));
            allowing(resource).adaptTo(ValueMap.class);
            will(returnValue(properties));
            allowing(properties).containsKey(PROP_JCR_DATA);
            will(returnValue(true));
            allowing(response).setContentType("text/html");
            allowing(response).setContentType("text/xml");
            //CONTENT DISPOSITION IS SET
            exactly(1).of(response).addHeader("Content-Disposition", "attachment");
        }
    });
    final ContentDispositionFilter.RewriterResponse rewriterResponse = contentDispositionFilter.new RewriterResponse(request, response) {

        @Override
        public void addHeader(String name, String value) {
            counter.incrementAndGet();
        }
    };
    rewriterResponse.setContentType("text/html");
    Assert.assertEquals(1, counter.intValue());
}
Also used : SlingHttpServletResponse(org.apache.sling.api.SlingHttpServletResponse) Expectations(org.jmock.Expectations) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) RewriterResponse(org.apache.sling.security.impl.ContentDispositionFilter.RewriterResponse) ValueMap(org.apache.sling.api.resource.ValueMap) Resource(org.apache.sling.api.resource.Resource) RewriterResponse(org.apache.sling.security.impl.ContentDispositionFilter.RewriterResponse) SlingHttpServletRequest(org.apache.sling.api.SlingHttpServletRequest) Test(org.junit.Test)

Example 35 with SlingHttpServletRequest

use of org.apache.sling.api.SlingHttpServletRequest in project sling by apache.

the class ContentDispositionFilterTest method test_doFilter11.

@Test
public void test_doFilter11() throws Throwable {
    final SlingHttpServletRequest request = context.mock(SlingHttpServletRequest.class);
    final SlingHttpServletResponse response = context.mock(SlingHttpServletResponse.class);
    final Resource resource = context.mock(Resource.class, "resource");
    callActivateWithConfiguration(new String[] { "/content/usergenerated/*:text/html,text/plain" }, new String[] { "" });
    context.checking(new Expectations() {

        {
            allowing(request).getMethod();
            will(returnValue("GET"));
            allowing(request).getAttribute(RewriterResponse.ATTRIBUTE_NAME);
            will(returnValue(null));
            allowing(request).setAttribute(RewriterResponse.ATTRIBUTE_NAME, "text/html");
            allowing(request).getResource();
            will(returnValue(resource));
            allowing(resource).getPath();
            will(returnValue("/libs"));
            allowing(response).setContentType("text/html");
            //CONTENT DISPOSITION MUST NOT SET
            never(response).addHeader("Content-Disposition", "attachment");
        }
    });
    ContentDispositionFilter.RewriterResponse rewriterResponse = contentDispositionFilter.new RewriterResponse(request, response);
    rewriterResponse.setContentType("text/html");
}
Also used : SlingHttpServletResponse(org.apache.sling.api.SlingHttpServletResponse) Expectations(org.jmock.Expectations) RewriterResponse(org.apache.sling.security.impl.ContentDispositionFilter.RewriterResponse) Resource(org.apache.sling.api.resource.Resource) RewriterResponse(org.apache.sling.security.impl.ContentDispositionFilter.RewriterResponse) SlingHttpServletRequest(org.apache.sling.api.SlingHttpServletRequest) Test(org.junit.Test)

Aggregations

SlingHttpServletRequest (org.apache.sling.api.SlingHttpServletRequest)98 Resource (org.apache.sling.api.resource.Resource)52 SlingHttpServletResponse (org.apache.sling.api.SlingHttpServletResponse)49 Test (org.junit.Test)48 Expectations (org.jmock.Expectations)32 RewriterResponse (org.apache.sling.security.impl.ContentDispositionFilter.RewriterResponse)31 ValueMap (org.apache.sling.api.resource.ValueMap)27 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)15 IOException (java.io.IOException)10 Bindings (javax.script.Bindings)10 SlingBindings (org.apache.sling.api.scripting.SlingBindings)9 ServletException (javax.servlet.ServletException)8 ResourceResolver (org.apache.sling.api.resource.ResourceResolver)8 AbstractPipeTest (org.apache.sling.pipes.AbstractPipeTest)8 ContainerPipeTest (org.apache.sling.pipes.ContainerPipeTest)8 PrintWriter (java.io.PrintWriter)7 Map (java.util.Map)7 SlingScriptHelper (org.apache.sling.api.scripting.SlingScriptHelper)7 MockSlingHttpServlet3Request (org.apache.sling.servlets.post.impl.helper.MockSlingHttpServlet3Request)6 HttpServletResponse (javax.servlet.http.HttpServletResponse)5