use of org.pentaho.platform.api.engine.ISecurityHelper in project pentaho-platform by pentaho.
the class PentahoXmlaServletTest method testInvalidDataSourceInfo.
@Test
public void testInvalidDataSourceInfo() throws Exception {
ISecurityHelper securityHelper = mock(ISecurityHelper.class);
SecurityHelper.setMockInstance(securityHelper);
when(securityHelper.runAsSystem(any((Callable.class)))).thenReturn("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<DataSources>\n" + "<DataSource>\n" + "<DataSourceName>Pentaho</DataSourceName>\n" + "<DataSourceDescription>Pentaho BI Platform Datasources</DataSourceDescription>\n" + "<URL>http://localhost:8080/pentaho/Xmla</URL>\n" + "<DataSourceInfo>Provider=mondrian</DataSourceInfo>\n" + "<ProviderName>PentahoXMLA</ProviderName>\n" + "<ProviderType>MDP</ProviderType>\n" + "<AuthenticationMode>Unauthenticated</AuthenticationMode>\n" + "<Catalogs>\n" + "<Catalog name=\"SampleData\">\n" + "<DataSourceInfo></DataSourceInfo>\n" + "<Definition>mondrian:/SampleData</Definition>\n" + "</Catalog>\n" + "</Catalogs>\n" + "</DataSource>\n" + "</DataSources>\n");
try {
// should throw
new PentahoXmlaServlet().makeContentFinder("fakeurl").getContent();
} catch (MondrianException e) {
assertTrue(e.getCause().getCause().getMessage().contains("DataSourceInfo not defined for SampleData"));
return;
}
fail("Did not throw expected exception.");
}
use of org.pentaho.platform.api.engine.ISecurityHelper in project pentaho-engineering-samples by pentaho.
the class PentahoSamlAuthenticationSuccessHandler method createUserHomeFolder.
private void createUserHomeFolder(final String username) {
final ITenant tenantName = JcrTenantUtils.getTenant(username, true);
final ISecurityHelper securityHelper = PentahoSystem.get(ISecurityHelper.class) != null ? PentahoSystem.get(ISecurityHelper.class) : SecurityHelper.getInstance();
final IBackingRepositoryLifecycleManager lifecycleManager = PentahoSystem.get(IBackingRepositoryLifecycleManager.class);
if (tenantName == null || securityHelper == null || lifecycleManager == null) {
logger.error("null " + (tenantName == null ? "ITenant" : securityHelper == null ? "ISecurityHelper" : "IBackingRepositoryLifecycleManager"));
return;
}
try {
securityHelper.runAsSystem(new Callable<Void>() {
@Override
public Void call() throws Exception {
// Execute new tenant with the tenant id from the logged in user
lifecycleManager.newTenant(tenantName);
return null;
}
});
} catch (Exception e) {
logger.error(e.getLocalizedMessage(), e);
}
try {
securityHelper.runAsSystem(new Callable<Void>() {
@Override
public Void call() throws Exception {
// Execute new tenant with the tenant id from the logged in user
lifecycleManager.newUser(tenantName, username);
return null;
}
});
} catch (Exception e) {
logger.error(e.getLocalizedMessage(), e);
}
try {
// The newTenant() call should be executed as the system (or more correctly the tenantAdmin)
securityHelper.runAsSystem(new Callable<Void>() {
@Override
public Void call() throws Exception {
lifecycleManager.newTenant();
return null;
}
});
} catch (Exception e) {
logger.error(e.getLocalizedMessage(), e);
}
try {
// run as user to populate SecurityContextHolder and PentahoSessionHolder since Spring Security events are
// fired before SecurityContextHolder is set
securityHelper.runAsUser(username, new Callable<Void>() {
@Override
public Void call() throws Exception {
lifecycleManager.newUser();
return null;
}
});
} catch (Exception e) {
logger.error(e.getLocalizedMessage(), e);
}
}
use of org.pentaho.platform.api.engine.ISecurityHelper in project pentaho-platform by pentaho.
the class SchedulerServiceTest method testGetJobInfoError.
@Test
public void testGetJobInfoError() throws Exception {
String jobId = "jobId";
Job mockJob = mock(Job.class);
doReturn(mockJob).when(schedulerService).getJob(jobId);
ISecurityHelper mockSecurityHelper = mock(ISecurityHelper.class);
doReturn(mockSecurityHelper).when(schedulerService).getSecurityHelper();
IPentahoSession mockPentahoSession = mock(IPentahoSession.class);
doReturn(mockPentahoSession).when(schedulerService).getSession();
doReturn(false).when(schedulerService).canAdminister(mockPentahoSession);
String sessionName = "sessionName";
doReturn(sessionName).when(mockPentahoSession).getName();
String username = "username";
doReturn(username).when(mockJob).getUserName();
try {
schedulerService.getJobInfo(jobId);
fail();
} catch (RuntimeException e) {
// Expected
}
}
Aggregations