2

我试图在登录后在 Springboard 上显示用户名和图像。目前,一旦服务启动,我就可以从 Web 服务器检索用户名,而无需检查用户身份验证。

我是 MAF 的新手。使用 Web 服务登录 IDCS 后,如何在 java 中检查 HTTP Basic 用户身份验证?请指导我。

<?xml version="1.0" encoding="UTF-8" ?>
<amx:view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amx="http://xmlns.oracle.com/adf/mf/amx"
          xmlns:dvtm="http://xmlns.oracle.com/adf/mf/amx/dvt"  xmlns:adfmf="http://xmlns.oracle.com/adf/mf">
  <amx:panelPage id="pp1">
    <amx:facet name="header">
      <amx:tableLayout id="tl1" halign="center">
        <amx:rowLayout id="rl1">
          <amx:cellFormat id="cf5" >
            <amx:outputText value="Care Apps" id="ot1" styleClass="titleText"/>
          </amx:cellFormat>
        </amx:rowLayout>
      </amx:tableLayout>
    </amx:facet>
    <amx:facet name="primary">
        <amx:tableLayout id="tl2" halign="center">
        <amx:rowLayout id="rl2">
                <amx:cellFormat id="cf4" >
            <amx:image id="i3" source="/images/CARE_logo_60.png"/>
          </amx:cellFormat>
        </amx:rowLayout>
        </amx:tableLayout>
    </amx:facet>
    <amx:tableLayout id="tl4" styleClass="menuUserLayout">
      <amx:rowLayout id="rl6"  >
        <amx:cellFormat id="cf6" rowSpan="3" halign="center"  inlineStyle="width:100%;" >
         <adfmf:constraints>
            <adfmf:constraintExpression value="#{securityContext.authenticated==true}" id="c1"/>
        </adfmf:constraints>
          <amx:image id="i4" source="/images/user_logo.png" styleClass="menuUserImage"  />
        </amx:cellFormat>
      </amx:rowLayout>
      <amx:rowLayout id="rl5">
        <amx:cellFormat id="cf3" rowSpan="3">
          <amx:outputText value="#{Profile.userName}" id="ot4" styleClass="menuText"/>
         
        </amx:cellFormat>
        
      </amx:rowLayout>
    </amx:tableLayout>
    <amx:tableLayout id="tl3" styleClass="menuTabLayout">
      <amx:iterator var="row" value="#{bindings.features.collectionModel}" id="i1" >
        <amx:rowLayout id="rl3" >
          <amx:cellFormat id="cf1">
            <amx:commandLink actionListener="#{bindings.gotoFeature.execute}"
                             disabled="#{!bindings.gotoFeature.enabled}" id="cl1">
            <amx:image id="i2" source="#{row.image}" inlineStyle="width:45px;height:45px;padding-left:10px;padding-top:3px;padding-bottom:3px;"/>
            <amx:setPropertyListener id="spl1" from="#{row.id}" to="#{pageFlowScope.FeatureId}" type="action"/>
          </amx:commandLink>
          </amx:cellFormat> 
          <amx:cellFormat id="cf2">
            <amx:outputText value="#{row.name}" id="ot2" styleClass="menuText"/>
          </amx:cellFormat>        
        </amx:rowLayout>
      </amx:iterator>
    </amx:tableLayout>
  </amx:panelPage>
</amx:view>
这是我的java代码。这将返回用户名而不检查用户身份验证。

    public String getUserName(){   
    try{
        String responseData =
            CareUtils.invokeRestService("IdcsLoginCon", "/custom/dev_api_app/my/profile" , "GET",
                                      "application/json", "");
       System.out.println("My REsponse DATA"+responseData);
        JSONObject obj = new JSONObject(responseData); 
         this.userName= obj.getString("user_name");
     }catch(Exception e){
        System.out.println("Unable to retrieve data");
       e.printStackTrace();

       };
    return userName;   
    } 

我希望登录后在跳板上输出用户名。注销后,用户名应该消失了。现在,用户名在注销后仍然存在。

4

0 回答 0