我正在尝试做一个poc,其中我需要通过apacheknox保护我的集群,而我自己开发的restapi将位于knox后面。用户身份验证应该如何与knox ranger一起工作,我将如何保护我的数据访问?
rqdpfwrv1#
这是我的2 xml文件,如果我有任何错误或需要做什么,请查看**rewrite.xml
<rule dir="IN" name="TEST_WEB_APP/Test_Web_App" pattern="*://*:*/**/Test_Web_App/?{**}"> <rewrite template="{$serviceUrl[TEST_WEB_APP]}/?{**}"/> </rule> <rule dir="IN" name="TEST_WEB_APP/Test_Web_App/query" pattern="*://*:*/**/Test_Web_App/{**}?{**}"> <rewrite template="{$serviceUrl[TEST_WEB_APP]/{**}?{**}"/> </rule> </rules> **service.xml <service role="TEST_WEB_APP" name="Test_Web_App" version="0.0.1"> <routes> <route path="/Test_Web_App/**"> <rewrite apply="TEST_WEB_APP/Test_Web_App/**" to="response.body" /> </route> <route path="/Test_Web_App/**?**"> <rewrite apply="TEST_WEB_APP/Test_Web_App/**?**" to="response.body"/> </routes> </service>
hjzp0vay2#
您需要为apacheknox的自定义restapi提供服务定义。这将使诺克斯能够:识别传入到基于spring的服务的api请求的url,并能够将请求路由到它知道如何重写响应中的特定内容(如URL或其他敏感内容),以便在适当时通过网关将客户端重定向回。请参见:http://knox.apache.org/books/knox-0-7-0/dev-guide.html#service+《开发人员指南》中的definition+文件介绍了如何提供服务定义。一旦服务定义就位,您只需要添加 <service> 元素来指示实际的基于spring的服务运行的位置。可能是这样的:
<service>
<service> <role>SERVICE</role> <url>http://url.to.your.service/v1/...</url> </service>
《开发人员指南》的同一部分也对此进行了描述。对于拓扑中服务声明的其他示例,《用户指南》也会有所帮助。您可以查看这些示例,并将它们与这些现有服务的服务定义文件进行比较,以查看服务角色如何Map。这将帮助您为自己的服务做同样的事情。有关身份验证的详细信息,请参阅http://knox.apache.org/books/knox-0-7-0/user-guide.html#authentication 有关设置基于ldap的身份验证的说明,请参阅《用户指南》。您可能还对其他身份验证和联合身份验证提供程序实现感兴趣。你也可以在用户指南中找到它们。也可以随意使用apacheknox的开发人员或用户电子邮件列表。
irtuqstp3#
让我们从service.xml文件开始。它应该看起来像下面更简单的版本。如果需要对请求或响应的特定部分应用特定规则,则只需要更复杂的表单。请注意,理想情况下只需要一条路线,但是 ** 在knox中,表示一个或多个路径级别(不是零或多个)。因此,如果没有第一个路由,knox就不会将请求发送到服务的根/测试web应用路径。
**
<service role="TEST_WEB_APP" name="Test_Web_App" version="0.0.1"> <routes> <route path="/Test_Web_App/?**"> <route path="/Test_Web_App/**?**"> </routes> </service>
如果你想说得很具体的话,这就相当于。在这里 <rewrite apply=""> 在rewrite.xml和 <rewrite to=""> 标识规则应应用于请求和/或响应的哪个部分。
<rewrite apply="">
<rewrite to="">
<service role="TEST_WEB_APP" name="Test_Web_App" version="0.0.1"> <routes> <route path="/Test_Web_App/?**"> <rewrite apply="TEST_WEB_APP/Test_Web_App" to="request.url"/> </route> <route path="/Test_Web_App/**?**"> <rewrite apply="TEST_WEB_APP/Test_Web_App/query" to="request.url"/> </route> </routes> </service>
现在来看rewrite.xml。你的很接近。我只添加了一个名称(即路径),结果 {path=**} 第二条规则的模式和模板。在 <rule pattern=""> 这用于为从匹配模式中提取的值命名。在 <rewrite template=""> 该名称用于使用从匹配模式中提取的命名值填充正在创建的url的一部分。
{path=**}
<rule pattern="">
<rewrite template="">
<rules> <rule dir="IN" name="TEST_WEB_APP/Test_Web_App" pattern="*://*:*/**/Test_Web_App/?{**}"> <rewrite template="{$serviceUrl[TEST_WEB_APP]}/?{**}"/> </rule> <rule dir="IN" name="TEST_WEB_APP/Test_Web_App/query" pattern="*://*:*/**/Test_Web_App/{path=**}?{**}"> <rewrite template="{$serviceUrl[TEST_WEB_APP]/{path=**}?{**}"/> </rule> </rules>
3条答案
按热度按时间rqdpfwrv1#
这是我的2 xml文件,如果我有任何错误或需要做什么,请查看**rewrite.xml
hjzp0vay2#
您需要为apacheknox的自定义restapi提供服务定义。这将使诺克斯能够:
识别传入到基于spring的服务的api请求的url,并能够将请求路由到它
知道如何重写响应中的特定内容(如URL或其他敏感内容),以便在适当时通过网关将客户端重定向回。
请参见:http://knox.apache.org/books/knox-0-7-0/dev-guide.html#service+《开发人员指南》中的definition+文件介绍了如何提供服务定义。
一旦服务定义就位,您只需要添加
<service>
元素来指示实际的基于spring的服务运行的位置。可能是这样的:《开发人员指南》的同一部分也对此进行了描述。对于拓扑中服务声明的其他示例,《用户指南》也会有所帮助。
您可以查看这些示例,并将它们与这些现有服务的服务定义文件进行比较,以查看服务角色如何Map。这将帮助您为自己的服务做同样的事情。
有关身份验证的详细信息,请参阅http://knox.apache.org/books/knox-0-7-0/user-guide.html#authentication 有关设置基于ldap的身份验证的说明,请参阅《用户指南》。您可能还对其他身份验证和联合身份验证提供程序实现感兴趣。你也可以在用户指南中找到它们。
也可以随意使用apacheknox的开发人员或用户电子邮件列表。
irtuqstp3#
让我们从service.xml文件开始。它应该看起来像下面更简单的版本。如果需要对请求或响应的特定部分应用特定规则,则只需要更复杂的表单。请注意,理想情况下只需要一条路线,但是
**
在knox中,表示一个或多个路径级别(不是零或多个)。因此,如果没有第一个路由,knox就不会将请求发送到服务的根/测试web应用路径。如果你想说得很具体的话,这就相当于。在这里
<rewrite apply="">
在rewrite.xml和<rewrite to="">
标识规则应应用于请求和/或响应的哪个部分。现在来看rewrite.xml。你的很接近。我只添加了一个名称(即路径),结果
{path=**}
第二条规则的模式和模板。在<rule pattern="">
这用于为从匹配模式中提取的值命名。在<rewrite template="">
该名称用于使用从匹配模式中提取的命名值填充正在创建的url的一部分。