WSO2 API Manager - 我可以在公共商店中隐藏租户商店吗?

时间:2015-09-24 19:47:49

标签: wso2 wso2-am

是否可以隐藏租户商店,因此它们在公共商店中不可见,但仅限于其直接租户特定商店网址(例如:https://api.mydomain.com/store/?tenant=mycustomer.com)?

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

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。首先,您必须将api管理器配置为使用SAML2进行单点登录请参阅此处以获取有关Single Sign-on with SAML2

的更多详细信息

现在,当我们访问商店时,您必须对登录弹出窗口进行一些修改,如下所述。我们可以使用子主题来实现这种定制。请按照以下说明尝试商店的登录弹出窗口,但这会在您登录后转到租户列表页面。

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

2)将模板.jag从AM_HOME / repository / deployment / server / jaggeryapps / store / site / themes / fancy / templates / menu / primary / template.jag复制到AM_HOME / repository / deployment / server / jaggeryapps /store/site/themes/fancy/subthemes//templates/menu/primary/template.jag(请注意,在此期间您可能需要创建目标路径中提到的子目录)。然后请复制以下代码

3)将下面给出的代码块复制到我们在步骤2中创建的template.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然后您将使用登录弹出窗口进行启动。