240 likes | 402 Views
E212 Integration of Stellent with Sybase. Abishek Bhargava Prin Sys Consult eBD abhargav@sybase.com. Customer Problem. Stellent Content Server and Sybase EP two different systems , need to access both the systems through a common interface. Key features that are required.
E N D
E212Integration of Stellent with Sybase • Abishek Bhargava • Prin Sys Consult • eBD • abhargav@sybase.com
Customer Problem • Stellent Content Server and Sybase EP two different systems , need to access both the systems through a common interface.
Key features that are required • Version Control Mechanism • Ability to Check-In and Check-Out documents. • Searching • Ability to search for a document and be able to view the revision history. • Workflow.
Technical Challenges • Convert the existing Check-In , Search , Workflow screens into portlets. • Sybase Enterprise Portal and Stellent Content Server two different systems. • Needed a single-sign-on mechanism. • Bridge the gap between the two existing Security models to access content.
Converting existing screens into Portlets • The existing screens are being generated by CGI’s deployed on iPlanet Web Server that are communicating with the Stellent Content Server. • Two approaches could be used : • Use the Screen Scraper portlet to scrape the existing content. • Create new portlets that would have a similar look-feel as the existing screens and talk directly to the Stellent Content Server by-passing the CGI and Security layer at the Web Server level.
Converting existing screens into Portlets • The URL’s were identified that would generate the Check-In , Search , Workflow screens. • The URL’s are as follows : • Search : • http://<stellent-web-server>/intradoc-cgi/nph-idc_cgi.exe?IdcService=GET_DOC_PAGE&Action=GetTemplatePage&Page=STANDARD_QUERY_PAGE&coreContentOnly=1
Converting existing screens into Portlets • Check-In : • http://<stellent-web-server>/intradoc-cgi/nph-idc_cgi.exe?IdcService=CHECKIN_NEW_FORM&coreContentOnly=1 • Workflow : • http://<stellent-web-server>/intradoc-cgi/nph-idc_cgi.exe?IdcService=GET_PORTAL_PAGE&Action=GetTemplatePage&Page=WF_INQUEUE_LIST&exitUrl=%3c%24HttpCgiPath%24%3e%3fIdcService%3dGET_USER_INFO&coreContentOnly=1
Single-Sign-On Problem • When a user logs into the Portal and the Screen Scraper portlet tries to scrape the content , the following problem are encountered : • The Screen Scraper does not send Portal Session information to remote URL’s • The Stellent Content Server is unaware of the user logging into the portal and will throw a challenge box demanding authentication.
Solution to Single-Sign-On • The engineering teams of Stellent and Sybase got together to find a solution to this and came up with the following : • The Screen Scraper portlet when making a URL Connection would also send the following : • dName=<login Id of the person logging into the Portal> • sybsession_id =<Handle of Portal Session object> • Enhancements were done in the Screen Scraper code to send session information to remote URL’s .
Enhancements in Screen Scraper • Support for the following attributes was added. • SharedAttributes : USER$getShortUID$dName,USER$getLoginHandle$sybsession_id • SameAppServer : false • SharedAttributes denotes what session information needs to be shared. • Setting SameAppServer to false denotes that the session information needs to be shared with remote servers.
Enhancements in Screen Scraper • SharedAttributes : USER$getShortUID$dName,USER$getLoginHandle$sybsession_id • The above means that from the USER bean in the session , invoke the getShortUID() method and the getLoginHandle() method. • The following will be sent by “POST” when making a URL Connection : • dName=<return value>&sybsession_id=<return value>
Attributes of Screen Scraper portlet • FixLinks : false • AlwaysReloadSource : true • SharedAttributes : USER$getShortUID$dName,USER$getLoginHandle$sybsession_id • SameAppServer : false • url : http://<stellent-web-server>/intradoc-cgi/nph-idc_cgi.exe?IdcService=GET_PORTAL_PAGE&Action=GetTemplatePage&Page=WF_INQUEUE_LIST&exitUrl=%3c%24HttpCgiPath%24%3e%3fIdcService%3dGET_USER_INFO&coreContentOnly=1
Enhancements in Stellent Content Server • Using the handle in the sybsession_id the remote reference to the PortalSession object is obtained. • If the reference is a valid one then the challenge box is not thrown and it is assumed that the user has valid credentials. • Using dName i.e the login Id of the user in EP an entry is made into the Stellent Content Management system , the entry is mapped to an “External” attribute denoting that the User is not an internal Stellent User and has been mapped from external systems.
Enhancements in Stellent Content Server • The values of dName and sybsession_id were carried forward to subsequent screens. • The roles used to access content would not be those from the Stellent Content Management System , but instead would be obtained dynamically using the reference to the Portal Session Object that would be passed when a user logs into the portal.
Understanding the Stellent Content Server security model • Role based access to Content. • By default Stellent Content Server comes with the following roles : • Guest • Sysmanager • Contributor • Admin
Understanding the Stellent Content Server security model • Concept of Permissions. • There are four types of permissions : • Read (view files) • Write (view , check in , check out files) • Delete (view , check in , check out , delete files) • Admin (view , check in , check out , delete files , Administrative privileges)
Understanding the Stellent Content Server security model • The default mapping are as follows : • Guest (Read) • SysManager (privilege to access the Admin Server administration tool) • Contributor(Read Write) • Admin(Read Write Delete Admin)
Understanding the Sybase EP security model • Role based access to portlets. • The default roles are : • PIUser • PIAdmin
Bridging the gap between the two security model • Before accessing the Stellent Content Server from EP , the roles present in Stellent Content Server are replicated to EP. • Check-In , Search , Workflow portlets are assigned the roles replicated from the Stellent Content Server. • Portal Users assigned suitable roles. • Portal Users are able to view the content and perform operations based on the assigned roles.