diff options
author | Abyss777 <abyss@fox5.ru> | 2016-11-18 18:08:52 +0500 |
---|---|---|
committer | Abyss777 <abyss@fox5.ru> | 2016-11-18 18:08:52 +0500 |
commit | 670c8c7041163a2232d3edb4ef413af70182ea0a (patch) | |
tree | b18b1aa0b18709d1b75aa3f78c69264daca7f060 /src/org/traccar/api | |
parent | c9b67d19132b687bea9130f39f13a5515b120e5e (diff) | |
download | traccar-server-670c8c7041163a2232d3edb4ef413af70182ea0a.tar.gz traccar-server-670c8c7041163a2232d3edb4ef413af70182ea0a.tar.bz2 traccar-server-670c8c7041163a2232d3edb4ef413af70182ea0a.zip |
- Flip user-token map
- Fix null check
- Combine validation to setter
Diffstat (limited to 'src/org/traccar/api')
-rw-r--r-- | src/org/traccar/api/resource/SessionResource.java | 5 | ||||
-rw-r--r-- | src/org/traccar/api/resource/UserResource.java | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/org/traccar/api/resource/SessionResource.java b/src/org/traccar/api/resource/SessionResource.java index 6c5263123..db8a5c837 100644 --- a/src/org/traccar/api/resource/SessionResource.java +++ b/src/org/traccar/api/resource/SessionResource.java @@ -29,6 +29,7 @@ import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -48,7 +49,7 @@ public class SessionResource extends BaseResource { @PermitAll @GET - public User get() throws SQLException { + public User get(@QueryParam("token") String token) throws SQLException { Long userId = (Long) request.getSession().getAttribute(USER_ID_KEY); if (userId == null) { Cookie[] cookies = request.getCookies(); @@ -69,7 +70,7 @@ public class SessionResource extends BaseResource { userId = user.getId(); request.getSession().setAttribute(USER_ID_KEY, userId); } - } else if (request.getParameter("token") != null) { + } else if (token != null) { User user = Context.getPermissionsManager().getUserByToken(request.getParameter("token")); if (user != null) { userId = user.getId(); diff --git a/src/org/traccar/api/resource/UserResource.java b/src/org/traccar/api/resource/UserResource.java index 094de2812..2ff1639f6 100644 --- a/src/org/traccar/api/resource/UserResource.java +++ b/src/org/traccar/api/resource/UserResource.java @@ -67,7 +67,8 @@ public class UserResource extends BaseResource { || old.getReadonly() != entity.getReadonly() || old.getDisabled() != entity.getDisabled() || old.getDeviceLimit() != entity.getDeviceLimit() - || !old.getToken().equals(entity.getToken())) { + || old.getToken() == null && entity.getToken() != null + || old.getToken() != null && !old.getToken().equals(entity.getToken())) { Context.getPermissionsManager().checkAdmin(getUserId()); } else { Context.getPermissionsManager().checkUser(getUserId(), entity.getId()); |