【问题标题】:Shiro Success Redirect to a New URLShiro 成功重定向到新 URL
【发布时间】:2014-05-29 15:59:16
【问题描述】:

我在我的项目中使用 shiro 进行身份验证

下面是代码

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager" />
        <property name="filterChainDefinitions">
            <value>
                [main]
                authc.loginUrl = /login.jsp
                authc.successUrl = /dashboard
                authc.failureKeyAttribute = shiroLoginFailure
                [roles]
                ROLE_ADMIN = *
                [urls]
                /static/** = anon
                /** = authc
            </value>
        </property>
    </bean>

现在 shiro 所做的是在身份验证成功后将用户定向到同一个应用程序中存在的 URL ...我想将其定向到其他一些 Web 应用程序,例如 www.facebook.com ...任何人都可以告诉我怎么了??

【问题讨论】:

    标签: java authentication redirect shiro


    【解决方案1】:

    你可以做的只是让它登陆一个执行重定向的 servlet

    public class RedirectServlet extends HttpServlet {
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   
            response.sendRedirect("http://www.facebook.com");
        }
    }
    

    将其映射到成功页面:

    <servlet>
        <servlet-name>RedirectServlet</servlet-name>
        <servlet-class>packagename...RedirectServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>RedirectServlet</servlet-name>
        <url-pattern>/dashboard</url-pattern>
    </servlet-mapping>
    

    【讨论】:

    • 嗨 Wouter,我按照您指定的方式进行了尝试,但 securityShiro.xml 不接受 servlet 标记,如果我在 web.xml 中放置相同的标记,它不会被重定向..所以我尝试通过HandlerInterceptor 还是没有成功
    • servlet 没有被调用,但默认的 shiro 处理程序处理所有请求。假设我将 www.facebook.com 提供为 redirectTo,那么应用程序将作为 localhost:9090/authPlat/www.facebook.com
    猜你喜欢
    • 2018-05-28
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 2012-10-17
    • 2017-02-22
    • 1970-01-01
    • 2011-08-06
    • 2015-11-11
    相关资源
    最近更新 更多