security-basicauth

Run
How to run the sample
The source code for this sample can be found in the javaee7-samples GitHub repository. The first thing we need to do is to get the source by downloading the repository and then go into the samples folder:
git clone git://github.com/javaee-samples/javaee7-samples.git
cd javaee7-samples/servlet/security-basicauth/
Now we are ready to start testing. You can run all the tests in this sample by executing:
mvn test
Or you can run individual tests by executing one of the following:
mvn test -Dtest=SecureServletTest

SecureServletTest

Missing a description for the story. Add some javadoc to the TestClass. Show me how!
Missing a description for the deployment. Add some javadoc to the @Deployment method. Show me how!
@Deployment(testable = false)
public static WebArchive createDeployment() {
    WebArchive war = ShrinkWrap.create(WebArchive.class).
            addClass(SecureServlet.class).
            addAsWebInfResource((new File(WEBAPP_SRC + "/WEB-INF", "web.xml")));
    return war;
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void testGetWithCorrectCredentials() throws Exception {
    webClient.setCredentialsProvider(correctCreds);
    TextPage page = webClient.getPage(base + "/SecureServlet");
    assertEquals("my GET", page.getContent());
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void testGetWithIncorrectCredentials() throws Exception {
    webClient.setCredentialsProvider(incorrectCreds);
    try {
        webClient.getPage(base + "/SecureServlet");
    } catch(FailingHttpStatusCodeException e) {
        assertNotNull(e);
        assertEquals(401, e.getStatusCode());
        return;
    }
    fail("/SecureServlet could be accessed without proper security credentials");
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void testPostWithCorrectCredentials() throws Exception {
    webClient.setCredentialsProvider(correctCreds);
    WebRequest request = new WebRequest(new URL(base + "/SecureServlet"), HttpMethod.POST);
    TextPage page = webClient.getPage(request);
    assertEquals("my POST", page.getContent());
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void testPostWithIncorrectCredentials() throws Exception {
    webClient.setCredentialsProvider(incorrectCreds);
    WebRequest request = new WebRequest(new URL(base + "/SecureServlet"), HttpMethod.POST);
    try {
        webClient.getPage(request);
    } catch(FailingHttpStatusCodeException e) {
        assertNotNull(e);
        assertEquals(401, e.getStatusCode());
        return;
    }
    fail("/SecureServlet could be accessed without proper security credentials");
}

Share the Knowledge

Find this sample useful? Share on

There's a lot more about JavaEE to cover. If you're ready to learn more, check out the other available samples.

Help Improve

Find a bug in the sample? Something missing? You can fix it by editing the source, making the correction and sending a pull request. Or report the problem to the issue tracker

Recent Changelog

  • Jul 15, 2014: Removed header license. the licensing is now referenced in the license file in the root of the project by Roberto Cortez
  • Dec 14, 2013: Cleaned up tests, added post with correct/incorrect credentials by arun-gupta
  • Dec 14, 2013: Naming the method appropriately by arun-gupta
  • Dec 13, 2013: Removing a redundant variable by arun-gupta
  • Dec 13, 2013: Using htmlunit instead of httpunit by arun-gupta
  • Dec 12, 2013: Improved the test by arun-gupta
  • Dec 12, 2013: Cleaned up imports by arun-gupta
  • Dec 11, 2013: Changing the project names to be more intuitive by arun-gupta
How to help improve this sample
The source code for this sample can be found in the javaee7-samples GitHub repository. The first thing you need to do is to get the source by downloading the repository and then go into the samples folder:
git clone git://github.com/javaee-samples/javaee7-samples.git
cd javaee7-samples/servlet/security-basicauth/

Do the changes as you see fit and send a pull request!

Good Luck!