Skip to content

Commit d8acaac

Browse files
author
TanyaEf
committed
Added verification of location header for Spring authorization
1 parent 8e819c3 commit d8acaac

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/core/JasperserverRestClient.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,12 @@
2525
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
2626
import com.jaspersoft.jasperserver.jaxrs.client.filters.BasicAuthenticationFilter;
2727
import com.jaspersoft.jasperserver.jaxrs.client.filters.SessionOutputFilter;
28-
import org.glassfish.jersey.client.ClientProperties;
29-
3028
import javax.ws.rs.client.Entity;
3129
import javax.ws.rs.client.WebTarget;
3230
import javax.ws.rs.core.Form;
3331
import javax.ws.rs.core.MediaType;
3432
import javax.ws.rs.core.Response;
33+
import org.glassfish.jersey.client.ClientProperties;
3534

3635
public class JasperserverRestClient {
3736
private final RestClientConfiguration configuration;
@@ -72,7 +71,9 @@ protected void login(SessionStorage storage) {
7271
.property(ClientProperties.FOLLOW_REDIRECTS, Boolean.FALSE);
7372
Response response = target.request().post(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE));
7473
String sessionId = null;
75-
if (response.getStatus() == ResponseStatus.FOUND) {
74+
String location = response.getLocation().toString();
75+
76+
if (response.getStatus() == ResponseStatus.FOUND && !location.matches("^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*?error=1$")) {
7677
sessionId = response.getCookies().get("JSESSIONID").getValue();
7778
storage.setSessionId(sessionId);
7879
} else {

0 commit comments

Comments
 (0)