繁体   English   中英

web.xml中的服务器端重定向?

[英]Server-side redirection in web.xml?

我想知道如何使用GWT隐藏存储在服务器上的某些文件。 我有密码等数据库,我需要将用户从数据库重定向到其他页面。 我该怎么做呢?

我已经尝试在web.xml中更改内容:

<servlet-mapping>
    <servlet-name>SomeServer</servlet-name>
    <url-pattern>/actual_url</url-pattern>
    <url-pattern>/database1.db</url-pattern>
    <url-pattern>/database2.db</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>SomeServer</servlet-name>
    <url-pattern>/actual_url</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>SomeServer</servlet-name>
    <url-pattern>/database1.db</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>SomeServer</servlet-name>
    <url-pattern>/database2.db</url-pattern>
</servlet-mapping>

两者都允许在actual_url上访问servlet,但我仍然可以访问database1.db和database2.db。

我知道我可以使用.htaccess为Apache隐藏这些文件,但我更喜欢GWT解决方案。 有人有什么主意吗?

此外,如果任何人都可以找到web.xml的引用,将非常感谢。 我搜索了一下,却一无所获。

编辑:经过一些测试后,我发现有时第二种方法有时会起作用,有时则不然。 不知道为什么或在什么情况下。

如果您不希望客户端访问某些文件,最好的方法是不要部署它们,或将它们部署在war的WEB-INFMETA-INF特殊文件夹中。

如果必须在WEB-INF之外部署它们,则可以使用security-constraints来限制对它们的访问:

<security-constraint>
   <display-name>Denied</display-name>
   <web-resource-collection>
      <web-resource-name/> <!-- mandatory, but can be empty -->
      <url-pattern>/database1.db</url-pattern>
      <url-pattern>/database2.db</url-pattern>
      <!-- alternatively, you could simply use:
         <url-pattern>*.db</url-pattern>
      -->
   </web-resource-collection>
   <auth-constraint>
      <!-- an empty but not absent auth-constraint denies everyone -->
   </auth-constraint>
</security-constraint>

请注意,如果您使用的是AppEngine,则会专门提供静态文件,除非您在appengine-web.xml列出,否则您的web.xml不适用于它们(请参阅http://code.google.com中的注释) /appengine/docs/java/config/webxml.html#Servlets_and_URL_Paths ,并参阅http://code.google.com/appengine/docs/java/config/appconfig.html#Including_and_Excluding_Files

就我而言,GWT的服务器端代码是纯Java EE。 所以看来,您只需要查看Java EE规范就可以找到答案。
另一个建议是在单独的应用程序中部署数据库访问servlet。 这将允许您使用另一个服务器(真实或虚拟)并以这种方式设置其连接属性,除了您可以访问它之外的任何其他人。
祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM