【问题标题】:About apache shiro filters关于 apache shiro 过滤器
【发布时间】:2014-06-17 19:59:46
【问题描述】:

我有一个站点。我在这个站点中使用 apache shiro。我有一个问题。输入是从登录页面完成的。但是如果你登录,我想限制对这个页面的访问。页面应该告诉“嘿,伙计!你已经登录了”然后引导到另一个页面(for.ex:home.jsf)。如何使用 shiro 网络过滤器进行转发? shiro.ini

[urls]
/login.xhtml = anon

【问题讨论】:

    标签: jsf shiro


    【解决方案1】:

    在此处阅读教程:

    http://shiro.apache.org/webapp-tutorial.html

    将您的 ini 更改为:

    [main]
    shiro.loginUrl = /login.xhtml
    
    [urls]
    /login.xhtml = authc
    

    如果您想在用户已经登录时重定向,您可以在 servlet 或过滤器中使用以下 Java 代码来执行此操作:

    if (SecurityUtils.getSubject().isAuthenticated()){
        response.sendRedirect(request.getContextPath() + "/home.jsf");
    }
    

    欲了解更多详情,请查看此帖子:How to redirect already authenticated user from login page to home page

    【讨论】:

    • 感谢您的回复。但我又遇到了同样的问题。假设您登录 (localhost:8080/login.jsf) 并重定向到 home.jsf。登录时再次手动打开相同的 url (localhost:8080/login.jsf)。你面对的是同一个屏幕。你说“但我登录了?发生了什么?我仍然没有注销。你要我重新登录吗?”如果您再次登录并且由于您的会话没有关闭而在同一屏幕上没有任何反应。如果您登录,我希望在您注销之前永远不要打开该页面。我该怎么办?我为我糟糕的英语道歉。
    • 在答案中添加了额外信息
    • stackoverflow.com/questions/8399045/… 非常感谢它的快速解决方案
    猜你喜欢
    • 2017-03-17
    • 2015-11-17
    • 2014-02-19
    • 2019-01-04
    • 2012-12-28
    • 2018-01-25
    • 2018-05-28
    • 2014-11-23
    • 2022-12-11
    相关资源
    最近更新 更多