Java Web应用程序如何限制对非管理员角色的安全页面的直接访问?例如,我在我的应用程序中有350-500个URL,我想隐藏其中的20-30个,并且仅允许访问它们以用于管理员角色。什么是解决这个问题的最佳方法?这种情况的最佳做法是什么?
我可能需要通过单个开始URI来获取组必需的URL吗?或者以某种方式使用web.xml
属性?或者在会话中使用保存角色并使用servlet过滤器就足够了?在这种情况下的问题是我需要整理每个安全URL。但是将来可能有很多......
我认为所有人都面临着这个问题。请给我这种情况的标准和简单的解决方案!提前谢谢!
我会很感激任何建议和提示!
答案 0 :(得分:1)
您可以尝试以下选项
只需将它们放在WEB-INF
无法直接从外界访问的地方。
是的,您可以按单个起始URI对必要的URL进行分组,可以按照上面的建议过滤过滤。
答案 1 :(得分:0)
你可以看看这里...... http://viralpatel.net/blogs/tutorial-java-servlet-filter-example-using-eclipse-apache-tomcat/
您需要以某种方式将它们分组到特定文件夹中。 比你应该在链接中创建一个过滤器..过滤器将获得模式/ admin /中的任何内容(假设您的页面将在那里)
在过滤器内部,您只需添加条件..
If(!admin) {
/Redirect to anywhere you want
}
你可以使用更像春天安全的更有吸引力的东西,这个东西会有内在的逻辑,你只需要设置你的角色..我认为这将是更好的解决方案,但如果你不熟悉Spring会花更多的时间
希望有所帮助
答案 2 :(得分:0)
对于一个非常简单的应用程序,它肯定会有点过分,但如果已经全部使用SpringFramework,你可以看一下Spring Security。它涉及许多可能的身份验证,并且可以有非常简单或非常复杂的授权规则。
Apache Shiro也是一种更简单(但功能更弱)的替代方案。