2013-02-26 25 views
1

我构建了一个小样本应用程序,它结合了Spring Security和GWT以及其他一些功能。如何从GWT UI正确转发到Spring注销URL?

https://github.com/steinsag/gwt-maven-scala

登录和认证工作正常:您可以找到它。在生成的GWT页面中,我插入了注销链接。它应该指向Spring Security注销链接。我用following GWT code

Anchor logoutLink = new Anchor("Logout"); 
logoutLink.addClickHandler(new ClickHandler() { 
    @Override 
    public void onClick(ClickEvent event) { 
    Window.Location.assign("j_spring_security_logout"); 
    } 
}); 

如果用户点击该链接时,会被终止,用户将被注销。但是,用户不会转发到登录页面。我怎样才能做到这一点?据我所知,我无法在j_spring_security_logout之后将他转发到另一个URL。

任何想法如何实现?

+0

你为什么要用'Anchor'使用'ClickHandler'? “setHref”不够吗? – 2013-02-26 14:16:52

+0

@ThomasBroyer的确如此,我也改变了这种想法,但这不是解决整体问题的方法。 https://github.com/steinsag/gwt-maven-scala/commit/289cb8430834c092d35ac5461621f60f7abec0a0#L0R157 – Sebi 2013-02-26 16:37:00

回答

3

您可以在春季安全配置指定注销URL

<http auto-config='true'> 
... 
<logout logout-success-url="/login.jsp"/> 
... 
</http> 
+1

这样做。我把/ spring_security_login作为logout-success-url,现在可以按预期工作:https://github.com/steinsag/gwt-maven-scala/commit/289cb8430834c092d35ac5461621f60f7abec0a0#L1R16 – Sebi 2013-02-26 16:36:23

0

我正面临类似问题的种类虽然我j_spring_security_logout页面上找到解决方案获得404和浪费了太多的时间。如果有人遇到类似问题,请在此分享。我不得不改变

Window.Location.assign("j_spring_security_logout"); 

Window.Location.replace(GWT.getHostPageBaseURL()+"j_spring_security_logout"); 

和问题就解决了。