因为当我在每个命令按钮的动作上使用page-redirect = true时,过滤器才能正常工作,我正在寻找一个可用的替代方案。
我现在拥有的是两个过滤器(效果不佳):
过滤器A - > / pages / * (过滤器检查用户是否已登录)
过滤器B - > / pages / restricted / * (过滤器检查用户是否具有管理员权限)
由于JSF的导航程序,它们不起作用,因为网址永远不会改变。
我的问题是:什么是没有过滤器重写页面访问的最佳解决方案(有一个易于使用的安全性(没有复杂的角色等.->一些用户只有isAdmin = true) ?或者当我使用重定向时根本没有问题?为什么jsf默认不使用它?
使用prerenderview组件是一种可以接受的解决方案吗? (如果用户没有足够的权限,他应该导航到404页面)
答案 0 :(得分:1)
你犯了一个根本性的错误。您不应该首先使用命令(POST)按钮/链接进行页面到页面导航,但是您应该使用直接(GET)按钮/链接。
长话短说:
考虑到这些信息和最佳实践,servlet过滤器仍然是最佳解决方案。所有现有的安全框架也都基于过滤原理。