Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
如何保护JSP web应用程序中的链接?_Jsp_Jakarta Ee_Servlets_Authorization_Security - Fatal编程技术网

如何保护JSP web应用程序中的链接?

如何保护JSP web应用程序中的链接?,jsp,jakarta-ee,servlets,authorization,security,Jsp,Jakarta Ee,Servlets,Authorization,Security,我正在根据用户角色在我的webapp中隐藏一些链接…例如,现在我在我的用户中隐藏链接sample.jsp,角色等于1。当然,这将隐藏,但如果该用户知道该链接,他最终可以访问该链接…如何配置此链接?当有人访问该链接指向的URL时,检查他们是否已通过身份验证(如果未通过身份验证,则向他们显示登录页面),以及他们被身份验证的用户是否有权访问该页面(如果没有,则向他们显示一条错误消息,解释这一点,并向他们提供“以其他用户身份登录”表单)。当有人访问链接指向的URL时,检查他们是否已通过身份验证(如果没有

我正在根据用户角色在我的webapp中隐藏一些链接…例如,现在我在我的用户中隐藏链接sample.jsp,角色等于1。当然,这将隐藏,但如果该用户知道该链接,他最终可以访问该链接…如何配置此链接?

当有人访问该链接指向的URL时,检查他们是否已通过身份验证(如果未通过身份验证,则向他们显示登录页面),以及他们被身份验证的用户是否有权访问该页面(如果没有,则向他们显示一条错误消息,解释这一点,并向他们提供“以其他用户身份登录”表单)。

当有人访问链接指向的URL时,检查他们是否已通过身份验证(如果没有,则向他们显示登录页面),以及他们被身份验证的用户是否有权访问该页面(如果没有,请向他们显示一条错误消息,解释这一点,并给他们一张“以其他用户身份登录”的表单)。

昆汀的建议应该可以,如果你正在开发一个演示应用程序

但是,如果您认真考虑实现健壮的身份验证和授权,那么您应该认真考虑学习任何开源安全框架

这可以避免很多麻烦,特别是如果你的自定义应用程序建立了安全性

  • 贾斯|


昆廷的建议应该可以,如果你正在开发一个演示应用程序

但是,如果您认真考虑实现健壮的身份验证和授权,那么您应该认真考虑学习任何开源安全框架

这可以避免很多麻烦,特别是如果你的自定义应用程序建立了安全性

  • 贾斯|


首先,选择一个对您有吸引力的安全框架,如Sudhakar提出的ApacheShiro或Spring security。要了解不同的安全框架,您可能会喜欢Matt Raible对2011年的概述

接下来,如果选择安全框架,您应该能够非常简单地遵循Quentin的答案

最基本的方案是根据角色(您可以有一些角色)将页面划分为逻辑组:例如,具有路径
/admin/users/edit
(和
admin/…
)的页面将针对具有管理员角色的人,
/user/order/view
(和
user/…
)将对注册用户可见,等等。如果您希望为特定用户角色呈现页面的各个部分,则需要更高级的设置,例如两个管理员都有权访问
/user/edit
,但只有当当前用户的角色等于administrator时,才会呈现“删除”按钮。要更安全地保护应用程序,请执行以下操作:,您选择的框架应该提供一种基于用户角色保护业务逻辑方法的方法。如果您选择Shiro,还可能有一些特殊的标记来简化视图创建,如


但是解决这种情况的基本方法是使用支持bean方法
公共布尔isRoleOne(){return role.equals(“1”);}
。当然,它只会隐藏链接,但用户仍然可以通过其url访问该页面。因此,最终您将要么编写过滤器的样板代码,要么使用公认的安全框架提出的解决方案。

首先,选择一个对您有吸引力的安全框架,如Apache Shiro或Spring Security,由Sudhakar提出。要了解不同的安全框架,您可能会喜欢Matt Raible对2011年的概述:以及其他

接下来,如果选择安全框架,您应该能够非常简单地遵循Quentin的答案

最基本的方案是根据角色(您可以有一些角色)将页面划分为逻辑组:例如,具有路径
/admin/users/edit
(和
admin/…
)的页面将针对具有管理员角色的人,
/user/order/view
(和
user/…
)将对注册用户可见,等等。如果您希望为特定用户角色呈现页面的各个部分,则需要更高级的设置,例如两个管理员都有权访问
/user/edit
,但只有当当前用户的角色等于administrator时,才会呈现“删除”按钮。要更安全地保护应用程序,请执行以下操作:,您选择的框架应该提供一种基于用户角色保护业务逻辑方法的方法。如果您选择Shiro,还可能有一些特殊的标记来简化视图创建,如


但是解决这种情况的基本方法是使用支持bean方法
公共布尔isRoleOne(){return role.equals(“1”);}
。当然,它只会隐藏链接,但用户仍然可以通过其url访问该页面。因此,您最终将要么编写过滤器的样板代码,要么使用公认的安全框架提出的解决方案。

使用java脚本或jquery@ShahidGhafoor-您不能使用客户端代码来你什么都可以。客户端代码可以由访问者更改!@Quentin同意!但要达到某种程度。在索引页上设置一个条件,如果角色!=1,则访问,否则重定向,easy:)通过示例查看此答案:使用java脚本或jquery@ShahidGhafoor-您不能使用客户端代码来保护任何内容。客户端代码可以由访问者更改!@Quentin同意!但在某种程度上可以更改。在索引页上设置一个条件,如果角色!=1,则访问否则重定向,easy:)通过示例查看此答案: