From 3deebe92486006d555b91be2190a0de7c4535a85 Mon Sep 17 00:00:00 2001 From: Filip Izydorczyk Date: Fri, 11 Sep 2020 13:15:22 +0200 Subject: [PATCH] Added CasValidator --- restservice/pom.xml | 6 +++ .../com/plannaplan/security/CasValidator.java | 42 +++++++++++++++++++ .../plannaplan/security/CasValidatorTest.java | 21 ++++++++++ 3 files changed, 69 insertions(+) create mode 100644 restservice/src/main/java/com/plannaplan/security/CasValidator.java create mode 100644 restservice/src/test/java/com/plannaplan/security/CasValidatorTest.java diff --git a/restservice/pom.xml b/restservice/pom.xml index 4d62b67..bd3a2dc 100644 --- a/restservice/pom.xml +++ b/restservice/pom.xml @@ -31,6 +31,12 @@ test + + org.apache.httpcomponents + httpclient + 4.5.10 + + org.springframework.boot spring-boot-starter-web diff --git a/restservice/src/main/java/com/plannaplan/security/CasValidator.java b/restservice/src/main/java/com/plannaplan/security/CasValidator.java new file mode 100644 index 0000000..4af59b2 --- /dev/null +++ b/restservice/src/main/java/com/plannaplan/security/CasValidator.java @@ -0,0 +1,42 @@ +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; + } + + public String validate() throws Exception { + 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); + + } + String res = result.substring(result.indexOf('\n') + 1); + return res; + + } + + } +} diff --git a/restservice/src/test/java/com/plannaplan/security/CasValidatorTest.java b/restservice/src/test/java/com/plannaplan/security/CasValidatorTest.java new file mode 100644 index 0000000..234a759 --- /dev/null +++ b/restservice/src/test/java/com/plannaplan/security/CasValidatorTest.java @@ -0,0 +1,21 @@ +package com.plannaplan.security; + +import org.junit.Ignore; +import org.junit.Test; + +public class CasValidatorTest { + + @Test + @Ignore + public void shouldValidateTicket() { + //you need to privide fresh ticket to make this test pass that's why it is marked as ignored + CasValidator validator = new CasValidator("http://localhost:3000", + "ST-572267-cbgKrcJLd0tdCubeLqdW-cas.amu.edu.pl"); + try { + System.out.println(validator.validate()); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +}