2015-11-04 79 views
0

我使用j_security_check来验证我的Java EE Web应用程序。我有2组;我有2组;我有2组;用户和管理员。这两个组都在weg页面中拥有一个自己的文件夹;用户有“/安全”,管理员有“/ admin”。在用j_security_check验证一个人后,我希望根据他们的组重定向到他们关联的Web文件夹。现在他们只停留在登录页面。我的应用程序的身份验证部分工作正常,如果我以可以访问/安全但不是/ admin的用户身份登录,反之亦然。如何在j_security_check登录后重定向到url

这是可能的和如何?我没有在网上找到任何信息或解决方案。

编辑:也许一些解决方案方便的信息,我也在我的应用程序中使用JSF。但我不使用任何JSF登录。登录表单是纯粹的html与j_security_check的东西。

编辑2:我的主Web文件夹的根文件是登录页面。

回答

0

对于任何人想知道如何解决它的页面,我忘了在web.xml中指定的角色,就像这样:

<security-role> 
    <role-name>admin</role-name> 
</security-role> 
<security-role> 
    <role-name>skipper</role-name> 
</security-role> 

感谢@Franck花时间解决这个问题槽聊天!

2

您可以拥有一个纯粹的Web Servlet,它将处理不同角色之间的常见安全/登录路径(@WebServlet),并根据当前通过身份验证的用户的角色重定向到该页面。您可以使用HttpRequest.isUserInRole()的方法,然后你的用户重定向到你想要的(HttpResponse.sendRedirect()

+0

我在我的WebFilter上做了这件事我已经有:http://pastebin.com/JBd28jd9 它每次都在else语句中,角色名称是正确的,我在我的“glassfish-web.xml “ 我检查了我是否已通过身份验证,并可以访问允许使用经过身份验证的用户的当前角色查看的网页。 –

+0

WebFilter是否在安全的url上被触发? – Franck

+0

仅适用于“/”,“/login.xhtml","/login_error.xhtml”。因为我只需要将用户重定向到他们各自的“/ secure”或“/ admin”,即使他们已登录登录页面。 –