使用 Spring Security 登录后重定向到不同的页面

Posted

技术标签:

【中文标题】使用 Spring Security 登录后重定向到不同的页面【英文标题】:Redirect to different pages after Login with Spring Security 【发布时间】:2014-07-11 20:43:42 【问题描述】:

如何在登录后将不同类型的用户重定向到不同的页面。 例如,将标准用户重定向到 /homepage.html 页面,将管理员用户重定向到 /admin.html 页面。 请注意,我使用的是 struts2、spring、hibernate 和 spring security。 任何帮助表示赞赏。

【问题讨论】:

redirect to a special space following the role of user spring security 的可能重复项 创建自定义身份验证成功处理程序。 我正在尝试这样做,但它对我不起作用我将在答案中添加代码 如果它不起作用,请将其添加到您的问题中。并且不要多次问同一个问题。 【参考方案1】:

MyAction.class

public String execute() throws Exception 
    if(user=="home_user")
      return "home";
   else if(user=="admin_user")
     return "admin";
   else
      return "guest";
   

你的 struts.xml

<action name="login" class="controller.MyAction">
    <result name="home">home.jsp</result>
    <result name="admin">admin.jsp</result>
    <result name="guest">guest.jsp</result>
</action>

试试吧..

【讨论】:

【参考方案2】:

您可以执行类似自定义loginInterceptor 之类的操作,它会检查有效登录,然后返回不同的Action.SUCCESS_ADMIN,这会将您重定向到您想要的页面

<action name="login" class="login">
        <result name="success">home.jsp</result>
        <result name="sucess_admin> admin.html>
        <interceptor-ref name="loginInterceptor"></interceptor-ref>
    </action>

你的行为的定义显然与我的行为有所不同,那只是我从我的项目中获取的一个,以进一步解释我的建议。

【讨论】:

以上是关于使用 Spring Security 登录后重定向到不同的页面的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Security 中的 SSO 登录后重定向我的上一页?

Grails 2 Spring Security Plugin - 成功登录后重定向到 /login/denied

登录后重定向到自定义网址

Spring Security:登录后如何重定向到 REST url

Grails 和 Spring Security 插件:基于角色登录时重定向用户

会话超时后重定向(Grails、Spring Security Core、Tomcat)