Skip to content

Commit 568a2ff

Browse files
committed
[IMP]Use proper entry point for JSONRPC authentication
1 parent 183fe11 commit 568a2ff

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.odoojava</groupId>
77
<artifactId>odoo-java-api</artifactId>
8-
<version>3.2.2</version>
8+
<version>3.3.1</version>
99
<packaging>jar</packaging>
1010

1111
<name>odoo-java-api</name>

src/main/java/com/odoojava/api/Session.java

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import com.odoojava.api.OdooXmlRpcProxy.RPCProtocol;
3131
import com.odoojava.api.OdooXmlRpcProxy.RPCServices;
3232
import com.googlecode.jsonrpc4j.*;
33-
import com.googlecode.jsonrpc4j.JsonRpcClientException;
3433

3534
/**
3635
* *
@@ -183,11 +182,10 @@ public void startSession() throws Exception {
183182

184183
private void checkVersionCompatibility() throws XmlRpcException, OdooApiException {
185184

186-
if (this.getServerVersion().getMajor() < 8 || this.getServerVersion().getMajor() > 15) {
187-
throw new OdooApiException("Only Odoo Version from v8.x to 15.x are maintained. "
185+
if (this.getServerVersion().getMajor() < 8 || this.getServerVersion().getMajor() > 16) {
186+
throw new OdooApiException("Only Odoo Version from v8.x to 16.x are maintained. "
188187
+ "Please choose another version of the library");
189188
}
190-
191189
}
192190

193191
/**
@@ -222,12 +220,15 @@ int authenticate() throws XmlRpcException, Exception {
222220

223221
// JSONRPC part
224222
try {
225-
// id = authenticate_json_rpc();
223+
id = authenticate_json_rpc();
226224
System.out.println("json rpc login");
227225

228226
} catch (JsonRpcClientException e) {
229-
System.out.println("Json rpc issue possibly caused by https://github.com/OCA/server-tools/issues/1237");
230-
e.printStackTrace();
227+
if (this.getServerVersion().getMajor() == 10){
228+
System.out.println("ODOO 10.0 : Json rpc issue possibly caused by https://github.com/OCA/server-tools/issues/1237");
229+
e.printStackTrace();
230+
System.out.println("ODOO 10.0 : if the trace match the issue, you could ignore this message");
231+
}
231232
} catch (Throwable e) {
232233
System.out.println("General exception");
233234
e.printStackTrace();
@@ -246,17 +247,21 @@ private int authenticate_json_rpc() throws Throwable {
246247
// TODO: fast and uggly implementation of json rpc, has to be refactored in the
247248
// future
248249

249-
Map<String, String> articleMapOne = new HashMap<>();
250-
articleMapOne.put("password", password);
251-
articleMapOne.put("login", userName);
252-
articleMapOne.put("db", databaseName);
250+
jsonclient.setServiceUrl(getJsonurl("jsonrpc"));
251+
Map<String, Object> jsonparams = new HashMap<>();
252+
jsonparams.put("service", "common");
253+
jsonparams.put("method", "login");
253254

254-
// Object[] result = call_json_rpc(, "common", "login", articleMapOne);
255+
ArrayList<Object> methodparams = new ArrayList<>();
256+
methodparams.add(databaseName);
257+
methodparams.add(userName);
258+
methodparams.add(password);
259+
jsonparams.put("args", methodparams);
255260

256-
jsonclient.setServiceUrl(getJsonurl("web/session/authenticate"));
261+
int result = jsonclient.invoke("call", jsonparams, int.class);
257262

258-
Map<String, Object> result = jsonclient.invoke("call", articleMapOne, HashMap.class);
259-
return (int) result.get("uid");
263+
return (int) result;
264+
260265
}
261266

262267
public Object[] call_report_jsonrpc(String reportModel, String reportMethod, ArrayList<Object> args)

0 commit comments

Comments
 (0)