【问题标题】:WSO2 API Manager - Can I hide tenant stores in the public store?WSO2 API Manager - 我可以在公共商店中隐藏租户商店吗?
【发布时间】:2015-09-24 19:47:48
【问题描述】:

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

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

【问题讨论】:

    标签: wso2 wso2-am


    【解决方案1】:

    是的,这是可能的。首先,您必须将 api manager 配置为使用 SAML2 进行单点登录。有关Single Sign-on with SAML2 的更多详细信息,请参阅此处

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

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

    2) 并将 template.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,然后您将收到登录弹出窗口的提示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      相关资源
      最近更新 更多