Implemented signed OpenID token with default algorithm RSA256.

Change-Id: I5bd5bed5c556e550244e06299bc7e54f53226401
diff --git a/core/Changes b/core/Changes
index 3c77c97..687adb1 100644
--- a/core/Changes
+++ b/core/Changes
@@ -1,3 +1,8 @@
+version 0.60.4
+25/06/2018
+	- added the redirect URI property in KustvaktException (margaretha)
+	- added openid related status codes (margaretha)
+	
 version 0.60.3
 30/05/2018
 	- added parameter checker for collection (margaretha)
diff --git a/core/pom.xml b/core/pom.xml
index 91bb414..de109cc 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -3,7 +3,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>de.ids_mannheim.korap</groupId>
 	<artifactId>Kustvakt-core</artifactId>
-	<version>0.60.3</version>
+	<version>0.60.4</version>
 
 	<properties>
 		<java.version>1.8</java.version>
diff --git a/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java b/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
index 5c98520..1d1c1ec 100644
--- a/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
+++ b/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
@@ -4,7 +4,7 @@
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URL;
+import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -40,7 +40,6 @@
     private List<String> queryLanguages;
 
     private String serverHost;
-    private URL issuer;
 
     private int maxhits;
     private int returnhits;
@@ -83,7 +82,7 @@
     // deprec?!
     private final BACKENDS DEFAULT_ENGINE = BACKENDS.LUCENE;
 
-	public KustvaktConfiguration (Properties properties) throws IOException {
+	public KustvaktConfiguration (Properties properties) throws IOException, URISyntaxException {
         load(properties);
     }
 	
@@ -93,10 +92,11 @@
      * @param properties
      * @return
      * @throws IOException 
+     * @throws URISyntaxException 
      * @throws KustvaktException 
      */
     protected void load (Properties properties)
-            throws IOException {
+            throws IOException, URISyntaxException {
         baseURL = properties.getProperty("kustvakt.base.url", "/api/*");
         maxhits = new Integer(properties.getProperty("maxhits", "50000"));
         returnhits = new Integer(properties.getProperty("returnhits", "50000"));
@@ -110,11 +110,6 @@
         queryLanguages = new ArrayList<>();
         for (String querylang : qls)
             queryLanguages.add(querylang.trim().toUpperCase());
-        String is = properties.getProperty("security.jwt.issuer", "");
-
-        if (!is.startsWith("http"))
-            is = "http://" + is;
-        issuer = new URL(is);
 
         default_const = properties
                 .getProperty("default.layer.constituent", "mate");
@@ -173,8 +168,9 @@
      * properties can be overloaded after spring init
      * 
      * @param stream
+     * @throws URISyntaxException 
      */
-    public void setPropertiesAsStream (InputStream stream) {
+    public void setPropertiesAsStream (InputStream stream) throws URISyntaxException {
         try {
 
             Properties p = new Properties();
diff --git a/core/src/main/java/de/ids_mannheim/korap/exceptions/StatusCodes.java b/core/src/main/java/de/ids_mannheim/korap/exceptions/StatusCodes.java
index ed1a11f..655a98a 100644
--- a/core/src/main/java/de/ids_mannheim/korap/exceptions/StatusCodes.java
+++ b/core/src/main/java/de/ids_mannheim/korap/exceptions/StatusCodes.java
@@ -131,6 +131,9 @@
     public static final int UNSUPPORTED_GRANT_TYPE = 1810;
     public static final int UNSUPPORTED_AUTHENTICATION_METHOD = 1811;
     
+    public static final int ID_TOKEN_CLAIM_ERROR = 1812;
+    public static final int ID_TOKEN_SIGNING_FAILED = 1813;
+    
 
     /**
      * 1900 User account and logins