我试图在tomcat6上为一个自动售卖的应用程序保护几个页面。除了两个URL(在下面的代码中标有两个星号)之外,我成功地对大多数URL使用了URL-pattern。这两个URL的不同之处在于它们采用决定视图的参数。我想限制这两个视图,因此已经指定了要阻止/保护/验证的确切URL,如下所示。但是tomcat并不能保证它们的安全。
<security-constraint>
<web-resource-collection>
<web-resource-name>TopBraid</web-resource-name>
<description>Restrict few pages that need security.</description>
<url-pattern>/tbl/admin/*</url-pattern>
<url-pattern>/tbl/sparql/*</url-pattern>
**<url-pattern>/tbl/swp?_viewClass=appConfig:ServerConfigEditor</url-pattern>**
**<url-pattern>/tbl/swp?_viewClass=adminConfig:AdminEditPage</url-pattern>**
<url-pattern>/tbl/sp_reset</url-pattern>
<url-pattern>/tbl/sp_redeploy</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>SERVER_ADMINS</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>SERVER_ADMINS</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>TopBraid</realm-name>
<form-login-config>
<form-login-page>/logon.html</form-login-page>
<form-error-page>/logonError.html</form-error-page>
</form-login-config>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>Public</web-resource-name>
<description>Matches any page.</description>
<url-pattern>/*</url-pattern>
</web-resource-collection>
</security-constraint>我知道JSR规范可能会将它们称为无效模式。想知道是否可以以某种方式指定模式,以便它是可接受的。或者,是否有其他方法可以限制对上面列出的两个URL的访问?
发布于 2013-03-01 06:11:39
限制对特定URL参数和它们的值的访问,就像您在上面的/tbl/swp?_viewClass=tblconfig:ConfigEditor /tbl/swp?_viewClass=admins:AdminsEditorPage中尝试做的那样,在web或应用服务器上是不可能的。这种类型的过滤/URL限制必须由应用程序本身通过为这些视图创建一个唯一的会话来执行。
当应用服务器解析传入的URL时,一旦到达第一个"?“,它们的工作就完成了。它是要传递给应用程序的第一个参数。从这里开始,任何类型的过滤/访问控制都必须由应用程序处理。
https://stackoverflow.com/questions/15144262
复制相似问题