我不希望用户能够在ORDS网址中看到上下文或架构名称。
在Oracle文档中,我的URL是这样的:
https://server:port/ords/workspace/hr/employees/7369
请注意架构名称HR已存在。我的目标是隐藏ORDS,工作空间和人力资源。所以我的网址应该是:
https://server:port/redirect_name/employees/7369
我不想要的是更新浏览器栏的HTTP 301重定向。
尝试过的事情
1)ROT中的UrlRewriteFilter,但类型="重定向"它只重定向并泄漏上下文。没有type ="重定向" yield"请求的资源不可用。"来自Tomcat,显然甚至无法进入ORDS。
2)JSP重定向
<% response.sendRedirect("/some/where"); %>
成功重定向,但泄漏了上下文。
3)Tomcat&#34;重写Valve&#34;再次相同的结果成功301型重定向。
未尝试
1)具有Apache httpd实例的前端Tomcat。
答案 0 :(得分:2)
答案仅适用于ORDS 3.0.9。 README描述了:
这不是一个完整的答案,但它是我设法得到的最接近的答案。首先将ords.war文件重命名为所需的redirect_name.war这将自动为数据库连接创建一个新的配置目录,但尚未设置。选项是使用:
安装redirect_name.warjava -jar redirect_name.war install simple
或手动编辑配置文件以匹配您已有的ORDS设置。有两种方法可以找到配置目录
java -jar redirect_name.war configdir
将为您提供配置目录,或者您可以在以下位置进行检查:
.\webapps\redirect_name\WEB-INF\web.xml
使用param名称假设Tomcat配置为解压缩WAR,否则查看压缩的WAR归档本身。
此时网址已更改为:
https://server:port/ords/workspace/hr/employees/7369
到此:
https://server:port/redirect_name/workspace/hr/employees/7369
下一步是设置一个map-url,可以使用:
完成java -jar redirect_name.war mapurl --type base-path --workspace-id hr / apex
或通过手动创建上面找到的url-mapping.xml文件。如果手动创建文件,它应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<pool-config xmlns="http://xmlns.oracle.com/apex/pool-config">
<pool name="apex" base-path="/" workspace-id="hr" updated="2017-01-01T01:01:01.012Z"/>
</pool-config>
池名称“apex”是默认安装的数据库名称。您可以通过检查/ conf /子目录来检查在ORDS中设置了哪些数据库名称。在默认安装中,您将找到描述数据库连接的名为apex_pu.xml的文件。如果您希望连接到可以使用的其他数据库(more here):
java -jar redirect_name.war setup --database ords_db_name
将引导您完成输入服务名称或SID的一系列提示。请注意,您必须在此处出现提示时选择1:
Enter 1 if you want to verify/install Oracle REST Data Services schema or 2 to skip this step [1]
或将不会创建数据库连接。要验证成功,请检查/ conf位置并查找ords_db_name_pu.xml请注意,ords_db_name只是ORDS使用的数据库连接名称别名,它不必是实际的SID或服务名称。
这些步骤将从中间步骤中删除URL:
https://server:port/redirect_name/workspace/hr/employees/7369
到此:
https://server:port/redirect_name/workspace/employees/7369
url-mapping.xml / mapurl选项带/删除了任何名称的需要。或者可以使用此命令:
java -jar redirect_name.war mapurl --type base-path --workspace-id hr /something_here apex
产生此网址:
https://server:port/redirect_name/workspace/something_here/employees/7369
未经过测试
将ords.war重命名为ROOT.war理论上不需要将“redirect_name”放在URL中,但我不准备在ROOT位置使用ORDS。