Skip to content

Commit 11782da

Browse files
Merge pull request #113 from TanyaEf/master
Added support for j_spring_security_check and BASIC authorization
2 parents d856d23 + faee5b3 commit 11782da

39 files changed

+660
-130
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,15 @@ Session session = client.authenticate("jasperadmin", "jasperadmin");
172172
//authentication with multitenancy enabled
173173
Session session = client.authenticate("jasperadmin|organization_1", "jasperadmin");
174174
```
175+
`JasperserverRestClient` supports two authentication types: SPRING and BASIC.
176+
`SPRING` type of authentication means that your credentials are sent as a form to `/j_security_check directly/` uri. Using these types you obtain JSESSIONID cookie of authenticated session after sending credentials.
177+
In the `BASIC` mode `JasperserverRestClient` uses basic authentication (sends encrypted credentials with each request).
178+
Client uses `SPRING` authentication by default but you can specify authentication type in RestClientConfiguration instance:
179+
```java
180+
config.setAuthenticationType(AuthenticationType.SPRING);
181+
```
182+
Or set authentication type in configuration file (for details, read section [Configuration](https://github.com/Jaspersoft/jrs-rest-java-client/blob/master/README.md#configuration)).
183+
Please notice, the basic authentication is not stateless and it is valid till method logout() is called or the application is restarted and you can not use this authentication type for Report Service, because all operations must be executed in the same session (for details, read section [Report services](https://github.com/Jaspersoft/jrs-rest-java-client/blob/master/README.md#report-services)).
175184
###Anonymous session
176185
For some Jasperserver services authentication is not required (for example, settings service and server info service), so you can use anonymous session:
177186
```java

src/integration-test/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/attributes/ServerAttributesServiceIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.attributes;
22

3-
import com.jaspersoft.jasperserver.jaxrs.client.core.JRSVersion;
3+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.JRSVersion;
44
import com.jaspersoft.jasperserver.jaxrs.client.core.JasperserverRestClient;
5-
import com.jaspersoft.jasperserver.jaxrs.client.core.MimeType;
5+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.MimeType;
66
import com.jaspersoft.jasperserver.jaxrs.client.core.RestClientConfiguration;
77
import com.jaspersoft.jasperserver.jaxrs.client.core.Session;
88
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.NullEntityOperationResult;

src/integration-test/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/bundles/BundlesServiceIT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.bundles;
22

33
import com.jaspersoft.jasperserver.jaxrs.client.core.*;
4+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.JRSVersion;
5+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.MimeType;
46
import org.codehaus.jettison.json.JSONObject;
57
import org.testng.annotations.BeforeMethod;
68
import org.testng.annotations.Test;
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.core;
2+
3+
import com.jaspersoft.jasperserver.jaxrs.client.core.JasperserverRestClient;
4+
import com.jaspersoft.jasperserver.jaxrs.client.core.RestClientConfiguration;
5+
import com.jaspersoft.jasperserver.jaxrs.client.core.Session;
6+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.AuthenticationType;
7+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.JRSVersion;
8+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.MimeType;
9+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.JSClientWebException;
10+
import org.testng.annotations.AfterMethod;
11+
import org.testng.annotations.BeforeMethod;
12+
import org.testng.annotations.Test;
13+
14+
import static org.testng.AssertJUnit.assertNotNull;
15+
16+
/**
17+
* @author Tetiana Iefimenko
18+
*/
19+
public class JasperserverRestClientIT {
20+
21+
22+
private RestClientConfiguration config;
23+
private JasperserverRestClient client;
24+
Session session;
25+
26+
@BeforeMethod
27+
public void before() {
28+
config = new RestClientConfiguration("http://localhost:4444/jasperserver-pro");
29+
config.setAcceptMimeType(MimeType.JSON);
30+
config.setContentMimeType(MimeType.JSON);
31+
config.setJrsVersion(JRSVersion.v6_0_0);
32+
client = new JasperserverRestClient(config);
33+
}
34+
35+
@Test
36+
public void should_return_session_via_j_sucurity_check() {
37+
session = client.authenticate("superuser", "superuser");
38+
assertNotNull(session);
39+
assertNotNull(session.getStorage().getSessionId());
40+
}
41+
42+
@Test (expectedExceptions = JSClientWebException.class)
43+
public void should_not_return_session_id_with_wrong_credentials_via_j_sucurity_check() {
44+
session = client.authenticate("superuser", "superuser1");
45+
46+
}
47+
48+
@Test
49+
public void should_return_session_via_basic_login() {
50+
config.setAuthenticationType(AuthenticationType.BASIC);
51+
session = client.authenticate("jasperadmin", "jasperadmin");
52+
assertNotNull(session);
53+
}
54+
55+
@AfterMethod
56+
public void after() {
57+
if (session != null)
58+
session.logout();
59+
}
60+
}
61+

src/integration-test/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/resources/ResourcesServiceIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.resources;
22

3-
import com.jaspersoft.jasperserver.jaxrs.client.core.JRSVersion;
3+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.JRSVersion;
44
import com.jaspersoft.jasperserver.jaxrs.client.core.JasperserverRestClient;
5-
import com.jaspersoft.jasperserver.jaxrs.client.core.MimeType;
5+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.MimeType;
66
import com.jaspersoft.jasperserver.jaxrs.client.core.RestClientConfiguration;
77
import com.jaspersoft.jasperserver.jaxrs.client.core.Session;
88
import java.io.ByteArrayInputStream;

src/integration-test/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/settings/SettingsServiceIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.settings;
22

33
import com.jaspersoft.jasperserver.jaxrs.client.core.AnonymousSession;
4-
import com.jaspersoft.jasperserver.jaxrs.client.core.JRSVersion;
4+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.JRSVersion;
55
import com.jaspersoft.jasperserver.jaxrs.client.core.JasperserverRestClient;
6-
import com.jaspersoft.jasperserver.jaxrs.client.core.MimeType;
6+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.MimeType;
77
import com.jaspersoft.jasperserver.jaxrs.client.core.RestClientConfiguration;
88
import com.jaspersoft.jasperserver.jaxrs.client.dto.settings.AwsSettings;
99
import com.jaspersoft.jasperserver.jaxrs.client.dto.settings.DashboardSettings;

src/integration-test/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/thumbnails/ThumbnailsServiceIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.thumbnails;
22

3-
import com.jaspersoft.jasperserver.jaxrs.client.core.JRSVersion;
3+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.JRSVersion;
44
import com.jaspersoft.jasperserver.jaxrs.client.core.JasperserverRestClient;
5-
import com.jaspersoft.jasperserver.jaxrs.client.core.MimeType;
5+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.MimeType;
66
import com.jaspersoft.jasperserver.jaxrs.client.core.RestClientConfiguration;
77
import com.jaspersoft.jasperserver.jaxrs.client.core.Session;
88
import com.jaspersoft.jasperserver.jaxrs.client.dto.thumbnails.ResourceThumbnail;

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/jobs/BatchJobsOperationsAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
2929
import com.jaspersoft.jasperserver.jaxrs.client.core.Callback;
3030
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
31-
import com.jaspersoft.jasperserver.jaxrs.client.core.MimeType;
31+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.MimeType;
3232
import com.jaspersoft.jasperserver.jaxrs.client.core.RequestExecution;
3333
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
3434
import com.jaspersoft.jasperserver.jaxrs.client.core.ThreadPoolUtil;

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/jobs/JobsService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.jobs.calendar.CalendarType;
2626
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.jobs.calendar.SingleCalendarOperationsAdapter;
2727
import com.jaspersoft.jasperserver.jaxrs.client.core.*;
28+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.JRSVersion;
2829
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
2930
import com.jaspersoft.jasperserver.jaxrs.client.dto.jobs.Job;
3031
import com.jaspersoft.jasperserver.jaxrs.client.dto.jobs.jaxb.wrappers.CalendarNameListWrapper;

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/jobs/SingleJobOperationsAdapter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
2525
import com.jaspersoft.jasperserver.jaxrs.client.core.*;
26+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.JRSVersion;
2627
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
2728
import com.jaspersoft.jasperserver.jaxrs.client.dto.jobs.Job;
2829
import com.jaspersoft.jasperserver.jaxrs.client.dto.jobs.JobState;

0 commit comments

Comments
 (0)