mirror of
https://github.com/moparisthebest/davmail
synced 2025-02-28 09:21:49 -05:00
Workaround for Exchange server misconfiguration: move galfind requests to mailPath or /exchange instead of /public
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@537 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
05d46b754d
commit
5fb8e919cc
@ -1733,10 +1733,23 @@ public class ExchangeSession {
|
|||||||
return buffer.toString();
|
return buffer.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build base path for cmd commands (galfind, gallookup).
|
||||||
|
* This does not work with freebusy, which requires /public/
|
||||||
|
* @return cmd base path
|
||||||
|
*/
|
||||||
|
public String getCmdBasePath() {
|
||||||
|
if (mailPath == null) {
|
||||||
|
return "/exchange/";
|
||||||
|
} else {
|
||||||
|
return mailPath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String getEmail(String alias) throws IOException {
|
public String getEmail(String alias) throws IOException {
|
||||||
String emailResult = null;
|
String emailResult = null;
|
||||||
if (alias != null) {
|
if (alias != null) {
|
||||||
String path = "/public/?Cmd=galfind&AN=" + URIUtil.encodeWithinQuery(alias);
|
String path = getCmdBasePath()+"?Cmd=galfind&AN=" + URIUtil.encodeWithinQuery(alias);
|
||||||
GetMethod getMethod = new GetMethod(path);
|
GetMethod getMethod = new GetMethod(path);
|
||||||
try {
|
try {
|
||||||
int status = httpClient.executeMethod(getMethod);
|
int status = httpClient.executeMethod(getMethod);
|
||||||
@ -1864,7 +1877,7 @@ public class ExchangeSession {
|
|||||||
*/
|
*/
|
||||||
public Map<String, Map<String, String>> galFind(String searchAttribute, String searchValue) throws IOException {
|
public Map<String, Map<String, String>> galFind(String searchAttribute, String searchValue) throws IOException {
|
||||||
Map<String, Map<String, String>> results;
|
Map<String, Map<String, String>> results;
|
||||||
GetMethod getMethod = new GetMethod(URIUtil.encodePathQuery("/public/?Cmd=galfind&" + searchAttribute + '=' + searchValue));
|
GetMethod getMethod = new GetMethod(URIUtil.encodePathQuery(getCmdBasePath()+"?Cmd=galfind&" + searchAttribute + '=' + searchValue));
|
||||||
try {
|
try {
|
||||||
int status = httpClient.executeMethod(getMethod);
|
int status = httpClient.executeMethod(getMethod);
|
||||||
if (status != HttpStatus.SC_OK) {
|
if (status != HttpStatus.SC_OK) {
|
||||||
@ -1882,7 +1895,7 @@ public class ExchangeSession {
|
|||||||
if (!disableGalLookup) {
|
if (!disableGalLookup) {
|
||||||
GetMethod getMethod = null;
|
GetMethod getMethod = null;
|
||||||
try {
|
try {
|
||||||
getMethod = new GetMethod(URIUtil.encodePathQuery("/public/?Cmd=gallookup&ADDR=" + person.get("EM")));
|
getMethod = new GetMethod(URIUtil.encodePathQuery(getCmdBasePath()+"?Cmd=gallookup&ADDR=" + person.get("EM")));
|
||||||
int status = httpClient.executeMethod(getMethod);
|
int status = httpClient.executeMethod(getMethod);
|
||||||
if (status != HttpStatus.SC_OK) {
|
if (status != HttpStatus.SC_OK) {
|
||||||
throw new IOException(status + "Unable to find users from: " + getMethod.getURI());
|
throw new IOException(status + "Unable to find users from: " + getMethod.getURI());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user