Skip to content

Commit 2c20728

Browse files
committed
Fixed loginApiKey
1 parent d056f58 commit 2c20728

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

logicaldoc-core/src/main/java/com/logicaldoc/core/security/user/HibernateUserDAO.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ public List<User> findByName(String name) throws PersistenceException {
8484

8585
@Override
8686
public User findByUsername(String username) throws PersistenceException {
87+
if(StringUtils.isEmpty(username))
88+
return null;
89+
8790
User user = null;
8891
Map<String, Object> params = new HashMap<>();
8992
params.put(USERNAME, username);
@@ -97,6 +100,9 @@ public User findByUsername(String username) throws PersistenceException {
97100

98101
@Override
99102
public User findByUsernameIgnoreCase(String username) throws PersistenceException {
103+
if(StringUtils.isEmpty(username))
104+
return null;
105+
100106
User user = null;
101107
Map<String, Object> params = new HashMap<>();
102108
params.put(USERNAME, username.toLowerCase());

logicaldoc-webservice/src/main/java/com/logicaldoc/webservice/rest/endpoint/RestAuthService.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
import javax.ws.rs.QueryParam;
1212
import javax.ws.rs.core.MediaType;
1313

14+
import org.apache.commons.lang3.StringUtils;
1415
import org.slf4j.Logger;
1516
import org.slf4j.LoggerFactory;
1617

18+
import com.logicaldoc.core.security.SessionManager;
1719
import com.logicaldoc.core.security.authentication.AuthenticationException;
1820
import com.logicaldoc.webservice.model.WSCredentials;
1921
import com.logicaldoc.webservice.rest.AuthService;
@@ -38,7 +40,7 @@ public String login(@QueryParam("u")
3840
String password) throws AuthenticationException {
3941
return super.login(username, password);
4042
}
41-
43+
4244
@POST
4345
@Path("/loginForm")
4446
@Operation(operationId = "loginForm", summary = "Login with POST", description = "Deprecated, use loginApiKey instead")
@@ -58,12 +60,19 @@ public String loginForm(@FormParam("username")
5860
public String loginPostJSON(WSCredentials cred) {
5961
return super.login(cred.getUsername(), cred.getPassword());
6062
}
61-
63+
6264
@GET
6365
@Path("/loginApiKey")
6466
@Override
65-
public String loginApiKey(@HeaderParam("X-API-KEY") String apikey) {
66-
return super.loginApiKey(apikey);
67+
public String loginApiKey(@HeaderParam("X-API-KEY")
68+
String apikey) {
69+
// The header was already processed by the SessionFilter so we must
70+
// check the existing session first
71+
String sid = SessionManager.get().getSessionId(getCurrentRequest());
72+
if (StringUtils.isEmpty(sid))
73+
return super.loginApiKey(apikey);
74+
else
75+
return sid;
6776
}
6877

6978
@DELETE

0 commit comments

Comments
 (0)