Reporting API

Table of Contents

User Verification

Current Implementation

Project Name: Spago-KMF-Connector

1- Synchronizing SpagoBi roles with the external system i.e. kmr roles (ExternalSecurityInfoProviderImpl.java  implements ISecurityInfoProvider spago interface)

                  

2- Authenticate current kmr user to SpagoBI server (ExternalSecurityServiceSupplierImpl.java implements ISecurityServiceSupplier spago interface)

                         

 

Spago Server Configuration 

1- Create a jar file of the ExternalSecurityServiceSupplierImpl.java and ExternalSecurityInfoProviderImpl.java implementation.

2- Copy the jar file in the SpagoBI-Server-4.2-10042014/webapps/SpagoBI/WEB-INF/lib folder.

3- Change the SpagoBI setting to access them

  • SPAGOBI.SECURITY.PORTAL-SECURITY-CLASS.className=org.socraticgrid.spagobi.kmf.security.initialize.ExernalSecurityInfoProviderImpl
  • SPAGOBI.SECURITY.USER-PROFILE-FACTORY-CLASS.className=org.socraticgrid.spagobi.kmf.security.initialize.ExternalSecurityServiceSupplierImpl
  • SPAGOBI.SECURITY.PORTAL-SECURITY-INIT-CLASS.className=org.socraticgrid.spagobi.kmf.security.initialize.ExternalSecurityInitializer

API and the Parameters

ExternalSecurityInfoProviderImpl.java is invoked when synchronize icon is activated.  

Input: kmr AccountService();

output: Return the list of roles per organization from kmr.

All the parameters are set in the KMR_PROPERTIES_DIR configuration.

 

ExternalSecurityServiceSupplierImpl.java is invoked when a user login to the spagobi server.

 

 

NameTypeMandatoryDescription
User

SbiUser

yes

used in checkAuthentication method

userIDStringyes

used in checkAuthentication (Spago) method

used in checkKmrAuthenication method

passwordStringyes

used in checkAuthentication method

used in checkKmrAuthenication method

    

 

Justification

Spagobi creates user profile for every user during the login process. It is not possible to persist external users to their database layer. It effects other functionalities of SpagoBI. For instance, kmr users persisted in their user table but is not shown in the different places of the spagoBI server. We need to modify their code in several places to make all their functionalities working properly. 

API Sample

https://github.com/CognitiveMed/PQCNC_Spago

List Reports

Current Implementation

Project Name: Spago-KMF-Report

Package Name: org.socraticgrid.spagobi.kmf.api

Class Name: KmrSpagoCreateReport implements IKmrReport interface

Method Name: getDocumentsAsList

Parameters

Parameters:

NameTypeMandatoryDescription

user

Stringyesused in getDocumentsAsList method
passwordStringyesused in getDocumentsAsList method

ConnectionServiceEndpoint

Stringyes

used in getDocumentsAsList method

Spago Server Connection Service URL: http://localhost:8080/SpagoBI/sdk/TestConnectionService

DocumentServiceEndpoint

Stringyes

used in getDocumentsAsList method

Spago Server Connection Service URL:http://localhost:8080/SpagoBI/sdk/DocumentsService

    

 

API Sample

spagoReport.getDocumentsAsList("biuser","biuser","http://localhost:8080/SpagoBI/sdk/TestConnectionService","http://localhost:8080/SpagoBI/sdk/DocumentsService"); 

 

Get Report Roles

Current Implementation

Project Name: Spago-KMF-Report

Package Name: org.socraticgrid.spagobi.kmf.api

Class Name: KmrSpagoCreateReport implements IKmrReport interface

Method Name:  getSpagoRolesForExecution

 

Parameters for getSpagoRolesForExecution

Parameters:

NameTypeMandatoryDescription

user

Stringyesused in getDocumentsAsList method
passwordStringyesused in getSpagoRolesForExecution method

DocumentServiceEndpoint

Stringyes

used in getDocumentsAsList method

Spago Server Connection Service URL:http://localhost:8080/SpagoBI/sdk/DocumentsService

    

 

Get Report Parameters

Current Implementation

Project Name: Spago-KMF-Report

Package Name: org.socraticgrid.spagobi.kmf.api

Class Name: KmrSpagoCreateReport implements IKmrReport interface

Method Name: getSDKDocumentParameters(user, password,DocumentServiceEndpoint, DocumentId, role);

Parameters for getSDKDocumentParameters

NameTypeMandatoryDescription

user

Stringyesused in getDocumentsAsList method
passwordStringyesused in getSpagoRolesForExecution method

DocumentServiceEndpoint

Stringyes

Spago Server Connection Service URL:http://localhost:8080/SpagoBI/sdk/DocumentsService


 ServiceEndpoint String yes 

Spago Server Connection Service URL: http://localhost:8080/SpagoBI/sdk/TestConnectionService

API Sample

https://github.com/CognitiveMed/PQCNC_Reports