public class RepositoryResource extends AbstractJaxRSResource
Modifier and Type | Field and Description |
---|---|
static String |
GENERATED_CONTENT_PERSPECTIVE |
protected IPluginManager |
pluginManager |
protected IUnifiedRepository |
repository |
protected RepositoryDownloadWhitelist |
whitelist |
acceptableMediaTypes, httpServletRequest, httpServletResponse, TEXT_HTML
Constructor and Description |
---|
RepositoryResource() |
Modifier and Type | Method and Description |
---|---|
javax.ws.rs.core.Response |
doExecuteDefault(String pathId)
Takes a pathId to a file and generates a URI that represents the URL to call to generate content from that file.
|
javax.ws.rs.core.Response |
doFormPost(String contextId,
String resourceId,
javax.ws.rs.core.MultivaluedMap<String,String> formParams)
Gets a resource identified by the compound key contextId and resourceId.
|
javax.ws.rs.core.Response |
doGet(String contextId,
String resourceId)
Gets a resource identified by the compound key contextId and resourceId.
|
javax.ws.rs.core.Response |
doGetFileOrDir(String pathId) |
protected javax.ws.rs.core.Response |
doService(String contextId,
String resourceId) |
protected String |
extractUrl(RepositoryFile file) |
protected javax.ws.rs.core.Response |
getContentGeneratorResponse(org.pentaho.platform.web.http.api.resources.RepositoryResource.CGFactory fac) |
javax.ws.rs.core.Response |
getExecutableTypes()
Retrieves the list of supported content type in the platform
|
protected javax.ws.rs.core.Response |
getPluginFileResponse(String pluginId,
String filePath) |
protected javax.ws.rs.core.Response |
getRepositoryFileResponse(String filePath,
String relPath) |
protected javax.ws.rs.core.Response |
getUrlResponse(RepositoryFile file,
String resourceId) |
RepositoryDownloadWhitelist |
getWhitelist() |
void |
setWhitelist(RepositoryDownloadWhitelist whitelist) |
setHttpHeaders
protected IPluginManager pluginManager
public static final String GENERATED_CONTENT_PERSPECTIVE
protected IUnifiedRepository repository
protected RepositoryDownloadWhitelist whitelist
public javax.ws.rs.core.Response doGetFileOrDir(String pathId) throws FileNotFoundException
FileNotFoundException
public javax.ws.rs.core.Response doExecuteDefault(String pathId) throws FileNotFoundException, MalformedURLException, URISyntaxException
Example Request:
GET pentaho/api/repos/public:steel%20wheels:Invoice%20(report).prpt/default
pathId
- @param pathIdExample Response:
This response does not contain data.
FileNotFoundException
MalformedURLException
URISyntaxException
public javax.ws.rs.core.Response doFormPost(String contextId, String resourceId, javax.ws.rs.core.MultivaluedMap<String,String> formParams) throws ObjectFactoryException, PluginBeanException, IOException, URISyntaxException
Example Request:
POST pentaho/api/repos/xanalyzer/service/ajax/lookupXmiId
POST data:
catalog=t&cube=t&time=1389817320072
contextId
- Identifies the context in which the resource should be retrieved. This value may be a repository file ID, repository file extension or plugin IDresourceId
- Identifies a resource to be retrieved. This value may be a static file residing in a publicly visible plugin folder, repository file ID or content generator IDformParams
- Any arguments needed to render the resourceExample Response:
This response does not contain data.
ObjectFactoryException
PluginBeanException
IOException
URISyntaxException
public javax.ws.rs.core.Response doGet(String contextId, String resourceId) throws ObjectFactoryException, PluginBeanException, IOException, URISyntaxException
Example Request:
GET pentaho/api/repos/admin-plugin/resources/authenticationProviderModule/authenticationProviderAdmin.html
contextId
- Identifies the context in which the resource should be retrieved. This value may be a repository file ID, repository file extension or plugin ID.resourceId
- Identifies a resource to be retrieved. This value may be a static file residing in a publicly visible plugin folder, repository file ID or content generator ID.Example Response:
<!DOCTYPE html> <html xmlns:pho="http:/www.pentaho.com"> <head> <title>Report Parameter UI</title> <link rel="stylesheet" type="text/css" href="authenticationProviderAdmin.css" /> <link rel="stylesheet" type="text/css" href="../../../common-ui/resources/web/dojo/dijit/themes/pentaho/pentaho.css" /> <script type="text/javascript" src="../../../../webcontext.js"></script> <script type="text/javascript"> require(["authenticationProviderAdmin"]); </script> </head> <body class="soria" style="border: none"> <!-- tree dialog --> <div id="ldapTreeDialog" data-dojo-type="dijit.Dialog" data-dojo-props='title:"LDAP Browser"' class="dialog"> <div id="ldapTreeDialogContent" class="dialog-content ldap-tree-padding"> <div id="ldapTree" data-dojo-props="autoExpand:true"></div> </div> <div class="dialog-buttons"> <div class="container"> <button id="btn_ldapTreeDialogOk" class="pentaho-button ok-button first"> </button> <button id="btn_ldapTreeDialogCancel" class="pentaho-button cancel-button last"> </button> </div> </div> </div> <!-- override dialog --> <div id="ldapDirtyDialog" data-dojo-type="dijit.Dialog" class="dialog"> <div class="dialog-content pentaho-padding-sm"> <p class="message">You have unsaved changes. Do you want to continue?</p> </div> <div class="dialog-buttons"> <div class="container"> <button id="btn_ldapDirtyDialogNo" class="pentaho-button no-button first"> </button> <button id="btn_ldapDirtyDialogYes" class="pentaho-button yes-button last"> </button> </div> </div> </div> <!-- test dialog --> <div id="ldapTestMsgDialog" data-dojo-type="dijit.Dialog" class="dialog"> <div class="dialog-content pentaho-padding-sm"> <p class="message"> </p> </div> <div class="dialog-buttons"> <div class="container"> <button id="btn_hideTest" class="pentaho-button close-button last"> </button> </div> </div> </div> <!-- edit server connection --> <div id="editServerDialog" data-dojo-type="dijit.Dialog" data-dojo-props='title:"Edit External Authentication Server Connection"' class="dialog"> <div class="dialog-content pentaho-padding-sm"> <p class="message">Changing server conneciton will remove all current authentication and premissions settings. Do you want to continue?</p> </div> <div class="dialog-buttons"> <div class="container"> <button id="btn_editServerDialogYesClick" class="pentaho-button ok-button first"> </button> <button id="btn_editServerDialogNoClick" class="pentaho-button cancel-button last"> </button> </div> </div> </div> <!-- edit authentication method --> <div id="authenticationChangeDialog" data-dojo-type="dijit.Dialog" class="dialog" > <div class="dialog-content pentaho-padding-sm"> <p class="message">Changing the authentication method will remove all current authentication and premissions settings. Do you want to continue?</p> </div> <div class="dialog-buttons"> <div class="container"> <button id="btn_processAuthenticationMethodChange" class="pentaho-button yes-change-button first"> </button> <button id="btn_authenticationChangeNoClick" class="pentaho-button no-button last"> </button> </div> </div> </div> <!-- populator dialog --> <div id="ldapPopTestDialog" data-dojo-type="dijit.Dialog" class="dialog"> <div class="dialog-content pentaho-padding-sm"> <div class="groupOption"> <div class="ldapPopulatorGroupRoleAttributeLabel">Group Role Attribute:</div> <div class="ldapPopulatorGroupRoleAttributeValue value"></div> </div> <div class="groupOption"> <div class="ldapPopulatorGroupRoleSearchBaseLabel">Group Search Base:</div> <div class="ldapPopulatorGroupRoleSearchBaseValue value"></div> </div> <div class="groupOption"> <div class="ldapPopulatorGroupSearchFilterLabel">Group Search Filter:</div> <div class="ldapPopulatorGroupSearchFilterValue value"></div> </div> <div class="groupOption"> <div class="ldapPopulatorRolePrefixLabel">Role Prefix:</div> <div class="ldapPopulatorRolePrefixValue value"></div> </div> <div class="groupOption"> <div class="ldapUserLabel">User Name:</div> </div> <input id="ldapPopTestUserName" type="text" /> <br /> <div class="groupOption"> <label class="ldapUserDomainLabel">User DN:</label> </div> <input id="ldapPopTestUserDn" type="text"/> <br /> </div> <div class="dialog-buttons"> <div class="container"> <button id="btn_testPopulator" class="pentaho-button ok-button first"> </button> <button id="btn_hideLdapPropsTest" class="pentaho-button cancel-button last"> </button> </div> </div> </div> <!-- user test dialog --> <div id="ldapUserTestDialog" data-dojo-type="dijit.Dialog" class="dialog"> <div class="dialog-content pentaho-padding-sm"> <p class="message">With the search base and search filter configuration search for a user name that exists in your LDAP server.</p> <br/> <div class="groupOption"> <div class="ldapUserTestLabel">Search For User:</div> </div> <input class="ldapUserTestUserName" type="text" /> <br /> </div> <div class="dialog-buttons"> <div class="container"> <button id="btn_testLdapUserSearch" class="pentaho-button ok-button first"> </button> <button id="btn_hideLdapUserTestDialog" class="pentaho-button cancel-button last"> </button> </div> </div> </div> <div style="padding: 0px;"> <div class="pentaho-fieldgroup-major titleLabel">Authentication</div> <br/> <!-- CONNECTION PARAMS --> <div id="authenticationSelector"> <div class="authenticationMethodLabel authMethod">Authentication Method</div> <div class="authText authenticationMethodDescriptionLabel"> Select where user and their log in credentials will be managed: </div> <div class="groupOption"> <input checked="checked" name="securityProvider" type="radio" value="jackrabbit" /> <div class="pentahoSecurityLabel authValue">Local - Use basic Pentaho authentication</div> </div> <div class="groupOption"> <input name="securityProvider" type="radio" value="ldap" /> <div class="ldapSecurityLabel authValue">External - Use LDAP / Active Directory server</div> </div> </div> <br /> <br /> <div id="ldapConnection" style="display: none"> <div class="ldapConnectionTitleLabel authMethod">LDAP Server Connection</div> <!-- to edit config --> <div id="ldapConnectionEdit" style="display:block"> <div class="authText ldapServerUrlLabel">Server URL:</div> <input class="ldapServerUrlInput authValue adminField" type="text" /> <div class="authText ldapUserLabel">User Name:</div> <input class="ldapUserInput authValue adminField" type="text" /> <div class="authText ldapPasswordLabel">Password:</div> <input class="ldapPasswordInput authValue adminField" type="password" /> <br/><br/> <div class="authText ldapTestConnectionLabel">Test connection to complete LDAP setup</div> <br/> <div class="securityConfigButton"> <button id="testServerConnectionButton" class="pentaho-button testServerConnectionButton" > </button> </div> </div> <!-- edited config --> <div id="ldapConnectionEditor" style="display:none"> <div class="authText ldapServerUrlLabel" >Server URL:</div> <div class="groupOption"> <div class="ldapServerUrlValue authValue"></div> <div class="pentaho-editbutton" id="btn_editConnection" title="Edit connection"></div> </div> </div> <br /> <div> <div id="ldapSettingsGroup" style="display: none"> <!-- Ldap administration configuration --> <div id="ldapAdministration"> <div class="ldapAdministrationTitleLabel authMethod">Pentaho System Administrator</div> <div class="ldapAdministratiorUserLabel authText">Select user from LDAP server:</div> <div class="groupOption"> <input class="ldapAdministratorUserInput adminField" type="text" /> <button class="adminButton" id="btn_ldapAdministratorUserInput"> </button> </div> <div class="ldapAdministrationRoleLabel authText">Select role from LDAP server:</div> <div class="groupOption"> <input class="ldapAdministratorRoleInput adminField" type="text" /> <button class="adminButton" id="btn_ldapAdministratorRoleInput" > </button> </div> </div> <br/><br/> <!-- ldap configuration --> <div class="ldapConfigurationTitle authMethod">LDAP Configuration</div> <div class="authText" id="customLdapProviderLabel" >Other</div> <div class="groupOption"> <select id="ldapTypeSelector"> <option class="ldapTypeSelectorApacheOption" selected="selected" value="ldapApacheConfiguration">Apache DS</option> <option class="ldapTypeSelectorCustomOption" value="ldapCustomConfiguration">Custom</option> </select> </div> <!-- ldap apache configuration --> <div id="ldapApacheConfiguration" class="ldapApacheConfiguration configuration" style="display: none;"> <!-- User Base --> <div class="ldapUserBaseLabel authText">User Base:</div> <div class="groupOption"> <input class="ldapUserSearchBaseInput adminField" type="text" /> <button class="adminButton" id="btn_ldapUserSearchBaseInput"> </button> </div> <!-- Group Base --> <div class="ldapGroupBaseLabel authText">Group Base:</div> <div class="groupOption"> <input class="ldapGroupBaseInput adminField" type="text" /> <button class="adminButton" id="btn_ldapGroupBaseInput" > </button> </div> <div style="display: none"> <!-- This stuff is hidden but populated for save functions --> <input class="ldapUserSearchFilterInput" /> <input class="ldapRoleBaseInput" /> <input class="ldapRoleSearchBaseInput" /> <input class="ldapRoleSearchFilterInput" /> <input class="ldapPopulatorGroupRoleAttributeInput" /> <input class="ldapPopulatorGroupSearchFilterInput" /> <input class="ldapPopulatorGroupRoleSearchBaseInput" /> <input class="ldapPopulatorRolePrefixInput" /> <input class="ldapPopulatorSubtreeInput" name="ldapPopulatorSubtreeInput" type="radio" value="false" /> <input class="ldapPopulatorUpperCaseInput" name="ldapPopulatorUpperCaseInput" type="radio" value="false" /> </div> </div> <div id="ldapMicrosoftConfiguration" class="microsoftConfigPanel configuration" style="display: none;"> <div class="ldapUserBaseLabel authText">User Base:</div> <div class="groupOption"> <input class="ldapUserSearchBaseInput adminField" type="text" /> <button class="adminButton" id="btn_ldapUserSearchBaseInput2" > </button> </div> <div class="ldapGroupBaseLabel authText">Group Base:</div> <div class="groupOption"> <input class="ldapGroupBaseInput adminField" type="text" /> <button class="adminButton" id="btn_ldapGroupBaseInput2"> </button> </div> <div style="display: none"> <!-- This stuff is hidden but populated for test and save functions --> <input class="ldapUserSearchFilterInput" /> <input class="ldapRoleBaseInput" /> <input class="ldapRoleSearchBaseInput" /> <input class="ldapRoleSearchFilterInput" /> <input class="ldapPopulatorGroupRoleAttributeInput" /> <input class="ldapPopulatorGroupSearchFilterInput" /> <input class="ldapPopulatorGroupRoleSearchBaseInput" /> <input class="ldapPopulatorRolePrefixInput" /> <input class="ldapPopulatorSubtreeInput" name="ldapPopulatorSubtreeInput" type="radio" value="false" /> <input class="ldapPopulatorUpperCaseInput" name="ldapPopulatorUpperCaseInput" type="radio" value="false" /> </div> </div> <!-- ldap custom configuration --> <div id="ldapCustomConfiguration" class="ldapCustomConfiguration configuration" style="display: none;"> <!-- user search configuration --> <br/> <span class="ldapCustomUserSearchTitle authMethod">User Search</span> <br/> <div> <div class="ldapUserSearchBaseLabel authText">Search Base:</div> <input class="ldapUserSearchBaseInput adminField" type="text" /> <div class="ldapUserSearchFilderLabel authText">Search Filter:</div> <input class="ldapUserSearchFilterInput adminField" type="text" /> <br/> <br/> <div class="securityConfigButton"> <button class="pentaho-button test-button" id="btn_showLdapUserTestDialog"> </button> </div> </div> <br/> <br/> <!-- roles configuration --> <span class="ldapRolesTitle authMethod">Roles</span> <br/> <div> <div class="ldapRoleBaseLabel authText">Role Attribute:</div> <input class="ldapRoleBaseInput adminField" type="text" /> <div class="ldapRoleSearchFilterLabel authText">Role Search Filter:</div> <input class="ldapRoleSearchFilterInput adminField" type="text" /> <div class="ldapRoleSearchBaseLabel authText">Role Search Base:</div> <input class="ldapRoleSearchBaseInput adminField" type="text" /> <br/> <br/> <div class="securityConfigButton"> <button class="pentaho-button test-button" id="btn_testAuthoritiesSearch"> </button> </div> </div> <br/> <br/> <span class="ldapPopulatorTitle authMethod">Populator</span> <br/> <div> <div class="ldapPopulatorGroupRoleAttributeLabel authText">Group Role Attribute:</div> <input class="ldapPopulatorGroupRoleAttributeInput adminField" type="text" /> <div class="ldapPopulatorGroupRoleSearchBaseLabel authText">Group Search Base:</div> <input class="ldapPopulatorGroupRoleSearchBaseInput adminField" type="text" /> <div class="ldapPopulatorGroupSearchFilterLabel authText">Group Search Filter:</div> <input class="ldapPopulatorGroupSearchFilterInput adminField" type="text" /> <div class="ldapPopulatorRolePrefixLabel authText">Role Prefix:</div> <input class="ldapPopulatorRolePrefixInput adminField" type="text" /> <div class="ldapPopulatorUpperCaseLabel authText">Convert To Upper Case:</div> <div class="ldapPopulatorUpperCaseDescription groupOption"> <input name="ldapPopulatorUpperCaseInput" class="ldapPopulatorUpperCaseInput" type="radio" value="true" /> <label class="yes-button">Yes</label> <input name="ldapPopulatorUpperCaseInput" class="ldapPopulatorUpperCaseInput" type="radio" checked="checked" value="false" /> <label class="no-button">No</label> </div> <div class="ldapPopulatorSubtreeLabel authText">Subtree:</div> <div class="ldapPopulatorSubtreeDescription groupOption"> <input name="ldapPopulatorSubtreeInput" class="ldapPopulatorSubtreeInput" type="radio" value="true" /> <label class="yes-button">Yes</label> <input name="ldapPopulatorSubtreeInput" class="ldapPopulatorSubtreeInput" type="radio" checked="checked" value="false" /> <label class="no-button">No</label> </div> <br/> <div class="securityConfigButton"> <button class="pentaho-button test-button" id="btn_showPopulatorTestDialog"> </button> </div> </div> </div> </div> </div> </div> </div> <footer> <br/><br/> <div id="buttonDivSave" class="securityConfigButton" style="display: none;"> <button id="saveConfigButton" class="pentaho-button" >Save</button> </div> </footer> </body> </html>
ObjectFactoryException
PluginBeanException
IOException
URISyntaxException
public javax.ws.rs.core.Response getExecutableTypes()
ExecutableFileTypeDto
protected javax.ws.rs.core.Response doService(String contextId, String resourceId) throws ObjectFactoryException, PluginBeanException, IOException, URISyntaxException
protected javax.ws.rs.core.Response getUrlResponse(RepositoryFile file, String resourceId) throws MalformedURLException, URISyntaxException
protected javax.ws.rs.core.Response getContentGeneratorResponse(org.pentaho.platform.web.http.api.resources.RepositoryResource.CGFactory fac)
protected javax.ws.rs.core.Response getPluginFileResponse(String pluginId, String filePath) throws IOException
IOException
protected javax.ws.rs.core.Response getRepositoryFileResponse(String filePath, String relPath) throws IOException
IOException
protected String extractUrl(RepositoryFile file)
public RepositoryDownloadWhitelist getWhitelist()
public void setWhitelist(RepositoryDownloadWhitelist whitelist)
Copyright © 2002–2017 Pentaho Corporation. All rights reserved.