November 29, 2012

Open Source Projects at 3Pillar: SocialAuth Product Accelerator for Android and .NET

At 3Pillar, we encourage employees in our Competency Centers to work on open source projects for commonly-used enterprise technologies like Java, .NET, and Android. The resulting Intellectual Property (IP) becomes either code that we embed in projects to speed up development cycles or processes that facilitate and enhance proudct development.

SocialAuth, a Java library that provides OAuth authentication via services like Gmail, Twitter, Facebook, LinkedIn, Foursquare, Salesforce, and many others, exemplifies embedded IP. OAuth is an authorization framework that allows third-party applications to obtain limited access to an HTTP service. In layman’s terms, it allows an application like a website or mobile app to grant access to a user with their Twitter or Gmail log-in credentials.

The idea behind SocialAuth was to create a Java library that can be used by developers working on .NET or Android applications to connect with and post to any number of social sites. SocialAuth features an easy-to-use API that can be called to log in to the services listed above, retrieve a user’s profile and contacts, and post updates in those services directly within an application.

SocialAuth was hatched by a number of 3Pillar team members working out of our Noida, India office and has been downloaded more than 10,000 times. The library provides Spring MVC, Struts, and Seam support. In addition to .NET, Java, and Android, versions are also available for Sharepoint and WordPress.

There are a number of libraries in existence that implement OpenID and OAuth, so why did we create another one? 3Pillar saw an opportunity to optimize the workflow that operates on the web services layer. Sometimes in software development, the journey is the reward. SocialAuth also adds value for end users, who can log in to applications using pre-existing credentials instead of creating new ones, and application developers, who can save time by using a single API integration for multiple services.