private static boolean showNewWindowOption = true;
public MantleLoginDialog() {
super( Messages.getString( "login" ), Messages.getString( "login" ), Messages.getString( "cancel" ), false, true ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
IDialogCallback myCallback = new IDialogCallback() {
public void cancelPressed() {
}
@SuppressWarnings( "deprecation" )
public void okPressed() {
String path = Window.Location.getPath();
if ( !path.endsWith( "/" ) ) { //$NON-NLS-1$
path = path.substring( 0, path.lastIndexOf( "/" ) + 1 ); //$NON-NLS-1$
}
RequestBuilder builder = new RequestBuilder( RequestBuilder.POST, path + "j_spring_security_check" ); //$NON-NLS-1$
builder.setHeader( "Content-Type", "application/x-www-form-urlencoded" ); //$NON-NLS-1$ //$NON-NLS-2$
builder.setHeader( "If-Modified-Since", "01 Jan 1970 00:00:00 GMT" );
RequestCallback callback = new RequestCallback() {
public void onError( Request request, Throwable exception ) {
outerCallback.onFailure( exception );
}
public void onResponseReceived( Request request, Response response ) {
try {
final String url = GWT.getHostPageBaseURL() + "api/mantle/isAuthenticated"; //$NON-NLS-1$
RequestBuilder requestBuilder = new RequestBuilder( RequestBuilder.GET, url );
requestBuilder.setHeader( "accept", "text/plain" );
requestBuilder.setHeader( "If-Modified-Since", "01 Jan 1970 00:00:00 GMT" );
requestBuilder.sendRequest( null, new RequestCallback() {
public void onError( Request request, final Throwable caught ) {
MessageDialogBox errBox =
new MessageDialogBox(
Messages.getString( "loginError" ), Messages.getString( "authFailed" ), false, false, true ); //$NON-NLS-1$ //$NON-NLS-2$
errBox.setCallback( new IDialogCallback() {
public void cancelPressed() {
}
public void okPressed() {
outerCallback.onFailure( caught );
}
} );
errBox.show();
}
public void onResponseReceived( Request request, Response response ) {
if ( "true".equalsIgnoreCase( response.getText() ) ) {
long year = 1000 * 60 * 60 * 24 * 365;
// one year into the future
Date expirationDate = new Date( System.currentTimeMillis() + year );
Cookies.setCookie( "loginNewWindowChecked", "" + newWindowChk.getValue(), expirationDate ); //$NON-NLS-1$ //$NON-NLS-2$
outerCallback.onSuccess( newWindowChk != null && newWindowChk.getValue() );
} else {
outerCallback.onFailure( new Throwable( Messages.getString( "authFailed" ) ) ); //$NON-NLS-1$
}
}
} );
} catch ( final RequestException e ) {
MessageDialogBox errBox =
new MessageDialogBox(
Messages.getString( "loginError" ), Messages.getString( "authFailed" ), false, false, true ); //$NON-NLS-1$ //$NON-NLS-2$
errBox.setCallback( new IDialogCallback() {
public void cancelPressed() {
}
public void okPressed() {
outerCallback.onFailure( e );