Address reviews on jakarta migration.
Fix JettyServerTest, init package, and some java docs.
Make scope extraction more flexible.
Bumped Kustvakt version to 0.72-SNAPSHOT
Updated changes file
Change-Id: I9ba8620e244106b706e95d82dc2e3aeaceb37ae5
diff --git a/full/src/main/java/de/ids_mannheim/korap/init/Initializator.java b/full/src/main/java/de/ids_mannheim/korap/init/Initializator.java
new file mode 100644
index 0000000..e908737
--- /dev/null
+++ b/full/src/main/java/de/ids_mannheim/korap/init/Initializator.java
@@ -0,0 +1,68 @@
+package de.ids_mannheim.korap.init;
+
+import java.io.IOException;
+import java.util.EnumSet;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import de.ids_mannheim.korap.annotation.FreeResourceParser;
+import de.ids_mannheim.korap.config.FullConfiguration;
+import de.ids_mannheim.korap.config.NamedVCLoader;
+import de.ids_mannheim.korap.constant.OAuth2Scope;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.oauth2.dao.AccessScopeDao;
+import de.ids_mannheim.korap.oauth2.service.OAuth2InitClientService;
+import de.ids_mannheim.korap.util.QueryException;
+
+/**
+ * Initializes values in the database from kustvakt configuration and
+ * performs named VC caching.
+ *
+ * @author margaretha
+ *
+ */
+public class Initializator {
+
+ @Autowired
+ private AccessScopeDao accessScopeDao;
+ @Autowired
+ private NamedVCLoader vcLoader;
+ @Autowired
+ private FreeResourceParser resourceParser;
+ @Autowired
+ private FullConfiguration config;
+ @Autowired
+ private OAuth2InitClientService clientService;
+
+ public Initializator () {}
+
+ public void init () throws IOException, QueryException, KustvaktException {
+ setInitialAccessScope();
+ resourceParser.run();
+
+ if (config.createInitialSuperClient()) {
+ clientService.createInitialSuperClient(
+ OAuth2InitClientService.OUTPUT_FILENAME);
+ }
+
+ Thread t = new Thread(vcLoader);
+ t.start();
+ }
+
+ public void initTest () throws IOException, KustvaktException {
+ setInitialAccessScope();
+ if (config.createInitialSuperClient()) {
+ clientService.createInitialTestSuperClient();
+ }
+ }
+
+ public void initResourceTest () throws IOException, KustvaktException {
+ setInitialAccessScope();
+ resourceParser.run();
+ }
+
+ private void setInitialAccessScope () {
+ EnumSet<OAuth2Scope> scopes = EnumSet.allOf(OAuth2Scope.class);
+ accessScopeDao.storeAccessScopes(scopes);
+ }
+}
diff --git a/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2AuthorizationService.java b/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2AuthorizationService.java
index 06960bb..19cf2e1 100644
--- a/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2AuthorizationService.java
+++ b/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2AuthorizationService.java
@@ -160,7 +160,7 @@
* @param username
* @param clientId
* @param redirectUri
- * @param scopeSet
+ * @param scope
* @param code
* @param authenticationTime
* user authentication time
@@ -208,9 +208,6 @@
*
* @param client
* an OAuth2Client
- * @param hasRedirectUri
- * true if request contains redirect_uri, false
- * otherwise
* @param redirectUri
* the redirect_uri value
* @return a client's redirect URI
diff --git a/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2ScopeServiceImpl.java b/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2ScopeServiceImpl.java
index 56f0115..f8430aa 100644
--- a/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2ScopeServiceImpl.java
+++ b/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2ScopeServiceImpl.java
@@ -78,7 +78,7 @@
public Set<AccessScope> convertToAccessScope (String scopes)
throws KustvaktException {
- String[] scopeArray = scopes.split(" ");
+ String[] scopeArray = scopes.split("\\s+");
List<AccessScope> definedScopes = accessScopeDao.retrieveAccessScopes();
Set<AccessScope> requestedScopes =
new HashSet<AccessScope>(scopeArray.length);
diff --git a/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2TokenService.java b/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2TokenService.java
index 40ef907..70c9a0b 100644
--- a/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2TokenService.java
+++ b/full/src/main/java/de/ids_mannheim/korap/oauth2/service/OAuth2TokenService.java
@@ -449,6 +449,8 @@
* a user id
* @param authenticationTime
* the user authentication time
+ * @param client
+ * an OAuth2Client
* @return an {@link OAuthResponse}
* @throws OAuthSystemException
* @throws KustvaktException
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java
index 0686a89..a74d241 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java
@@ -40,6 +40,7 @@
import de.ids_mannheim.korap.web.filter.BlockingFilter;
import de.ids_mannheim.korap.web.utils.ResourceFilters;
import jakarta.servlet.http.HttpServletRequest;
+import jakarta.validation.constraints.NotEmpty;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.FormParam;
import jakarta.ws.rs.GET;
@@ -261,7 +262,8 @@
@ResourceFilters({APIVersionFilter.class})
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response requestAccessToken (@Context HttpServletRequest request,
- @FormParam("client_id") String clientId,
+ @NotEmpty @FormParam("grant_type") String grantType,
+ @NotEmpty @FormParam("client_id") String clientId,
@FormParam("client_secret") String clientSecret,
MultivaluedMap<String, String> form) {