WSO2 API管理器——我可以在公共存储中隐藏租户存储吗?



是否有可能隐藏租户商店,因此它们在公共商店中不可见,而只能通过其直接特定于租户的商店URL(如:https://api.mydomain.com/store/?tenant=mycustomer.com)看到?

背景信息:我们的所有客户都在WSO2 API管理器中获得自己的租户。当匿名/未经身份验证的访问者打开公共商店(https://api.mydomain.com/store)时,他/她将看到所有租户商店及其域名。所以找到我们所有顾客的名字并不难。这是不可取的。我知道公共商店应该促进公共API,但我们还没有提供公共API。

是有可能的。首先,您必须将api管理器配置为使用SAML2的单点登录,请参阅此以获取有关使用SAML2的单点登录的更多详细信息

现在你必须做一些修改获得登录弹出当我们访问商店,如下所述。我们可以使用子主题来实现这种定制。请按照下面的说明尝试商店的登录弹出窗口,但是一旦您登录,这将带您到租户列表页面。

1)如果你已经有一个子主题,那么你可以使用它,否则你可以在目录AM_HOME/repository/deployment/server/jaggeryapps/store/site/themes/fancy/subthemes目录下创建子主题。

2)并复制模板。jaggeryapps from AM_HOME/repository/deployment/server/jaggeryapps/store/site/themes/fancy/templates/menu/primary/templatejaggeryapps/store/site/themes/fancy/subthemes/templates/menu/primary/template。(请注意,在此过程中,您可能需要创建目标路径中提到的子目录)。然后复制下面的代码

3)复制下面给出的代码块到模板的顶部。我们在步骤2中创建的Jag页面。

<%
include("/jagg/jagg.jag");
var user = jagg.getUser();
var mod,httpUrl,httpsUrl;
mod = jagg.module("manager");
httpsUrl= mod.getHTTPsURL();
var httpsURL = httpsUrl + request.getRequestURI();
if(request.getQueryString())
{ httpsURL += "?" + request.getQueryString(); }
if(!user)
{ session.put("showLogin","true"); }
%> 

4)进入AM_HOME/repository/deployment/server/jaggeryapps/store/site/conf/site目录。Json文件,然后添加子主题,如下所示。

"theme" :
{ "base" : "fancy", "subtheme" : "<name_of_the_theme>" } 

现在启动服务器和https://localhost:9443/store,然后你会提示登录弹出。

最新更新