HTTP header in HTTP reponse

i have a HTTP request--->BPM--->Http Response, there is a S/A bridge to implement this
for which i there is a
1. HTTP sender channel (outbound synchronous message interface),
2. BPM,
the requirement is...in the sync HTTP response, i need the HTTP header "content-length"to be changed to 0,
for this i wanted to use the "Set adapter specific message attribute -> HTTP header fields (Synchronous response)" in the HTTP sender channel,
but i cant see this field in the sxi_monitor in the Dynamic configuration tab of the Response Message...
pls help me solving this

Try this
[http://help.sap.com/saphelp_nw04/helpdata/en/43/64dbb0af9f30b4e10000000a11466f/content.htm|http://help.sap.com/saphelp_nw04/helpdata/en/43/64dbb0af9f30b4e10000000a11466f/content.htm]
Also the Stream Transformation Constants which we can access using Dynamic Configuration:
[http://help.sap.com/javadocs/NW04S/current/pi/com/sap/aii/mapping/api/StreamTransformationConstants.html|http://help.sap.com/javadocs/NW04S/current/pi/com/sap/aii/mapping/api/StreamTransformationConstants.html]
Edited by: Praveen Gujjeti on Apr 21, 2009 12:24 PM

Similar Messages

  • No "Remote-User" in HTTP header when HTTP request gets to WLS

    Hello Exprers,
    I have a customer, using 10.3.3 on Linux machine. Web server as Apache.
    He wants Remote-User in HTTP header, he used to get it when he used Tomcat. But when he transffered to Apache and 10.3.3, he is not getting the Remote-User in header, instead he is getting proxy-remote-user.
    He wants the Remote-user in HTTP header.
    Any clue, on why he is not getting it.

    Hi,
    We are facing error while doing openConnection
    When I tried with simple java file it worked as shown below
    import java.io.*;
    import javax.net.ssl.HttpsURLConnection;
    public class test
    public static void main(String[] args) throws Exception
    String httpsURL = "https://rcfe.aspac.citicorp.com:40054/servlet/Verify";
    URL myurl = new URL(httpsURL);
    HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
    InputStream ins = con.getInputStream();
    InputStreamReader isr = new InputStreamReader(ins);
    BufferedReader in = new BufferedReader(isr);
    if (con!=null)
    System.out.println("con="+con);
    System.out.println(ins);
    Output*
    [rcrrgbg2@kauh0079:/rcrmap2/weblogic/bea/ORA_PFRD/forms/j2ee] java test
    con=com.ibm.net.ssl.www2.protocol.https.e:https://rcfe.aspac.citicorp.com:40054/servlet/Verify
    sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@5f6c5f6c
    However when I tried with below program I am able to write upto Web CL URL but after that no log is written when it tries to do openConnection() for this line csConn=(HttpsURLConnection)new URL(webclURL).openConnection(); in the below code
    Some part of the code:_
    =======================================================================
    import java.io.*;
    import javax.servlet.http.*;
    import javax.servlet.*;
    import java.util.Hashtable;
    import java.io.File;
    import java.io.FileInputStream;
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.net.ssl.HttpsURLConnection;
    import java.net.URL;
    public class CRMSLogin extends HttpServlet
    private static final long serialVersionUID=-6294676216324813290L;
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
    String iniFile=request.getParameter("CRMS_INI_FILE_PATH");
    String sessionId=request.getParameter("SessionId");
    String applId=request.getParameter("apl_id");
    String userId=request.getParameter("userId");
    String clientIp=request.getRemoteAddr();
    Properties iniProp=this.getProperties(iniFile);
    String crmsAppServerContext=iniProp.getProperty("CRMS_APP_SERVER_CONTEXT");
    String appModule=iniProp.getProperty("CRMS_MODULE");
    String webclURL=iniProp.getProperty("WEBCL_URL");
    // HttpsURLConnection csConn=null;
    String crmsFormsTerm=null;
    crmsFormsTerm=getEntitlements(iniFile.trim(),sessionId,applId.trim(),clientIp.trim(),webclURL.trim());
    String baseContent=this.getBaseContent(iniProp);
    ServletOutputStream out=response.getOutputStream();
    baseContent=baseContent.replaceAll("<!APP_TITLE!>","Credit Risk Management System");
    baseContent=baseContent.replaceAll("<!APP_CONTEXT!>",crmsAppServerContext);
    baseContent=baseContent.replaceAll("<!APP_MODULE!>",appModule);
    baseContent=baseContent.replaceAll("<!APP_TRACE!>",crmsFormsTerm.replaceAll(" ", ""));
    baseContent=baseContent.replaceAll("<!USER_ID!>",userId);
    baseContent=baseContent.replaceAll("<!SESSION_ID!>",sessionId);
    baseContent=baseContent.replaceAll("<!APPL_ID!>",applId.trim());
    baseContent=baseContent.replaceAll("<!CLIENT_IP!>",clientIp.trim());
    baseContent=baseContent.replaceAll("<!INI_FILE!>",iniFile.trim());
    out.println(baseContent);
    out.flush();
    out.close();
    private synchronized Properties getProperties(String inifile)
    Properties iniProp=new Properties();
    FileInputStream iniFileStream=null;
    try
    iniFileStream=new FileInputStream(inifile);
    iniProp.load(iniFileStream);
    iniFileStream.close();
    catch(Exception e)
    finally
    try
    if(iniFileStream!=null)
    iniFileStream.close();
    catch(Exception e)
    return iniProp;
    public static synchronized String getEntitlements(String inifile,String sessionId,String applId,String clientIp,String webclURL)
         HttpsURLConnection csConn=null;
         OutputStreamWriter requestStream=null;
         BufferedReader responseStream=null;
         StringBuffer responseData=new StringBuffer();
         String csReturnString=null;
         //String webclURL=null;
         BufferedWriter traceLog=null;
         int csCount=6;
         Properties iniProp=new Properties();
         String traceFile=null;
         String entitlementData=null;
         try
         readIniProperties(inifile,iniProp);
         traceFile=getTraceFile(iniProp);
         traceLog=new BufferedWriter(new FileWriter(traceFile,true));
         if(traceFile!=null)
         traceLog.write("###########################");
         traceLog.write("P A R A M E T E R S");
         traceLog.write("###########################");
         traceLog.newLine();
         traceLog.write("INI_FILE:"+inifile);
         traceLog.newLine();
         traceLog.write("SESSION_ID:"+sessionId);
         traceLog.newLine();
         traceLog.write("APPL_ID:"+applId);
         traceLog.newLine();
         traceLog.write("CLIENT_IP:"+clientIp);
         traceLog.newLine();
         traceLog.write("count:"+csCount);
         traceLog.newLine();
         traceLog.write("###########################");
         traceLog.newLine();
         //webclURL=getWebclURL(traceLog,iniProp);
         if(webclURL!=null)
         traceLog.write("Web CL URL:"+webclURL);
              traceLog.newLine();
         csConn=(HttpsURLConnection)new URL(webclURL).openConnection();     
    traceLog.write("Open Connection - Completed!");
         traceLog.newLine();
         csConn.setRequestMethod("POST");
         csConn.setDoInput(true);
         csConn.setDoOutput(true);
         requestStream=new OutputStreamWriter(csConn.getOutputStream());
         traceLog.write("Open Request Stream - Completed!");
         traceLog.newLine();
         requestStream.write("SessionId="+sessionId+"&ClientIP="+clientIp+"&apl_id="+applId+"&count="+csCount);
         requestStream.flush();
         requestStream.close();
         traceLog.write("Write Params to Request Stream - Completed!");
         traceLog.newLine();
         responseStream=new BufferedReader(new InputStreamReader(csConn.getInputStream()));
         traceLog.write("Open Response Stream - Completed!");
         traceLog.newLine();
         while((csReturnString=responseStream.readLine())!=null)
         responseData.append(csReturnString);
         traceLog.write("Response Stream Reading - Completed!");
         traceLog.newLine();
         responseStream.close();
         csConn.disconnect();
         entitlementData=getEntitlementData(traceLog,responseData.toString(),iniProp);
         traceLog.write("responseData::"+responseData);
         traceLog.newLine();
         traceLog.newLine();
         traceLog.write("entitlementData::"+entitlementData);
         traceLog.newLine();
         traceLog.flush();
         traceLog.close();
         catch(Exception e)
         e.printStackTrace();
         finally
         try
         if(requestStream!=null)
         requestStream.close();
    =======================================================================
    output_
    ###########################P A R A M E T E R S###########################
    INI_FILE:/rcrmap1/rcrrgbg2/crms.ini
    SESSION_ID:%2526%253ASIGNED_TICKET%253D%2526PROVIDER_TICKET%253D002c6e4cH0tZy2Gj4JBCOiSL7uSlKisfsqgwP9KoRRn7e%252BY%253D%253AKRSERVER0006%252BA9A52AAE%252B4D1DC7AA%252B14400
    APPL_ID:RCRMKR
    CLIENT_IP:169.165.42.174
    count:6
    Web CL URL:https://rcfe.aspac.citicorp.com:40054/servlet/Verify
    Please help to guide us.
    Regards,
    Harish

  • Parameters from HTTP header and HTTP parameter

    All,
    I am very new to APEX. Our new application needs to get two values, one from a HTTP header and the second from a HTTP parameter. I do not know how to do this. Is there an existing function like GET_HTTP_HEADER.val?
    Thanks for any help.
    Fred

    user7183753 wrote:
    Andy,
    Thanks for the quick reply. The OWA_UTIL will give me static information.owa_util.get_cgi_env should be able to get any http header information that you require.
    You can modify the dads.conf file to allow non-standard HTTP headers to be passed through, you add a PlsqlCGIEnvironmentList entry e.g.
    PlsqlCGIEnvironmentList AuthorizedUser
    If your users access an external URL to be authenticated and then that external system forwards to you with the new header showing the authenticated user name, you could pick up that 'AuthorizedUser' header as part of your own authentication mechanism.

  • Does GSS HTTP-HEAD supports https?

    I am configuring a GSS to check an Web server that responds to https requests.
    I put 443 as the port but I don´t see replies from the server and the Answer Status is always offline.
    Other servers using http on port 80 are showing OK.
    The appliance is a GSS-4492-k9 Version 3.1(0).

    Hi,
    https keepalive was introduced recently and is available as of version 3.2(0).
    http://www.cisco.com/en/US/docs/app_ntwk_services/data_center_app_services/gss4400series/v3.2/release/note/GSSRN32.html#wp296321
    hope this helps,
    Fabrizio

  • How to delete server information in http header?

    Hello,
    how could i delete the server information in the http-header?
    HTTP/1.1 500 Internal Server Error
    connection: close
    server: SAP J2EE Engine/7.00   <--- this here
    date: Tue, 11 Nov 2008 08:27:08 GMT
    pragma: no-cache
    content-type: text/html;charset=ISO-8859-1
    content-length: 2046
    set-cookie: saplb_*=(icdus445_PA3_03)39216850; Version=1; Path=/
    Best regards,
    Dennis

    Hi,
    the solution is to set the value for UseServerHeader to false.
    This can be done from the VisualAdmin for the HTTP service of all servers + dispatcher.
    Thanks for the support
      Christian Birkle

  • BC Ecommerce SOAP Error: Server did not recognize the value of HTTP Header SOAPAction

    I am trying to add a product to an ecommerce site with this soap action: Product_UpdateInsert
    I have followed this very brief instruction: https://jollyrogers.worldsecuresystems.com/catalystwebservice/catalystecommercewebservice. asmx?op=Product_UpdateInsert
    I have a html page in a secure area with a jQuery ajax soap script.
    I get the this error when I run the script:
    <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Server did not recognize the value of HTTP Header SOAPAction: https://jollyrogers.worldsecuresystems.com/CatalystDeveloperService/CatalystEcommerceWebse rvice/Product_UpdateInsert.</faultstring><detail /></soap:Fault></soap:Body></soap:Envelope>
    I have also tried to add a header with the Soap action with the beforeSend in the ajax call.
    This must have been solved before I suppose?
    Here is my script:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>Test SOAP Request</title>
        <script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.3.1/jquery.cookie.min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.1/underscore-min.js"></script>
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"></script>
        <script type="text/javascript" src="//cdn.worldsecuresystems.com/bcapi/bcapi-0.0.1.min.js"></script>
    </head>
    <body>
    <script>
    var wsUrl = "https://jollyrogers.worldsecuresystems.com/catalystwebservice/catalystecommercewebservice. asmx";
    var soapRequest =
    '<?xml version="1.0" encoding="utf-8"?> \
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> \
      <soap12:Body> \
        <Product_UpdateInsert xmlns="https://jollyrogers.worldsecuresystems.com/CatalystDeveloperService/CatalystEcommerceWebse rvice"> \
          <username>myEmailAdress</username> \
          <password>mySecretPassw</password> \
          <siteId>1894001</siteId> \
          <productList> \
            <Products> \
              <productCode>ZJAWEyuuyN</productCode> \
              <productName>My test product</productName> \
              <description>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</description> \
              <smallImage>/images/product1/small.jpg</smallImage> \
              <largeImage>/images/product1/large.jpg</largeImage> \
             <cataloguesArray> \
                 <string>/Store/</string> \
              </cataloguesArray> \
              <pricesSaleArray> \
                <string>US/19.95,3/17.96,7/16.96</string> \
              </pricesSaleArray> \
              <pricesRetailArray> \
                <string>US/20,5/19,8/20</string> \
              </pricesRetailArray> \
              <pricesWholesaleArray> \
                <string>US/20,5/19,8/20</string> \
              </pricesWholesaleArray> \
              <wholesaleTaxCodeArray> \
                <string>US/0.00</string> \
              </wholesaleTaxCodeArray> \
              <taxCodeArray> \
                <string>GB/VAT</string> \
              </taxCodeArray> \
              <groupProducts> \
                <string>580H0036BL</string> \
                <string>ACAI60</string> \
                <string>ABC-123</string> \
              </groupProducts> \
              <groupProductsDescriptions> \
                <string>Lorem ipsum dolor sit amet</string> \
                <string>consectetur adipisicing elit</string> \
              </groupProductsDescriptions> \
              <supplierEntityId>1234</supplierEntityId> \
              <supplierCommission>0</supplierCommission> \
              <weight>30</weight> \
              <tags>NEW!</tags> \
              <unitType>string</unitType> \
              <minUnits>0</minUnits> \
              <maxUnits>2</maxUnits> \
              <inStock>43</inStock> \
              <onOrder>3</onOrder> \
              <reOrder>2</reOrder> \
              <inventoryControl>true</inventoryControl> \
              <canPreOrder>true</canPreOrder> \
              <custom1>Text in custom field 1</custom1> \
              <custom2>Text in custom field 2</custom2> \
              <custom3>Text in custom field 3</custom3> \
              <custom4>Text in custom field 4</custom4> \
              <popletImages>/images/image1.jpg;/images/image2.jpg;</popletImages> \
              <enabled>true</enabled> \
              <deleted>false</deleted> \
              <captureDetails>true</captureDetails> \
              <downloadLimitCount>20</downloadLimitCount> \
              <limitDownloadsToIP>0</limitDownloadsToIP> \
              <isOnSale>true</isOnSale> \
              <hideIfNoStock>true</hideIfNoStock> \
              <productAttributes>Size*|5|Y:L||UK/2|US/20,S||UK/1|US/10</productAttributes> \
              <isGiftVoucher>false</isGiftVoucher> \
              <enableDropShipping>true</enableDropShipping> \
              <productWeight>0</productWeight> \
              <productWidth>0</productWidth> \
              <productHeight>0</productHeight> \
              <productDepth>0</productDepth> \
              <excludeFromSearch>false</excludeFromSearch> \
              <productTitle>My product title</productTitle> \
              <cycletypeId>3</cycletypeId> \
              <cycletypeCount>-1</cycletypeCount> \
              <slug>my-product</slug> \
              <hasVariations>true</hasVariations> \
              <variations> \
                <ProductVariation xsi:nil="true" /> \
                <ProductVariation xsi:nil="true" /> \
              </variations> \
            </Products> \
          </productList> \
        </Product_UpdateInsert> \
      </soap12:Body> \
    </soap12:Envelope>';
    $.ajax({
         type: "POST",
         beforeSend: function(xhr){xhr.setRequestHeader('SOAPAction', 'https://jollyrogers.worldsecuresystems.com/CatalystDeveloperService/CatalystEcommerceWebse rvice/Product_UpdateInsert');},
         url: wsUrl,
         contentType: "text/xml",
         dataType: "xml",
         data: soapRequest,
         success: processSuccess,
         error: processError
    function processSuccess(data, status, req)
       if (status == "success")
       alert("Success!");
    function processError(data, status, req)
       alert("Failed!");
       alert(req.responseText + " " + status);
    </script>
    </body>
    </html>

    This line is a target namespace so it should not be changed: <Product_Retrieve xmlns="http://tempuri.org/CatalystDeveloperService/CatalystEcommerceWebservice"> It is very easy to think that it's a placeholder and that it should be replaced with your own url, which it should not and which will fail.
    This works now:
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <title>Test 7 SOAP Request</title>
            <script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
        </head>
        <body>
            <script>    
                var SoapMessage = '<?xml version="1.0" encoding="utf-8"?> \
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> \
    <soap12:Body> \
    <Product_Retrieve xmlns="http://tempuri.org/CatalystDeveloperService/CatalystEcommerceWebservice"> \
    <username>Your Email</username> \
    <password>Your password</password> \
    <siteId>1894001</siteId> \
    <productCode>HHKDKXS5MB</productCode> \
                </Product_Retrieve> \
                </soap12:Body> \
                </soap12:Envelope>';
                var url = "https://jollyrogers.worldsecuresystems.com/catalystwebservice/catalystecommercewebservice. asmx";
                $.support.cors = true;
                $.ajax({
                    type: "POST",
                    url: url,
                    data: SoapMessage,
                    dataType: "xml",
                    processData: true,
                    contentType: "text/xml; charset=\"utf-8\"",
                    success: function (msg) {
                        alert("suc: " + msg);
                    error: function (msg) {
                        alert("Failed: " + msg);
            </script>
        </body>
    </html>   

  • JEditorPane - set http header

    hi
    how to set (or is it even possible) to set http header (in http request) in JEditorPane (to set referrer, user agent, etc.)
    thanks a lot

    Thanks Raja,
    I am not an ITS expert by any means. I need help to work out how use the information in OSS Note 494984 to solve my problem.
    The note seems to be about setting headers on all incoming requests to ITS.
    I need to set the content-type header on an outgoing response generated using a specific (XML) template.
    I did the BC440 course back in 2000 but after 2000 I never did another ITS project, focusing on Java and J2EE instead. So I am not sure how to apply what the OSS Note says. Do I need to assign the content type to a Business HTML parameter in the template? The documentation I have with SAP@Web Studio is not helpful.

  • Custom Http header in remote object

    Hi, how to set custom http header in http request while using remote object in flex?

    Thank You, Patrick.
    You are best :)
    I read this APEX_WEB_SERVICE documentation before,
    but after I read once more time
    I found most important words "global variable g_request_headers".
    I think these variables must be described more in documentation.
    On APEX I did:
    1) Create New Page -> Form -> Form and Report On Webservice Results.
    2) Set all webservice paramters in page wizard.
    3) And create a new page process after submit:
    Begin
    apex_web_service.g_request_headers(1).name := 'username';
    apex_web_service.g_request_headers(1).value := ' ... ';
    apex_web_service.g_request_headers(2).name := 'password';
    apex_web_service.g_request_headers(2).value := ' ... ';
    End;
    4) It's most important that this process must be done before the webservice process.
    Good luck

  • SSO to other apps via HTTP header variable

    We are on NW EP6.0 SP16. We need to add the "user id" as http header variable so that other apps which are non SAP can access our header variable and log on with that user id. Is this available by default? Or we want to achieve this how best we can achieve this.
    We can use the code to get the user id and add it to header variable. If we use this route which is the jsp page we need to add the code?
    Thanks

    Hi,
      we can you login modules provided by SAP to accomplish this.. you can use header variable authentication login module to acheive your requirement.
      please refer: http://help.sap.com/saphelp_nw04/helpdata/en/8f/ae29411ab3db2be10000000a1550b0/frameset.htm
    Hope that helps.
    Regards,
    S.Divakar

  • Single-Sign-On (SSO) configuration on JAVA Stack through HTTP Header method

    Hello SDN community,
    in the context of a Proof of Concept, we are testing the integration of Microsoft Sharepoint Portal with SAP Backend (addin) systems.
    As the architecture impose use an external scenario (access from the internet), we couldn't use the Kerberos (SPNego) solution and thus we chosed the http header solution which in short uses an intermediary web server (in this case the IIS of the MOSS solution) which will act as authority.
    I miss information on how the workflow works for this http header authentication method. Through the visual administrator of the addin JAVA stack, it is possible to configure each application with a customized authentication (a choice of security modules). But this all that I know.
    My task is to configure SSO. From a sharepoint portal, the user should be able to access Web Dynpros and BSPs. I imagine that the very first call to a webdynpro or bsp (or maybe when we log on the sharepoint portal), the request to the WDP or BSP will first be forwareded by the intermediary server to the JAVA stack (or is it the SAP dispatcher that has to be configured).
    Is there an application to be built on the java stack to deal with the authentication, modify http header?
    What will the Java stack return? a sap long ticket? a token?
    How will the redirect work (to by example a BSP which is in the ABAP stack)?
    SAP preconise to secure with SSL the link between the intermediary web server and the JAVA stack, is IP restriction also a solution?
    A lot of questions about how this SSO http header should work,
    I would be very greatful for any help, or info,
    Kind regards,
    Tanguy Mezzano

    Hi Tanguy,
    to tell you the truth I'm really unsure about what you are trying to achieve. When I started posting to your thread I thought all you wanted was trying to access your J2EE engine via Browser and authenticate against the engine using HTTP Header Variables. Nevermind:
    Here are some answers to your question:
    in fact I did succeed, the problem was that even after domain-relaxation done by the J2EE, I had to change the domain of th SAP cookie to the bbbb.domain.com to be understood (I would have thought that all hosts in/under domain .domain would have accepted such a cookie but it seems that no...).
    The server does not care about the domain because Cookies in an HTTP Request do not contain any domain information. The domain is just important when the Cookie is set by the server so your Client (Browser) will know in which cases the Cookie may be sent or not. So if your domain is xxx.yyy.domain.com and your cookie is issued to .domain.com then your Browser will definitely sent it to all hosts under .domain.com (This includes xxx.yyy.domain.com etc.)
    My current scenario is: in a first request get a SAP Logon Ticket from the Java Stack, then change its domain and then directly call the backend with it.
    You can do that but there is no Client involved in this scenario. So this is useful if you just want to test the functionality (e.g. authentication to J2EE using Header Variables (This works finally!!!) and then use the fetched Logon Ticket to test SSO against any trusted Backend!!)
    So everything's is in a Java Client application without using any redirection.
    If I understand you, you're solution is from the Browser call a servlet (which is deployed on the Java Stack and has no authentication schema) by passing to it our http header.
    No, you should initially authenticate somewhere! I thought that maybe you had some resource you access before accessing the Java Stack. This could be any application (e.g. deployed on a Tomcat or JBOSS or other server or if you like even SAP J2EE). After authenticating there you are aware of the username and could use it to  procceed (e.g. Authenticate against the J2EE using the same user and HTTP Header authentication for that particular user!)
    That servlet will transfer the http header (with the HttpClient app) in order to get from the Java Stack a SAP Logon ticket, and then to redirect to the resource and by sending back the cookie in client browser. Am I correct?
    This was just a suggestion because I realized that there was no Client ever involved in any of your testing (looked strange to me!). I was just thinking that it would be easier for you to just get the Cookie into your Browser so your Browser would do the rest for you (in your case finally send the Logon Ticket Cookie to your Backend to test SSO using Logon Tickets!).
    The AuthenticatorServlet somehow serves as a Proxy to your client because your client is not able to set the Header Variable. That's why I initially suggested to use a Proxy (e.g. Apache) for that purpose. The problem is just that if you use a Proxy you will have to tell it somehow which username it should set in the Header Variable (e.g. using a URL Parameter or using a personalized client certificate and fetch the username (e.g. cn=<username> from the certificate!)
    This way of doing would simplify the calls for sso for each new application needing authentication, instead of having all code each time in it...
    I'm stuck again! Do you want to authenticate an End User or do you want to authenticate an application that needs to call any resources in your Backend that requires authentication?
    So my problem now, is how to call the servlet from the client browser:
    I'm trying to call my servlet from the browser but I don't succeed. I am able to understand how to reach a jsp from the Java Stack, but not to reach a servlet. I don't find the path to my servlet:
    <FORM method="POST" action="SSORedirect2" >
    A JSP is a servlet too. There is just no JAVA Class involved!
    You do not need any POST Request to invoke a Servlet.
    I see that my servlet is deployed, but I don't how what path to give to my form to invoke the servlet, here follows my web.xml
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE web-app (View Source for full doctype...)>
    - <web-app>
      <display-name>WEB APP</display-name>
      <description>WEB APP description</description>
    - <servlet>
      <servlet-name>SSOredirect2</servlet-name>
      <servlet-class>com.atosorigin.examples.AuthenticatorServlet</servlet-class>
      </servlet>
    - <servlet>
      <servlet-name>SSORedirect2.jsp</servlet-name>
      <jsp-file>/SSORedirect2.jsp</jsp-file>
      </servlet>
    - <security-constraint>
      <display-name>SecurityConstraint</display-name>
    - <web-resource-collection>
      <web-resource-name>WebResource</web-resource-name>
      <url-pattern>/*</url-pattern>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
      </web-resource-collection>
    - <auth-constraint>
      <role-name>DefaultSecurityRole</role-name>
      </auth-constraint>
      </security-constraint>
    - <security-role>
      <role-name>DefaultSecurityRole</role-name>
      </security-role>
      </web-app>
    If you have an AuthenticatorServlet Class all you need is to add the Servlet Mapping in your web.xml file
    e.g.
    <servlet>
      <description>
      </description>
      <display-name>AuthenticatorServlet</display-name>
      <servlet-name>AuthenticatorServlet</servlet-name>
      <servlet-class>com.atosorigin.examples.AuthenticatorServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>AuthenticatorServlet</servlet-name>
      <url-pattern>/AuthenticatorServlet</url-pattern>
    </servlet-mapping>
    You can directly call the Servlet in your Browser by calling the URL provided in the url-pattern of your Servlet mapping ( in this case /AuthenticatorServlet). The engine will invoke the Class "com.atosorigin.examples.AuthenticatorServlet" in the background and do whatever you defined there!
    I have also to pass my http header and the redirectUrl in the GET request.
    If you like! I just suggested this for testing purposes. As I stated before you need a way to tell your proxy (or in your case AuthenticatorServlet) which user should be set when calling the Engine in order to authenticate using HTTP Header. You could use the URL Paramater to define the user you actually want to use when you set the Header Variable.
    I just introduced the redirectURL because you were talking about redirects all the time. So if you finally want to call the Backend you could define the Backend URL in the redirectURL Parameter and the Servlet will make sure that you are redirected to this location after the whole process!
    Thx for your input very helpful,
    But again 0 points
    Cheers

  • What happens to the HTTP header parameters I put there?

    Our tool puts some parameters into the HTTP header. But, it appears that the Dispatcher is not passing them to the WAS.  Could this be?
    Is there a way to tell the Dispatcher to not drop our HTTP header stuff? Perhaps a configuration setting? I didn't find any.
    When I set a break in my servlet running on NW WAS, I see:
    referer:
    Cookie:
    etc.
    but I don't see the parameters we put there.
    This is the NW SneakPreview download.

    Hi Farokh,
    I think there should be much problem passing parameters  through the Url. I am sorry however that I have not worked much on the Servlet but on WebDynpro, which I can share with you if its of any use to you.
    Regards
    Noufal

  • How do I set the Http Header POST URL in SAAJ?

    Hi ,
    I am a newbie in the field of web services. I was trying to create a SOAP request with Http Header POST information having a POST url like
    the following:
    POST /OMASTI.xml HTTP/1.1
    Content-Type: multipart/related; boundary="eladeladeladeladeladeladeladeladelad"; type=text/xml; start=11814460
    Content-Length: 54596
    Host: unspecified
    SOAPAction: ""
    to that effect I did the following in the SAAJ client:
    MimeHeaders md = message.getMimeHeaders();
              md.setHeader("SOAPAction" ,"\"\"");
              md.setHeader("POST" ,"/OMASTI.xml");
    However what I got was :
    POST / HTTP/1.1
    Accept: text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
    SOAPAction: ""
    POST: /OMASTI.xml
    Content-Type: multipart/related; type="text/xml"; boundary="----=_Part_2_32124414.1153146262750"
    Content-Length: 3352
    Cache-Control: no-cache
    Pragma: no-cache
    User-Agent: Java/1.5.0_07
    Host: www.google.com
    Connection: keep-alive
    I have two POSTs in the header. How do I fix it? Please Help ASAP.
    Regards,
    Zeus

    Hi,
    Please forgive my ignorance. I did the same as you said. and then checked the Http request being sent out using ethreal software... it was the same as I had told earlier. Is only POST supported by the connection object? And the does the URL that comes in the Mime header as POST refer to the URL to which the request was sent? what I mean is that if the mime header says
    POST /OMASTI.xml HTTP 1.1, does it mean that the URL that was passed to the connection object was "/OMASTI.xml" ? I had given the url as http://www.google.com to test the request being sent.. I only have a sample SOAP request which shows a HTTP header with the post url as I said before. I need to create a SOAP request with the same sort of Http header and the body needs to follow a certain OMA-STI protocol. My experience in the SOAP domain is almost nil. So please enlighten me.
    Thanks in advance,
    zeus

  • SSRS web services 401 if you pass "Authorization" http header

    We use both SSRS 2008 R2 and 2012. When i access a report using url access (direct ssrs server hit) and add a "Authorization: Bearer xyzelkalklsjsdfalsjdf" http header, i get a 401 from somewhere in the request pipeline. I have a custom httpmodule
    registered at the top of the chain which does some OAuth related security checks. But when this header is included, the request never reaches the httpmodule. If i change the header slightly ex: "YAuthorization: ljlxzcvc..", then the request reaches
    the httpmodule and everything works. So obviously SSRS is looking for a particular header named "Authorization" and does something with it. Point to note: we have implemented a custom forms authentication module and we are doing some rich authorization
    using the extensible ssrs api. 
    Now my questions are:
    1. What is happening here? Who is acting on my request before my HttpModule registered on top in ssrs\reporting service\web.config gets it?
    2. How do i ensure my httpmodule executes before whatever component is terminating my request with a 401

    Sorry if this sounds like I am new to this but I am.
    So, the extended version is the format that would be used if you were not utilizing the files that the wsdl2java function creates?
    And this is done to when you want more flexibiility for the user to call your service?
    So, you would push to have the stub files used when you want to control how the web service is used?
    thanks for the feedback.

  • Error in setting up HTTP Header Variable Authentication

    Hi,
    I am trying to set-up SSO for SAP Biller Direct aplication (deployed on SAP J2EE 7.0) using HTTP Header variable authentication.
    As per SAP documentation I have created a new login module "HeaderVariableLoginModule" pointing to class "com.sap.security.core.server.jaas.HeaderVariableLoginModule".
    Then I have added this new login module to Statck "Ticket" and the new config looks as below. HTTP header when UID is passed is USI_LOP.
    Name                                                                                Flag                                            Options
    com.sap.security.core.server.jaas.HeaderVariableLoginModule    Sufficient                                    ume.configuration.active= tue,
                                                                                    Header=USI_LOP
    BasicPasswordLoginModule                                                           Optional
    CreateTicketLoginModule                                                                 Optional                                         ume.configuration.active= tue
    EvaluateTicketLoginModule                                                              Sufficient                                      ume.configuration.active= tue
    The problem I am now having is that the authentication through HTTP_HEADEr does not work. Even though I ahve increased the trace level for JAAS module to debug, there is not any type of information generated in the log.
    Each time I call the Biller Direct URL from the extrenal web server which also passes the HEADER variable for Authntication, the authrisation just fails and I am being shown a Logon Screen to pust UID/PASSWORD.
    Can someone please guide me, how I can debug this? There is very no information whether anyone tried to login with HEADER varibale and that has failed...
    Also, I am not pretty sure whether I am using the right Authentication Stack, which is is Ticket in my case..
    But when I enter the application without any URL redirects and enter UID and password directly for Biller Direct, I get the following in log file, which makes me believe that I am using the right stack.
    LOGIN.OK
    User: CONDLG
    Authentication Stack: ticket
    Login Module                                                               Flag        Initialize  Login      Commit     Abort      Details
    1. com.sap.security.core.server.jaas.HeaderVariableLoginModule             SUFFICIENT  ok          false      false                
    2. com.sap.engine.services.security.server.jaas.BasicPasswordLoginModule   OPTIONAL    ok          true       true                 
    3. com.sap.security.core.server.jaas.CreateTicketLoginModule               OPTIONAL    ok          true       true                 
    4. com.sap.security.core.server.jaas.EvaluateTicketLoginModule             SUFFICIENT  ok          false      false                
    Central Checks                                                                                true                 
    Any help will be very much apprecated..
    Thanks,
    Vikrant Sud

    Vikrant,
    The reason why it is not working is because your login modules in ticket stack are in wrong order and with wrong flags. The first one should be EvaluateTicketLoginModule with flag=SUFFICIENT, then the Header Variable login module, with flag=OPTIONAL, then CreateTicketLoginModule with flag=SUFFICIENT, then BasicPasswordLoginModule with flag=REQUISITE, and lastly CreateTicektLoginModule with flag=OPTIONAL
    Thanks,
    Tim

  • Any way to get HTTP header in web dynpro Java?

    Is there any way to get HTTP header in web dynpro java? This method gives me the params. Is params same as header? It doesn't have any way to retrieve header data. I am on NW 7.0.19
    WDProtocolAdapter.getProtocolAdapter().getRequestObject().getParameter("param");

    Dear Faraz,
    I'm afraid the code you've pasted is only to retrieve URL parameters.
    Have you tried this document to see if it offers any good hint:
    [http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b0446f5c-fcb9-2910-e082-88becbe3ddc9]
    Not sure if you can process the HTTP header with a WD4J.
    An alternative could be to develop some Portal component in plain JAVA working as a proxy to call your WD4J afterwards.
    That portal component would process your HTTP header and forward any parameter to your WD4J.
    But this is me just guessing.
    Kind Regards
    /Ricardo

Maybe you are looking for

  • OAM notification exception in OIM 11.1.1.5 during create or update

    Hello experts, We keep getting below exceptions in backend during create or update user. I have also read "Exception During User Create Or Update In Oim Logs [ID 1438746.1]" in oracle support that it's a bug and fixed in BP02. We successfully applied

  • N73 - Photos not showing up in th Gallery

    I wonder if anyone can help. I recently got my old N73 out as my other phone is no longer working. I don't know if I did something to it last time I used it but when I take a photo it does not appear in the gallery. Has anyone got any ideas to resolv

  • How to get subgrid Id

    In my recent requirement client want to put dynamic view inside subgrid. For this I am using document.getElementById("SubgridName"); This code is giving me null value. If I use document.getElementById("_SubgridName");, then it give me some values, bu

  • How can I keep my bookmarks updated live in Firefox & Chrome on the same PC?

    I use both Firefox & Chrome on my notebook. I have a huge number of bookmarks set up & up until now I have to export/import my bookmarks between Firefox & Chrome on the same notebook on a regular basis to ensure that any updates or changes I make whe

  • HT5312 how to reset security question

    I can' t call to apple support center? How can i reset my security Question because i forgot the answer? I can't purchase a product ? because i need to answer the security question?