Register
Submit a solution
The challenge is finished.

Challenge Overview

Project Overview

TopCoder is implementing a Web-based Arena by using Web Socket protocol, AngularJS Framework (http://angularjs.orghttp://docs.angularjs.org/guide) and Bootstrap 3 (http://getbootstrap.com/getting-started).

The frontend application is using AngularJS Framework (http://angularjs.orghttp://docs.angularjs.org/guide) and Bootstrap 3 (http://getbootstrap.com/getting-started), and using web socket protocol to exchange data with backend web socket listener.

The backend web socket listener is ready for exchanging messages over web socket protocol.

Competition Task Overview

For the previously implementation of SSO Login, it has the following problems:

  1. It directly talking to database, which we are using LDAP instead.
  2. It didn't properly setup user based on the roles.

For this contest, we'd like to make update for the old logic to fix the above problems.

Following are the suggested changes.

Authenticator interface and its implementations

Please remove the authenticateUser(DBServices s_dbServices,String sso) method, the login for SSO will leverage authenticateUser(DBServices s_dbServices, String username, String password, String newHandle) method.

DBServices interface and DBServicesBean

authenticateUserSSO is wrongly implemented to authenticate user against database, but the user role can not be properly set then.

So we'd like to rename the method name like validateSSOToken(String sso), and it will return the username (userId) and password, so we can do against LDAP.

CoreServices Update

For authenticateUser(String sso) method, it will get the username and password from DBServices, and then call authenticateUser(String username, String password, String newHandle) for authentication.

SSOLogin Functionality Verification

Please setup the web arena to make sure the SSO login is still working properly.

How to Setup

Please check https://github.com/cloudspokes/app/wiki/TopCoder-Competition-Engine---Build-and-Run to setup the services and https://github.com/cloudspokes/arena-web to setup the web arena for testing.

Local Setup

If you want to have a better way for debugging the problems, you can setup your own local environment, please check https://github.com/cloudspokes/app/wiki/TopCoder-Competition-Engine-Setup-on-CentOS-6.x-x64

Winner Responsibility

Winner will be responsible to create a pull request in final fix phase for merging.

About Code Base

For the code under /home/apps/dev directory, some are hosted in internal svn repositories, some are hosted in private repositories in github.

You can check Source Code Management For TopCoder Competition Engine - TopCoder Wiki

For SVN Access, please send request to support@topcoder.com, For github access, please post your github account in forum to ask PM to grant you access.

Arena VM

Before asking your own VM, you need to have a public key on your profile before asking for the VM.

You can find more details on how to generate a key http://apps.topcoder.com/wiki/display/projects/Generate+SSH+Key and how to connect using it http://apps.topcoder.com/wiki/display/projects/Connect+Using+SSH+Key.

To use the Arena VM, please follow http://apps.topcoder.com/wiki/display/docs/Competition+Engine+VM+Setup



Final Submission Guidelines

Submission Deliverables

Below is an overview of the deliverables:

  • Code Changes for the solution, please include the svn revision and git commit hash
  • A complete and detailed deployment document explaining how to deploy the application including configuration information.

Final Submission

For each member, the final submission should be uploaded to the Online Review Tool.

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30042733