Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 身份验证webapp上按角色的shiro重定向_Java_Security_Login_Jax Rs_Shiro - Fatal编程技术网

Java 身份验证webapp上按角色的shiro重定向

Java 身份验证webapp上按角色的shiro重定向,java,security,login,jax-rs,shiro,Java,Security,Login,Jax Rs,Shiro,我们正在使用JAX-RS(Jersey)编写JavaWebApp,使用Shiro作为Sequerity 我们有: 3个不同的角色,每个角色都有自己的主页 所有用户的单一登录页面 用户登录时,如何根据身份验证后的角色将用户重定向到自己的主页 来自shiro ini的一些代码: authc.loginUrl = /login.html [urls] /apps/admin/** = authc, roles["admin"] /apps/teacher/** = authc, roles[te

我们正在使用JAX-RS(Jersey)编写JavaWebApp,使用Shiro作为Sequerity

我们有:

  • 3个不同的角色,每个角色都有自己的主页
  • 所有用户的单一登录页面
用户登录时,如何根据身份验证后的角色将用户重定向到自己的主页

来自shiro ini的一些代码:

authc.loginUrl = /login.html

[urls]
/apps/admin/** = authc, roles["admin"]
/apps/teacher/** = authc, roles[teacher]
/apps/student/** = authc, roles[student]
Ex:

  • 有人试图访问我们的webapp,他将被重定向到login.html
  • 输入用户名/密码后,他将根据角色重定向到自己的主页
    • /apps/admin/home.html(如果他具有管理员角色)
    • /apps/teacher/home.html(如果他有教师角色)
    • /apps/student/home.html(如果他有学生角色)

  • 我有同样的要求,我这样做

     if (currentUser.isAuthenticated()) {  
          if (currentUser.hasRole("admin")) {
              response.sendRedirect("app/admin/adminpage.jsp");
          }
          else if (currentUser.hasRole("student") || currentUser.hasRole("admin")) {           
             response.sendRedirect("app/student/studentpage.jsp");         
          }
         else if (currentUser.hasRole("teacher") || currentUser.hasRole("admin")) {      
             response.sendRedirect("app/teacher/teacherpage.jsp");
         }
      } 
     else {
             response.sendRedirect("app/login.jsp");
       }
    

    非常感谢。除了使用response.otherUrl)之外,我也是这样做的。我也为SAO aproach编辑了你的答案,如果错了,请纠正我。