@jaricardodev/ews-javascript-api
Version:
EWS Managed api in JavaScript
48 lines (43 loc) • 2.6 kB
text/typescript
import {base64Helper, StringHelper} from "../ExtensionMethods";
import {Uri} from "../Uri";
import {IXHROptions} from "../Interfaces";
export abstract class ExchangeCredentials {
//NeedSignature: boolean;
static WsSecurityPathSuffix: string = "/wssecurity";
UserName: string = null;
/** Hiding password field from console.log */
getPassword: () => string;
setPassword: (value: string) => void;
get Password(): string { return this.getPassword(); }
set Password(value: string) { this.setPassword(value); }
constructor();
constructor(userName: string, password: string)
constructor(userName: string = null, password: string = null) {
if (arguments.length > 0 && (StringHelper.IsNullOrEmpty(userName) || StringHelper.IsNullOrEmpty(password))) {
throw new Error("ExchangeCredentials.ctor, must provide username and password value.")
}
this.UserName = userName;
var pwd = password;
this.setPassword = (value) => { pwd = value; };
this.getPassword = () => { return pwd; }
//this.Password = password;
}
AdjustUrl(url: Uri): Uri { return new Uri(ExchangeCredentials.GetUriWithoutSuffix(url)); }
EmitExtraSoapHeaderNamespaceAliases(writer: any /*System.Xml.XmlWriter*/): void { /*implemented by derived classes*/ }
static GetUriWithoutSuffix(url: Uri): string {
var absoluteUri: string = url.AbsoluteUri;
//ref: can not use WSSecurityBasedCredentials.WsSecurityPathSuffix, creates circular reference.
var index = absoluteUri.toUpperCase().indexOf(/*WSSecurityBasedCredentials*/ExchangeCredentials.WsSecurityPathSuffix.toUpperCase());//, StringComparison.OrdinalIgnoreCase);
if (index != -1) {
return absoluteUri.substring(0, index);
}
return absoluteUri;
}
//PreAuthenticate(): any{ throw new Error("ExchangeCredentials.ts - PreAuthenticate : Not implemented.");}
PrepareWebRequest(request: IXHROptions /*IEwsHttpWebRequest*/): void {
request.headers["Authorization"] = "Basic " + base64Helper.btoa(this.UserName + ":" + this.Password);
}
SerializeExtraSoapHeaders(writer: any /*System.Xml.XmlWriter*/, webMethodName: string): void { /*implemented by derived classes*/ }
//SerializeWSSecurityHeaders(writer: System.Xml.XmlWriter): any{ throw new Error("ExchangeCredentials.ts - SerializeWSSecurityHeaders : Not implemented.");}
//Sign(memoryStream: any): any{ throw new Error("ExchangeCredentials.ts - Sign : Not implemented.");}
}