2020-09-11 13:15:22 +02:00
|
|
|
package com.plannaplan.security;
|
|
|
|
|
|
|
|
import java.net.URLEncoder;
|
|
|
|
|
|
|
|
import org.apache.http.HttpEntity;
|
|
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
|
import org.apache.http.client.methods.HttpGet;
|
|
|
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
|
import org.apache.http.impl.client.HttpClients;
|
|
|
|
import org.apache.http.util.EntityUtils;
|
|
|
|
|
|
|
|
public class CasValidator {
|
|
|
|
private static String CAS_URL = "https://cas.amu.edu.pl/cas";
|
|
|
|
private final CloseableHttpClient httpClient = HttpClients.createDefault();
|
|
|
|
private String service;
|
|
|
|
private String ticket;
|
|
|
|
|
|
|
|
public CasValidator(String service, String ticket) {
|
|
|
|
this.service = service;
|
|
|
|
this.ticket = ticket;
|
|
|
|
}
|
|
|
|
|
2020-09-11 14:12:13 +02:00
|
|
|
public String validate() throws Exception, CasValidationExcepiton{
|
2020-09-11 13:15:22 +02:00
|
|
|
HttpGet request = new HttpGet(CasValidator.CAS_URL + "/validate?service="
|
|
|
|
+ URLEncoder.encode(this.service, "UTF-8") + "&ticket=" + URLEncoder.encode(this.ticket, "UTF-8"));
|
|
|
|
try (CloseableHttpResponse response = httpClient.execute(request)) {
|
|
|
|
|
|
|
|
HttpEntity entity = response.getEntity();
|
|
|
|
|
|
|
|
String result = null;
|
|
|
|
if (entity != null) {
|
|
|
|
// return it as a String
|
|
|
|
result = EntityUtils.toString(entity);
|
2020-09-11 14:12:13 +02:00
|
|
|
if(result.replace("\n", "").trim().equals("no")){
|
|
|
|
throw new CasValidationExcepiton("Validation failed");
|
|
|
|
}
|
2020-09-11 13:15:22 +02:00
|
|
|
}
|
2020-09-11 14:12:13 +02:00
|
|
|
|
2020-09-11 13:15:22 +02:00
|
|
|
String res = result.substring(result.indexOf('\n') + 1);
|
|
|
|
return res;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|