Challenge Overview

In this challenge series we’ll be developing a SSO solution that will be a reverse proxy to a target application. It will authenticate users via LDAP, then authorise logged in user to perform requested action. Authorization will use a set of rules and policies, and will set additional HTTP headers to the proxied request. Application will have a separate management interface to manage policies, rules, headers and users.

 

This challenge will implement a POC reverse proxy server. We’ll use Spring as the application framework, and will use with SpringBoot to bootstrap the application. MongoDb will be used as a database and Spring Data to access the database (not needed in this challenge). All configuration can be done using annotations (xml,JPA configurations aren’t required).

 

The proxy server should be implemented using the Netflix Zuul library.

Attached in the forums is Functional Requirements document that explains all the features and use cases the end system will have. Your POC server should demonstrate the following:

  • Proxy sample HTTP requests (see the sample request/response body in the document)

  • Implement Zuul filter to add http headers to the proxied request

  • Redirect to login page if the request doesn’t have token parameter in the body (or any other condition you may think of). Requirement here is to demonstrate that if a request shouldn’t be proxied, we can show a different page to the user (for example login page, error page, etc). This is to support use case 6.8.2 and 6.2 in the functional requirements document.

 

Your solution should include instructions for local and Heroku deployment.



Final Submission Guidelines

Submit the full source code for the app
Deployment guide (environment, configuration, build, run - local and heroku)
Postman collection for testing the server

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30058657