我隐藏了一些链接在我的webapp取决于用户角色...现在,例如我隐藏链接sample.jsp在我的用户角色等于1. Ofcourse这将隐藏,但如果此用户知道他可以链接最终去那个链接...如何配置这个?如何在JSP Web应用程序中保护链接?
回答
当有人访问该链接指向的URL时,检查它们是否已通过身份验证(如果没有,则向他们显示登录页面),并且如果他们被授权访问该页面的用户被授权访问该页面(如果没有,则显示他们一个错误消息解释并给他们“以不同的用户登录”的形式)。
昆汀建议应该做的,它可能是不够的,如果你正在开发一个演示应用程序,
但如果你是认真的在实现一个强大的身份验证和授权,那么你应该认真地给一个念头在学习任何开源安全框架。
这可以节省很多头痛,特别是如果您的自定义为您的应用程序构建安全性。
首先,选择一个安全框架,吸引你,如Apache四郎或Spring Security的建议,由Sudhakar。要了解不同的安全框架,您可能会喜欢Matt Raible在2011年的概述:Spring Security和Apache Shiro等等。
接下来,如果您选择了安全框架,那么您应该可以非常简单地关注Quentin的答案。
的非常基本方案将网页到基于角色的逻辑组(你shiuld有几个):例如,与路径/admin/users/edit
(和admin/...
)页面将着眼于人的作用管理员,/user/order/view
(和user/...
)对于注册用户等都是可见的。如果您想为特定用户角色提供页面部分,则需要更高级的设置,例如两个管理员都可以访问/user/edit
,但只有当前用户的角色等于管理员时才会呈现按钮删除。为了更多地保护应用程序,您选择的框架应该提供一种基于用户角色来保护业务逻辑方法的方法。如果您选择Shiro,可能还会有一些特殊标签来简化视图创建,如<shiro:hasRole>
。
但是,您的情况的基本解决方案是<h:link rendered="#{currentUser.roleOne}"/>
与后盾bean方法public boolean isRoleOne() { return role.equals("1"); }
。当然,它只会隐藏链接,但用户仍然可以通过它的URL访问该页面。所以,最终你最终会写一个Filter的样板代码,或者使用一个公认的安全框架提出的解决方案。
- 1. 保护Web应用程序
- 2. 如何在Web应用程序中设置XSRF保护?
- 3. 如何保护在Web应用程序中选定的页面
- 4. 如何在Web应用程序中保护HTML电子邮件?
- 5. 保护Asp.net Web窗体应用程序
- 6. 保护Web应用程序的WIFI
- 7. 保护iphone + web应用程序
- 8. 如何保护Web应用程序中的PDF文件
- 9. 我应该在Web应用程序中保护UI吗?
- 10. 如何保存数据库使用jsp的web应用程序
- 11. 如何开始使用OAuth来保护Web API应用程序?
- 12. 如何使用Azure Web应用程序的XSRF保护
- 13. 如何使用活动目录组保护Web应用程序?
- 14. 在Weblogic中保护Web应用程序中的URL模式
- 15. 在公共web应用程序上保护web方法
- 16. JSP Servlet Web应用程序
- 17. 如何保护许多java web应用程序
- 18. Web应用程序与OpenAM的安全性如何保护
- 19. 如何保护ASP.NET MVC Web应用程序?
- 20. 如何保护我的Java Web应用程序?
- 21. 如何保护web应用程序配置文件
- 22. 如何保护PHP的Web应用程序源代码
- 23. 如何密码保护应用程序
- 24. 如何保护HTML应用程序(HTA)?
- 25. 如何保护应用程序?
- 26. 如何保护Silverlight应用程序
- 27. 在Web应用程序中使用jdbc连接(jsp,Tomcat和MySQL)
- 28. 保护Android应用程序
- 29. 链接保护
- 30. 在Azure中保护Web应用程序不受访问
使用java脚本或jquery – 2013-02-10 13:13:07
@ShahidGhafoor - 你*不能*使用客户端代码来保护任何东西。客户端代码可以由访问者更改! – Quentin 2013-02-10 13:18:10
@Quentin同意了!但达到一定程度。 – 2013-02-10 13:29:08