Handled scopes & added request token with authorization code tests.

Change-Id: I775141b8b94bf2d1c86ad873807fcb1b12f3914f
diff --git a/full/src/main/java/de/ids_mannheim/korap/config/FullConfiguration.java b/full/src/main/java/de/ids_mannheim/korap/config/FullConfiguration.java
index 5fb08a8..d237494 100644
--- a/full/src/main/java/de/ids_mannheim/korap/config/FullConfiguration.java
+++ b/full/src/main/java/de/ids_mannheim/korap/config/FullConfiguration.java
@@ -54,7 +54,8 @@
 
     private AuthenticationMethod OAuth2passwordAuthentication;
     private String nativeClientHost;
-    private Set<String> accessScopes;
+    private Set<String> defaultAccessScopes;
+    private Set<String> clientCredentialsScopes;
     private int maxAuthenticationAttempts;
 
     public FullConfiguration (Properties properties) throws IOException {
@@ -94,7 +95,12 @@
                 "read_username read_email");
         Set<String> scopeSet =
                 Arrays.stream(scopes.split(" ")).collect(Collectors.toSet());
-        setAccessScopes(scopeSet);
+        setDefaultAccessScopes(scopeSet);
+
+        String clientScopes = properties.getProperty(
+                "oauth2.client.credentials.scopes", "read_client_info");
+        setClientCredentialsScopes(Arrays.stream(clientScopes.split(" "))
+                .collect(Collectors.toSet()));
     }
 
     private void setMailConfiguration (Properties properties) {
@@ -352,12 +358,21 @@
         this.maxAuthenticationAttempts = maxAuthenticationAttempts;
     }
 
-    public Set<String> getAccessScopes () {
-        return accessScopes;
+    public Set<String> getDefaultAccessScopes () {
+        return defaultAccessScopes;
     }
 
-    public void setAccessScopes (Set<String> accessScopes) {
-        this.accessScopes = accessScopes;
+    public void setDefaultAccessScopes (Set<String> accessScopes) {
+        this.defaultAccessScopes = accessScopes;
+    }
+
+    public Set<String> getClientCredentialsScopes () {
+        return clientCredentialsScopes;
+    }
+
+    public void setClientCredentialsScopes (
+            Set<String> clientCredentialsScopes) {
+        this.clientCredentialsScopes = clientCredentialsScopes;
     }
 
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/config/Initializator.java b/full/src/main/java/de/ids_mannheim/korap/config/Initializator.java
index e77f006..6c04431 100644
--- a/full/src/main/java/de/ids_mannheim/korap/config/Initializator.java
+++ b/full/src/main/java/de/ids_mannheim/korap/config/Initializator.java
@@ -4,7 +4,8 @@
 
 import de.ids_mannheim.korap.oauth2.dao.AccessScopeDao;
 
-/** Initializes values in the database from kustvakt configuration.
+/**
+ * Initializes values in the database from kustvakt configuration.
  * 
  * @author margaretha
  *
@@ -13,19 +14,20 @@
 
     private FullConfiguration config;
     private AccessScopeDao accessScopeDao;
-    
 
-    public Initializator (FullConfiguration config, AccessScopeDao accessScopeDao) {
+
+    public Initializator (FullConfiguration config,
+                          AccessScopeDao accessScopeDao) {
         this.config = config;
         this.accessScopeDao = accessScopeDao;
     }
-    
+
     public void init () {
         setAccessScope();
     }
-    
-    private void setAccessScope(){
-        Set<String> accessScopes = config.getAccessScopes();
-        accessScopeDao.storeAccessScopes(accessScopes);
+
+    private void setAccessScope () {
+        accessScopeDao.storeAccessScopes(config.getDefaultAccessScopes());
+        accessScopeDao.storeAccessScopes(config.getClientCredentialsScopes());
     }
 }