Grails弹出安全问题,来自桌面应用程序的URL重定向

时间:2011-12-07 12:38:53

标签: grails spring-security

我遇到spring security core plugin

的问题

我有一个excel电子表格,一个单元格有一个指向我的webapp资源的链接(例如http://localhost:8080/myapp/item/1

如果我点击链接,它会打开浏览器(我已登录的位置),而不是转到我点击的网址,它会将我发送到家(默认目标网址)...

我已经更改了bean authenticationProcessingFilter并记录了doFilter中发生的事情,这就是我得到的

http://localhost:8080/myapp/item/1
E5E79669EBC938953AC6DCA4F1D38D56 <- this is the session id
false <- just printing if I'm logged in
http://localhost:8080/myapp/login/auth
1446A2704FC61E6304F0AC95F8BDAF22 <- this is the session id, and now is different
true <- just printing if I'm logged in
http://localhost:8080/myapp/home
1446A2704FC61E6304F0AC95F8BDAF22 <- this is the session id
true <- just printing if I'm logged in

我不知道它为什么会改变会话ID,这一切都发生在UsernamePasswordAuthenticationFilter的覆盖doFilter中

public class MyAuthFilter extends RequestHolderAuthenticationFilter {

   @Override
    public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
        HttpServletRequest r2 = (HttpServletRequest)request;
        println r2.getSession().getId();
        super.doFilter(request, response, chain);
    }
}

如何重定向到我点击的网址?

1 个答案:

答案 0 :(得分:0)

会话ID更改的原因是因为会话修复,感谢smakela

中的grails forum
  

更改会话ID的原因是为了防止“会话修复”。

     

http://en.wikipedia.org/wiki/Session_fixation

     

http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/19%20Session%20Fixation%20Prevention.html

好的,我可以修理它......

而不是去myapp / item / 1

我去了一个不安全的网址,比如myapp / item / load / 1

我点击了“加载项目”,然后通过javascript,重定向到myapp / item / 1

它有效!

感谢