aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/api/resource
diff options
context:
space:
mode:
authorDan <djr2468@gmail.com>2023-04-01 22:41:36 +0100
committerDan <djr2468@gmail.com>2023-04-01 22:41:36 +0100
commit92ebe0adba132bed5499bc1624620afeea34e347 (patch)
tree90be8f16ba7a187e178d7c29b572313e32b32ff0 /src/main/java/org/traccar/api/resource
parentf8339b4ca0ca7440854f759b32b821afe19f458b (diff)
downloadtrackermap-server-92ebe0adba132bed5499bc1624620afeea34e347.tar.gz
trackermap-server-92ebe0adba132bed5499bc1624620afeea34e347.tar.bz2
trackermap-server-92ebe0adba132bed5499bc1624620afeea34e347.zip
Initial implementation
Diffstat (limited to 'src/main/java/org/traccar/api/resource')
-rw-r--r--src/main/java/org/traccar/api/resource/SessionResource.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/api/resource/SessionResource.java b/src/main/java/org/traccar/api/resource/SessionResource.java
index ff84c135f..ca9f37667 100644
--- a/src/main/java/org/traccar/api/resource/SessionResource.java
+++ b/src/main/java/org/traccar/api/resource/SessionResource.java
@@ -17,6 +17,7 @@ package org.traccar.api.resource;
import org.traccar.api.BaseResource;
import org.traccar.api.security.LoginService;
+import org.traccar.api.security.OpenIDProvider;
import org.traccar.api.signature.TokenManager;
import org.traccar.helper.DataConverter;
import org.traccar.helper.LogAction;
@@ -49,6 +50,7 @@ import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.security.GeneralSecurityException;
import java.util.Date;
+import java.net.URI;
@Path("session")
@Produces(MediaType.APPLICATION_JSON)
@@ -63,6 +65,9 @@ public class SessionResource extends BaseResource {
private LoginService loginService;
@Inject
+ private OpenIDProvider openIdProvider;
+
+ @Inject
private TokenManager tokenManager;
@Context
@@ -160,4 +165,24 @@ public class SessionResource extends BaseResource {
return tokenManager.generateToken(getUserId(), expiration);
}
+ @PermitAll
+ @Path("openid/auth")
+ @GET
+ public Response openIdAuth() throws IOException {
+ return Response.seeOther(
+ openIdProvider.createAuthRequest()
+ ).build();
+ }
+
+ @PermitAll
+ @Path("openid/callback")
+ @GET
+ public Response requestToken() throws IOException, StorageException {
+ // Get full request URI
+ StringBuilder requestURL = new StringBuilder(request.getRequestURL().toString());
+ String queryString = request.getQueryString();
+ String requestURI = requestURL.append('?').append(queryString).toString();
+
+ return openIdProvider.handleCallback(URI.create(requestURI), request);
+ }
}