diff options
Diffstat (limited to 'server/src/com/vaadin/ui')
-rw-r--r-- | server/src/com/vaadin/ui/LoginForm.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/server/src/com/vaadin/ui/LoginForm.java b/server/src/com/vaadin/ui/LoginForm.java index b1e4741450..9c131b9700 100644 --- a/server/src/com/vaadin/ui/LoginForm.java +++ b/server/src/com/vaadin/ui/LoginForm.java @@ -22,7 +22,8 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import com.vaadin.server.DynamicConnectorResource; +import com.vaadin.server.ConnectorResource; +import com.vaadin.server.ExternalResource; import com.vaadin.server.VaadinRequest; import com.vaadin.server.VaadinResponse; import com.vaadin.server.VaadinService; @@ -108,12 +109,22 @@ public class LoginForm extends CustomComponent { public LoginForm() { iframe.setType(Embedded.TYPE_BROWSER); iframe.setSizeFull(); - iframe.setSource(new DynamicConnectorResource(this, "login")); setSizeFull(); setCompositionRoot(iframe); addStyleName("v-loginform"); } + @Override + public void beforeClientResponse(boolean initial) { + // Generate magic URL now when UI id and connectorId are known + iframe.setSource(new ExternalResource( + ApplicationConstants.APP_PROTOCOL_PREFIX + + ApplicationConstants.APP_REQUEST_PATH + '/' + + ConnectorResource.CONNECTOR_REQUEST_PATH + + getUI().getUIId() + '/' + getConnectorId() + "/login")); + super.beforeClientResponse(initial); + } + /** * Returns byte array containing login page html. If you need to override * the login html, use the default html as basis. Login page sets its target |