aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/api/resource
diff options
context:
space:
mode:
authorDan <djr2468@gmail.com>2023-04-03 12:12:38 +0100
committerDan <djr2468@gmail.com>2023-04-03 12:12:38 +0100
commitfaf5567add4cf343cc38b3c7dcb297c7cbed88bc (patch)
tree22e6f9e9559883f31ab9812e437f43a10e143822 /src/main/java/org/traccar/api/resource
parent2cc1cb3c7530fdabb750a9e0b5cc26e3e2286185 (diff)
downloadtrackermap-server-faf5567add4cf343cc38b3c7dcb297c7cbed88bc.tar.gz
trackermap-server-faf5567add4cf343cc38b3c7dcb297c7cbed88bc.tar.bz2
trackermap-server-faf5567add4cf343cc38b3c7dcb297c7cbed88bc.zip
First pass
Diffstat (limited to 'src/main/java/org/traccar/api/resource')
-rw-r--r--src/main/java/org/traccar/api/resource/ServerResource.java7
-rw-r--r--src/main/java/org/traccar/api/resource/SessionResource.java26
2 files changed, 15 insertions, 18 deletions
diff --git a/src/main/java/org/traccar/api/resource/ServerResource.java b/src/main/java/org/traccar/api/resource/ServerResource.java
index 4b7ee9189..9b4d82a66 100644
--- a/src/main/java/org/traccar/api/resource/ServerResource.java
+++ b/src/main/java/org/traccar/api/resource/ServerResource.java
@@ -16,6 +16,7 @@
package org.traccar.api.resource;
import org.traccar.api.BaseResource;
+import org.traccar.database.OpenIdProvider;
import org.traccar.helper.model.UserUtil;
import org.traccar.mail.MailManager;
import org.traccar.geocoder.Geocoder;
@@ -57,6 +58,10 @@ public class ServerResource extends BaseResource {
@Inject
@Nullable
+ private OpenIdProvider openIdProvider;
+
+ @Inject
+ @Nullable
private Geocoder geocoder;
@PermitAll
@@ -65,6 +70,8 @@ public class ServerResource extends BaseResource {
Server server = storage.getObject(Server.class, new Request(new Columns.All()));
server.setEmailEnabled(mailManager.getEmailEnabled());
server.setGeocoderEnabled(geocoder != null);
+ server.setOpenIdEnabled(openIdProvider != null);
+ server.setOpenIdForce(openIdProvider != null && openIdProvider.force);
User user = permissionsService.getUser(getUserId());
if (user != null) {
if (user.getAdministrator()) {
diff --git a/src/main/java/org/traccar/api/resource/SessionResource.java b/src/main/java/org/traccar/api/resource/SessionResource.java
index 515d7374a..3de20b8c7 100644
--- a/src/main/java/org/traccar/api/resource/SessionResource.java
+++ b/src/main/java/org/traccar/api/resource/SessionResource.java
@@ -17,8 +17,8 @@ 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.database.OpenIdProvider;
import org.traccar.helper.DataConverter;
import org.traccar.helper.LogAction;
import org.traccar.helper.ServletHelper;
@@ -28,6 +28,7 @@ import org.traccar.storage.query.Columns;
import org.traccar.storage.query.Condition;
import org.traccar.storage.query.Request;
+import com.nimbusds.oauth2.sdk.ParseException;
import javax.annotation.security.PermitAll;
import javax.inject.Inject;
import javax.servlet.http.Cookie;
@@ -65,7 +66,7 @@ public class SessionResource extends BaseResource {
private LoginService loginService;
@Inject
- private OpenIDProvider openIdProvider;
+ private OpenIdProvider openIdProvider;
@Inject
private TokenManager tokenManager;
@@ -169,28 +170,17 @@ public class SessionResource extends BaseResource {
@Path("openid/auth")
@GET
public Response openIdAuth() throws IOException {
- if (openIdProvider == null) {
- throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).build());
- }
-
- return Response.seeOther(
- openIdProvider.createAuthRequest()
- ).build();
+ return Response.seeOther(openIdProvider.createAuthUri()).build();
}
@PermitAll
@Path("openid/callback")
@GET
- public Response requestToken() throws IOException, StorageException {
- if (openIdProvider == null) {
- throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).build());
- }
-
- // Get full request URI
- StringBuilder requestURL = new StringBuilder(request.getRequestURL().toString());
+ public Response requestToken() throws IOException, StorageException, ParseException {
+ StringBuilder requestUrl = new StringBuilder(request.getRequestURL().toString());
String queryString = request.getQueryString();
- String requestURI = requestURL.append('?').append(queryString).toString();
+ String requestUri = requestUrl.append('?').append(queryString).toString();
- return openIdProvider.handleCallback(URI.create(requestURI), request);
+ return openIdProvider.handleCallback(URI.create(requestUri), request);
}
}