Search in sources :

Example 1 with WebScriptServletResponse

use of org.springframework.extensions.webscripts.servlet.WebScriptServletResponse in project alfresco-remote-api by Alfresco.

the class BlockingRemoteUserMapper method prepareMockResponse.

private WebScriptServletResponse prepareMockResponse() {
    HttpServletResponse mockHttpResponse = mock(HttpServletResponse.class);
    WebScriptServletResponse mockResponse = mock(WebScriptServletResponse.class);
    when(mockResponse.getHttpServletResponse()).thenReturn(mockHttpResponse);
    doAnswer(new Answer() {

        public Object answer(InvocationOnMock invocation) {
            Object[] args = invocation.getArguments();
            if (args != null && args.length == 1) {
                setStatusCode = -1;
                try {
                    setStatusCode = (int) args[0];
                } catch (Exception e) {
                    logger.error("Could not get the status code: " + e.getMessage(), e);
                }
            }
            return null;
        }
    }).when(mockHttpResponse).setStatus(anyInt());
    return mockResponse;
}
Also used : Answer(org.mockito.stubbing.Answer) Mockito.doAnswer(org.mockito.Mockito.doAnswer) InvocationOnMock(org.mockito.invocation.InvocationOnMock) HttpServletResponse(javax.servlet.http.HttpServletResponse) WebScriptServletResponse(org.springframework.extensions.webscripts.servlet.WebScriptServletResponse)

Example 2 with WebScriptServletResponse

use of org.springframework.extensions.webscripts.servlet.WebScriptServletResponse in project alfresco-remote-api by Alfresco.

the class RemoteAuthenticatorFactoryTest method testLogInWithNonExistingPerson.

@Test
public void testLogInWithNonExistingPerson() {
    // Random non existing person
    final String username = GUID.generate();
    // Mock a request with a username in the header
    HttpServletRequest mockHttpRequest = mock(HttpServletRequest.class);
    when(mockHttpRequest.getHeader("X-Alfresco-Remote-User")).thenReturn(username);
    when(mockHttpRequest.getScheme()).thenReturn("http");
    WebScriptServletRequest mockRequest = mock(WebScriptServletRequest.class);
    when(mockRequest.getHttpServletRequest()).thenReturn(mockHttpRequest);
    HttpServletResponse mockHttpResponse = mock(HttpServletResponse.class);
    WebScriptServletResponse mockResponse = mock(WebScriptServletResponse.class);
    when(mockResponse.getHttpServletResponse()).thenReturn(mockHttpResponse);
    Authenticator authenticator = remoteUserAuthenticatorFactory.create(mockRequest, mockResponse);
    assertTrue("The non existing user should be authenticated.", authenticator.authenticate(RequiredAuthentication.user, false));
    assertTrue("The user should be auto created.", personService.personExists(username));
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) HttpServletResponse(javax.servlet.http.HttpServletResponse) WebScriptServletResponse(org.springframework.extensions.webscripts.servlet.WebScriptServletResponse) WebScriptServletRequest(org.springframework.extensions.webscripts.servlet.WebScriptServletRequest) Authenticator(org.springframework.extensions.webscripts.Authenticator) Test(org.junit.Test)

Example 3 with WebScriptServletResponse

use of org.springframework.extensions.webscripts.servlet.WebScriptServletResponse in project alfresco-remote-api by Alfresco.

the class ResponseWriter method setContentInfoOnResponse.

/**
 * Sets the response headers with any information we know about the content
 *
 * @param res         WebScriptResponse
 * @param contentInfo Content Information
 */
default void setContentInfoOnResponse(WebScriptResponse res, ContentInfo contentInfo) {
    if (contentInfo != null) {
        // Set content info on the response
        res.setContentType(contentInfo.getMimeType());
        res.setContentEncoding(contentInfo.getEncoding());
        if (res instanceof WrappingWebScriptResponse) {
            WrappingWebScriptResponse wrappedRes = ((WrappingWebScriptResponse) res);
            res = wrappedRes.getNext();
        }
        if (res instanceof WebScriptServletResponse) {
            WebScriptServletResponse servletResponse = (WebScriptServletResponse) res;
            if (contentInfo.getLength() > 0) {
                if (contentInfo.getLength() > 0 && contentInfo.getLength() < Integer.MAX_VALUE) {
                    servletResponse.getHttpServletResponse().setContentLength((int) contentInfo.getLength());
                }
            }
            if (contentInfo.getLocale() != null) {
                servletResponse.getHttpServletResponse().setLocale(contentInfo.getLocale());
            }
        }
    }
}
Also used : WebScriptServletResponse(org.springframework.extensions.webscripts.servlet.WebScriptServletResponse)

Example 4 with WebScriptServletResponse

use of org.springframework.extensions.webscripts.servlet.WebScriptServletResponse in project alfresco-remote-api by Alfresco.

the class RemoteAuthenticatorFactoryTest method testDisabledUser.

@Test
public void testDisabledUser() throws Exception {
    final String username = transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<String>() {

        @Override
        public String execute() throws Throwable {
            return AuthenticationUtil.runAs(new RunAsWork<String>() {

                @Override
                public String doWork() throws Exception {
                    return createPerson(false);
                }
            }, AuthenticationUtil.SYSTEM_USER_NAME);
        }
    }, false, true);
    transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>() {

        @Override
        public Void execute() throws Throwable {
            return AuthenticationUtil.runAs(new RunAsWork<Void>() {

                @Override
                public Void doWork() throws Exception {
                    // Mock a request with a username in the header
                    HttpServletRequest mockHttpRequest = mock(HttpServletRequest.class);
                    when(mockHttpRequest.getHeader("X-Alfresco-Remote-User")).thenReturn(username);
                    when(mockHttpRequest.getScheme()).thenReturn("http");
                    WebScriptServletRequest mockRequest = mock(WebScriptServletRequest.class);
                    when(mockRequest.getHttpServletRequest()).thenReturn(mockHttpRequest);
                    HttpServletResponse mockHttpResponse = mock(HttpServletResponse.class);
                    WebScriptServletResponse mockResponse = mock(WebScriptServletResponse.class);
                    when(mockResponse.getHttpServletResponse()).thenReturn(mockHttpResponse);
                    Authenticator authenticator = remoteUserAuthenticatorFactory.create(mockRequest, mockResponse);
                    assertFalse(authenticator.authenticate(RequiredAuthentication.user, false));
                    return null;
                }
            }, AuthenticationUtil.SYSTEM_USER_NAME);
        }
    }, false, true);
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) RunAsWork(org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork) HttpServletResponse(javax.servlet.http.HttpServletResponse) WebScriptServletResponse(org.springframework.extensions.webscripts.servlet.WebScriptServletResponse) WebScriptServletRequest(org.springframework.extensions.webscripts.servlet.WebScriptServletRequest) Authenticator(org.springframework.extensions.webscripts.Authenticator) Test(org.junit.Test)

Example 5 with WebScriptServletResponse

use of org.springframework.extensions.webscripts.servlet.WebScriptServletResponse in project alfresco-remote-api by Alfresco.

the class RemoteAuthenticatorFactoryTest method testEnabledUser.

@Test
public void testEnabledUser() throws Exception {
    final String username = transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<String>() {

        @Override
        public String execute() throws Throwable {
            return AuthenticationUtil.runAs(new RunAsWork<String>() {

                @Override
                public String doWork() throws Exception {
                    return createPerson(true);
                }
            }, AuthenticationUtil.SYSTEM_USER_NAME);
        }
    }, false, true);
    // Mock a request with a username in the header
    HttpServletRequest mockHttpRequest = mock(HttpServletRequest.class);
    when(mockHttpRequest.getHeader("X-Alfresco-Remote-User")).thenReturn(username);
    when(mockHttpRequest.getScheme()).thenReturn("http");
    WebScriptServletRequest mockRequest = mock(WebScriptServletRequest.class);
    when(mockRequest.getHttpServletRequest()).thenReturn(mockHttpRequest);
    HttpServletResponse mockHttpResponse = mock(HttpServletResponse.class);
    WebScriptServletResponse mockResponse = mock(WebScriptServletResponse.class);
    when(mockResponse.getHttpServletResponse()).thenReturn(mockHttpResponse);
    Authenticator authenticator = remoteUserAuthenticatorFactory.create(mockRequest, mockResponse);
    assertTrue(authenticator.authenticate(RequiredAuthentication.user, false));
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) RunAsWork(org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork) HttpServletResponse(javax.servlet.http.HttpServletResponse) WebScriptServletResponse(org.springframework.extensions.webscripts.servlet.WebScriptServletResponse) WebScriptServletRequest(org.springframework.extensions.webscripts.servlet.WebScriptServletRequest) Authenticator(org.springframework.extensions.webscripts.Authenticator) Test(org.junit.Test)

Aggregations

WebScriptServletResponse (org.springframework.extensions.webscripts.servlet.WebScriptServletResponse)8 Authenticator (org.springframework.extensions.webscripts.Authenticator)6 WebScriptServletRequest (org.springframework.extensions.webscripts.servlet.WebScriptServletRequest)6 HttpServletRequest (javax.servlet.http.HttpServletRequest)4 HttpServletResponse (javax.servlet.http.HttpServletResponse)4 Test (org.junit.Test)3 RunAsWork (org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork)2 DefaultRemoteUserMapper (org.alfresco.repo.security.authentication.external.DefaultRemoteUserMapper)1 Mockito.doAnswer (org.mockito.Mockito.doAnswer)1 InvocationOnMock (org.mockito.invocation.InvocationOnMock)1 Answer (org.mockito.stubbing.Answer)1 Description (org.springframework.extensions.webscripts.Description)1 Match (org.springframework.extensions.webscripts.Match)1 WebScript (org.springframework.extensions.webscripts.WebScript)1