Log specific http header

Hi,
We have a "RedLine Networks T | X 2600 Real Time Accelerator", between the Clients and our frontends.
As expected the IP that gets logged in the frontends is the "T|X 2600" IP, and not the client ip.
In the request from the "T|X 2600" we have an http header in which we have the Client IP.
Is it possible to "log" the contents of this header?
we're using Sun Java(tm) System Messaging Server 6.1 HotFix 0.11 (built Jan 28 2005)
thx,
Goncalo Garcia

As it may help others, I answer what I figured out.
Every details of the http request is put into the m_binder.
So a specific field can be accessed with m_binder.getEnvironmentValue("My_data")
You can also list all the available data as it is a standard properties set.

Similar Messages

  • Get a specific Http header field from an http request in a component

    Hello,
    In a custom component that I've created ( which extends ServiceHandler), I'd like to access a specific http header field from the http requests that this component receives.
    I assume this could be accessible through m_binder or m_service, but I didn't find any solution so far.
    Any Idea?
    Thanks in advance,
    Leo

    As it may help others, I answer what I figured out.
    Every details of the http request is put into the m_binder.
    So a specific field can be accessed with m_binder.getEnvironmentValue("My_data")
    You can also list all the available data as it is a standard properties set.

  • Setting HTTP header in soapMessage

    Hi,
    How can i set an specific HTTP header when using a SOAPConnection to send a SOAPMessage ?
    Please help,
    Pieter
    ps: it the Authorization header, so without it the other part won't accept my post !

    Pieterrr/ddossot
    I need to do the same thing. I have the code in place but it is still not adding the MimeHeaders to HTTPRequest object. I have the jxm-api.jar, and saaj-api.jar in my classpath.
    What am i doing wrong?
    This is my code
              try{
              // Create SOAP message
              MessageFactory factory = MessageFactory.newInstance();
              SOAPMessage message = factory.createMessage();
              // Create SOAP envelope
              SOAPPart soapPart = message.getSOAPPart();
              SOAPEnvelope envelope = soapPart.getEnvelope();
              SOAPHeader hh = envelope.getHeader();
              MimeHeaders headers = message.getMimeHeaders();
                        SOAPHeader     soapHeader = message.getSOAPHeader();
                        //headers.removeHeader("soapaction");
              headers.setHeader("soapction", "http://tempuri.org/GetData");
              String Hdr_Version_Name = "Version";
              String Hdr_Version_Value = "1.0";
              String Hdr_OnBehalfOf_Name = "OnBehalfOf";
              String Hdr_OnBehalfOf_Value = "";
              String Hdr_Role_Name = "Role";
              String Hdr_Role_Value = "1";
              String Hdr_EndPoint_Name = "EndPoint";
              String Hdr_EndPoint_Value = "001";
              String Hdr_ServiceId_Name = "ServiceId";
              String Hdr_ServiceId_Value = "001";
              String Hdr_DateTime_Name = "DateTime";
              String Hdr_DateTime_Value = "10/22/02";
              String Hdr_ClientApplication_Name = "ClientApplication";
              String Hdr_ClientApplication_Value = "APP001";
              String Hdr_TraceWebMethod_Name = "TraceWebMethod";
              String Hdr_TraceWebMethod_Value = "false";
              String Hdr_ClientTouchPoint_Name = "ClientTouchPoint";
              String Hdr_ClientTouchPoint_Value = "ClientTouchPoint";
              String Hdr_ChannelInfo_Name = "ChannelInfo";
              String Hdr_ChannelInfo_Value = "ChannelInfo";
              String Hdr_Environment_Name = "Environment";
              String Hdr_Environment_Value = "WINOS";
              String Hdr_USER_Name = "MUSER";
              String Hdr_USER_Value ="";
              String Hdr_SESSIONID_Name = "SESSIONID";
              String Hdr_SESSIONID_Value ="";
              String SAML_ASSERTION_Cookie_Name = "SAML_ASSERTION";
              String SAML_ASSERTION_Cookie_Value ="";
              String Hdr_tmsasessionticket_Name = "http_tmsamlsessionticket";
              String Hdr_tmsasessionticket_Value = token;
              headers.setHeader(Hdr_Version_Name,Hdr_Version_Value);
              headers.setHeader(Hdr_OnBehalfOf_Name,Hdr_OnBehalfOf_Value);
              headers.setHeader(Hdr_Role_Name,Hdr_Role_Value);
              headers.setHeader(Hdr_EndPoint_Name,Hdr_EndPoint_Value);
              headers.setHeader(Hdr_ServiceId_Name,Hdr_ServiceId_Value);
              headers.setHeader(Hdr_DateTime_Name,Hdr_DateTime_Value);
              headers.setHeader(Hdr_ClientApplication_Name,Hdr_ClientApplication_Value);
              headers.setHeader(Hdr_TraceWebMethod_Name,Hdr_TraceWebMethod_Value);
              headers.setHeader(Hdr_ClientTouchPoint_Name,Hdr_ClientTouchPoint_Value);
              headers.setHeader(Hdr_ChannelInfo_Name,Hdr_ChannelInfo_Value);
              headers.setHeader(Hdr_Environment_Name,Hdr_Environment_Value);
              headers.setHeader(Hdr_USER_Name,Hdr_USER_Value);
              headers.setHeader(Hdr_SESSIONID_Name,Hdr_SESSIONID_Value);
              // Necessary For Secure method
              headers.addHeader(Hdr_tmsasessionticket_Name, Hdr_tmsasessionticket_Value);
                   headers.addHeader("otc_header", "otcderiv");
              envelope.addNamespaceDeclaration("xsi","http://www.w3.org/2001/XMLSchema-instance");
              envelope.addNamespaceDeclaration("xsd","http://www.w3.org/2001/XMLSchema");
              envelope.addNamespaceDeclaration("soap","http://schemas.xmlsoap.org/soap/envelope/");
              boolean rem = envelope.removeNamespaceDeclaration("soapenv");
              SOAPBody body = envelope.getBody();
              soapPart.setContentId("");
              Name bodyName = envelope.createName("GetData", "", "http://tempuri.org/");
              SOAPBodyElement createuser = body.addBodyElement(bodyName);
              SOAPConnectionFactory scFactory = SOAPConnectionFactory.newInstance();
              message.saveChanges();
              SOAPConnection con = scFactory.createConnection();
              URL endpoint = new URL("http://abc.xyz.com/securitymanager.asmx");
              System.out.println("INPUT=" + envelope.toString());
              SOAPMessage responsex = con.call(message, endpoint);
              // print the response message
              ByteArrayOutputStream soapResponseStream = new ByteArrayOutputStream();
              responsex.writeTo(soapResponseStream);
              String sOutput = soapResponseStream.toString();
              //System.out.println("OUTPUT=" + sOutput);
              System.out.println(sOutput);
              }catch(Exception e)
              e.printStackTrace();
              }

  • Custom Inserted HTTP Header not showing up in Iplanet Logs

    ALL:
    I have some iPlanet Enterprise/6.0 web servers sitting behind a LoadBalancer. The LoadBalancer is setup in an 'one-armed mode', and takes a client HTTP request passes it onto the server, but during this process, changes the client source IP to that of local static IP that the LoadBalancer has. Due to our setup we cannot change this.
    By changing the client source IP to a local address, we have lost any useful user session tracking that was done by source IP.
    To get around this, I have the LoadBalancer inserting an HTTP header with the client real source IP. Reading the NSAPI Programmer's Guide (Table 7-1 "http://docs.sun.com/source/816-5686-10/07_magnu.htm"), there is an option "%Req->headers.headername%" that can be used with 'flex-int' to log any header value.
    My output from snoop looks as follows:
    HTTP: ----- HyperText Transfer Protocol -----
    HTTP:
    HTTP: GET /plugin.do HTTP/1.1
    HTTP: OrigClientAddr:10.5.4.28
    HTTP: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
    HTTP: Accept-Language: en-us
    HTTP: Accept-Encoding: gzip, deflate
    HTTP: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    HTTP:
    I have set the value to "%Req->headers.OrigClientAddr%" and it still does not show up in the log file. Any clues?
    Works fine in Apache with:
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{OrigClientAddr}i\" \"%{User-Agent}i\"" headerinsert
    CustomLog logs/access_log headerinsert

    Always nice to find resolution to one's own question.
    Fix was to change the header value to all lower case.
    From:
    "%Req->headers.OrigClientAddr%"
    To:
    "%Req->headers.origclientaddr%"

  • Enable http header logging on glassfish 3.1

    Hi,
    On GF 3.1, to enable http header logging to server.log, I've tried setting the following JVM options:
    -Dcom.sun.grizzly.enableSnoop=true
    -Dcom.sun.enterprise.web.connector.grizzly.enableSnoop=true
    I have also tried modifying the domain.xml by adding snoop-enable=true attribute to the element:
    <network-config><transports><transport name="tcp" enable-snoop="true"
    But neither worked. Any help would be appreciated

    oops, wrong version, try this instead:
    asadmin set configs.config.server-config.network-config.transports.transport.tcp.enable-snoop=true
    asadmin set configs.config.server-config.http-service.access-logging-enabled=true

  • 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

  • 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

  • OIF11g - Help on sending user attributes in HTTP header

    Hello, I have a OIF11g setup configured for both IdP and SP. Upon successfull authentication against LDAP, I need to end some user attributes on the HTTP header to the SP application. I do no have OAM in my setup, so there is no option of Webgate or Policy Manager to do that. As far as I read the config doc, I'm in the impression that we need to write a custom authentication engine to accept user credentials and code to authenticate against LDAP and also add attributes to the response header.
    Before I go down that path, just wanted to confirm if anybody has done this with OIF?
    Thanks,
    Sunil.

    Bernhard:
    Actually the headers are not set to null. I have an intermediate index.jsp page which is the first page that is redirected to by the AM - it is this page which calls my LoginServlet.
    The value appears consistently on this index.jsp page but after it is forwarded to the LoginServlet it starts behaving inconsistently. I check the system.out log in my websphere /logs folder and that tells me that LoginServlet does not consistenly get these values from the header.
    The wierd part is that if I use cookies or attributes, it works perfectly - each time every time. However, only in the case of headers (which is the method i am required to do) it behaves inconsistently.
    ANY feedback/help on this would be really appreciated bern.. thanks..
    ~saahil

  • OSB Http Transport Custom Authenticatiion (X509 in Http header)

    Hello!
    I'm trying to solve this case. We have F5 Load balancer that terminates SSL Connections From client to the OSB. When terminating the SSL, the LB adds the clients certificate into headers of the Http request going to OSB.
    OSb proxy service is configured to use custom authentication with token type X509 (only choice in the OSB console).
    What happens when I send the request to OSB, is that I get http code 401 (unauthorized) this error on server log:
    ####<Sep 27, 2011 3:08:05 PM EEST> <Error> <WliSbTransports> <appserver02> <MANSERV02> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1317125285598> <BEA-381327> <Transport-level custom token identity assertion failed
    java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.security.cert.X509Certificate;
    The HTTP header sent to OSB is in the messages below.
    It has also been wihotu the BEGIN CERTIFICATE and END CERTIFICATE lines with same results.
    Can somebody help me in:
    a) Should the certificate be sent in what form from LB to OSB.
    b) How should the OSB/WLS be configured for this to work?
    OSB version is 10.3.1.
    Request to the server is:
    POST /prjTemplateService/ProxyServices/psvcHelloWolrdWSSSLInterface HTTP/1.1
    Accept-Encoding: gzip,deflate
    Content-Type: text/xml;charset=UTF-8
    SOAPAction: "urn:#HelloWorldOperation"
    User-Agent: Jakarta Commons-HttpClient/3.1
    Host: <ip_here>
    Content-Length: 459
    SSLClientCertStatus: ok
    SSLClientCertb64: -----BEGIN CERTIFICATE-----
    MIICHDCCAYUCBE2sABcwDQYJKoZIhvcNAQEEBQAwVTELMAkGA1UEBhMCRkkxCzAJ
    BgNVBAgTAkZJMQ4wDAYDVQQHEwVFc3BvbzEMMAoGA1UEChMDRVpaMQswCQYDVQQL
    EwJUQzEOMAwGA1UEAxMFSnVzc2kwHhcNMTEwNDE4MDkxMDQ3WhcNMTEwNzI3MDkx
    MDQ3WjBVMQswCQYDVQQGEwJGSTELMAkGA1UECBMCRkkxDjAMBgNVBAcTBUVzcG9v
    MQwwCgYDVQQKEwNFWloxCzAJBgNVBAsTAlRDMQ4wDAYDVQQDEwVKdXNzaTCBnzAN
    BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvEPjEn3tvG3YuXlsLZnE7ZOKUJIF0Foy
    c1hp+k7dyGUoHu3Phva7eVOO1cmHaGkFHkg+EnnK3+/Y58EMQAEwPOfQTj0/vSSk
    cEx2X/2p2W7ACldJlYMxx2ZdFa1qaKTXtoieLy23/kJI+ZTfIoB+nmZiPRE9Hq8p
    LTPlcMWVFnkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQC3EZMQieOy4PFh+95R6W7/
    3xaaRm/BzmEU/Wf9JweEwrnttdSmRKsxx9vSkADnD0J7jGO+koym5CWvJHbox4Sk
    QMRPFaTOBRD4hzZeJMidds1LSzUm/QE9PXzjS/HLSjBBs5DmZfdR+uXPSFqTROkd
    87R5veuPX5KeKQHs8iesTw==
    -----END CERTIFICATE-----
    SSLClientCertSN: 4d:ac:00:17
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Hello:client">
    <soapenv:Body>
    <urn:HelloWorldRequest>
    <urn:FirstName>Jolly</urn:FirstName>
    <urn:Surname>Roger</urn:Surname>
    </urn:HelloWorldRequest>
    </soapenv:Body>
    </soapenv:Envelope>
    Response from OSB:
    HTTP/1.1 401 Unauthorized
    Connection: close
    Date: Fri, 30 Sep 2011 08:32:33 GMT
    Content-Length: 1518
    Content-Type: text/html
    X-Powered-By: Servlet/2.5 JSP/2.1
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Draft//EN">
    <HTML>
    <HEAD>
    <TITLE>Error 401--Unauthorized</TITLE>
    <META NAME="GENERATOR" CONTENT="WebLogic Server">
    </HEAD>
    <BODY bgcolor="white">
    <FONT FACE=Helvetica><BR CLEAR=all>
    <TABLE border=0 cellspacing=5><TR><TD><BR CLEAR=all>
    <FONT FACE="Helvetica" COLOR="black" SIZE="3"><H2>Error 401--Unauthorized</H2>
    </FONT></TD></TR>
    </TABLE>
    <TABLE border=0 width=100% cellpadding=10><TR><TD VALIGN=top WIDTH=100% BGCOLOR=white><FONT FACE="Courier New"><FONT FACE="Helvetica" SIZE="3"><H3>From RFC 2068 <i>Hypertext Transfer Protocol -- HTTP/1.1</i>:</H3>
    </FONT><FONT FACE="Helvetica" SIZE="3"><H4>10.4.2 401 Unauthorized</H4>
    </FONT><P><FONT FACE="Courier New">The request requires user authentication. The response MUST include a WWW-Authenticate header field (section 14.46) containing a challenge applicable to the requested resource. The client MAY repeat the request with a suitable Authorization header field (section 14.8). If the request already included Authorization credentials, then the 401 response indicates that authorization has been refused for those credentials. If the 401 response contains the same challenge as the prior response, and the user agent has already attempted authentication at least once, then the user SHOULD be presented the entity that was given in the response, since that entity MAY include relevant diagnostic information. HTTP access authentication is explained in section 11.</FONT></P>
    </FONT></TD></TR>
    </TABLE>
    </BODY>
    </HTML>

    >
    by using Client Cert authentication I have to set HTTPS required to true.
    >
    Yes.
    >
    When I try to invoke this service with http request, it redirects to https service.
    This actually just trashes the entire idea of terminating SSL in the load balancer.
    >
    Not necessarily. Although direct HTTP request to WebLogic is redirected to HTTPS enabled port, you can still use this settings with WebLogic plugin. I'm not aware of your deployment, but I use Apache plugin for WebLogic, terminate SSL on Apache and I'm still able to send requests authenticated by certificate from client through HTTPS.
    I don't know about F5, but I guess there should be similar feature as well.
    http://download.oracle.com/docs/cd/E12840_01/wls/docs103/cluster/load_balancing.html

  • ESB requires "SOAPAction" to be set in HTTP header?

    I'm trying to insert an ESB flow between an existing web service and client. The service and client were previously built with Apache Axis.
    By generating an appropriate WSDL (doc/wrapped rather than Axis' default RPC style) for the existing service, I'm able to connect the ESB to the service.
    The problem is that the existing client (built using Axis) sets the SOAPAction in the HTTP header to empty (SOAPAction: ""), and the ESB appears to require this to be set to the desired operation. If this is a hard requirement, then I can't directly connect the existing client to the ESB flow.
    So, the question is whether it's possible to have the ESB relax the requirement for the SOAPAction header. And if so, how?
    If I can't get the ESB to accept SOAP requests with an empty SOAPAction, then I'll have to create a custom adapter or insert an additional proxy layer (yuk). Anyone else have any suggestions?

    This is all done automatically by FB.
    Just to try something out I just now made a simple app with a label only and tried to upload to Google... FAILED!!!!
    "Market requires versionCode to be set to a positive 32-bit integer in AndroidManifest.xml"
    LOL, FB can't even create this. :-/
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <application xmlns="http://ns.adobe.com/air/application/3.1">
    <!-- Adobe AIR Application Descriptor File Template.
              Specifies parameters for identifying, installing, and launching AIR applications.
              xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/3.1
                                  The last segment of the namespace specifies the version
                                  of the AIR runtime required for this application to run.
              minimumPatchLevel - The minimum patch level of the AIR runtime required to run
                                  the application. Optional.
    -->
    Message was edited by: KesherMedia.Com

  • External Web Service - User and password in HTTP header

    Hi!
    How is it possible to add user and password in the HTTP header in a external web service call? 
    I have created a "Portal Service from WSDL file - Client side" with the wizard in SAP Developer Studio.  I following the Java Development Guide - Web Service Security, and use the <i>secured service connection</i>.  I have also created a new <i>System Landscape</i>, but should the new system be based on HTTP, my own PAR or what?
    How can I check that the user and password is added to the HTTP header or the SOAP envelope? Do I have to scan http traffic with a proxy as Paros or can I find the request sent from SAP EP in the logs?
    Cheers
    Asle

    Hello All,
    I have been struggling a bit while putting a reasonable security framework on a jax-rpc style web service. I'm using JWSDP1.2 to set up the webservice. I've tried to outline my problem below. Please correct me where I'm wrong.
    I've been through the Sun's WS tutorials, but they are not really clear on security. However, from them I surmised that there are two decent authentication techniques. HTTP Basic and mutual authentication (MA) . Both have their drawbacks though. HTTP Basic suffers from poor encryption while MA is a bit difficult to set up on both client and server sides. Another problem with MA is that there is no central repository for users/passwords.
    OK, what I would really like to do is use my own user database to verify users/passwords i.e. use a HTTP Basic like authentication (but at application level) but run it over SSL for encryption. It seems simple, but is it possible?
    Also, I have noted that when I use HTTP Basic on the service side, and use a java client, then setting username/password has no effect. In other words, I can always access the web-service, even with wrong username/password.
    Sorry for the long post. Hope someone can help. Thanks.

  • Problem setting Unicode (utf-8) in http header using tomcat

    Hi:
    I am trying to set a file name in utf-8 to http header using the following code:
    response.setContentType("text/html; charset=utf-8");
    response.setHeader("Content-disposition", "attachment; filename=&#35299;&#27770;.zip");
    // I actually has file name in utf-8 here to set to the header, and I know that the name is correctly
    // and I also looked into the response object MimeHeaders object and saw the head is correctly there
    then write the content of zip file using ServletOutputStream.
    The problem I have is that the file name is not displayed correctly when prompted to save or open in the pop up window next. I found out using Fiddler that the request header is wrong:
    Content-disposition: attachment; filename=&#65533;zn&#65533;�.zip
    I am using Tomcat 5.0.28. Any idea how to get this working?
    Thanks in advance!

    You are setting the charset for the content to be UTF-8. (That is why the method is called setContentType.) But HTTP headers are not part of the content and so that has no effect on the header.
    The original specification for HTTP only allowed US-ASCII characters in headers. It is possible that more recent versions have features that allow for non-ASCII header data, but I don't know if that is the case or how you would use those features if they exist.

  • Adding custom information in HTTP Header in an outgoing request from GWWS

    Is there a way to send custom header information with the a webservice request (HTTP post) that happens via GWWS server?
    All the methods I read about deal with managing the soap envelop that gets sent.
    We are looking for ways which will allow us to put custom information in the headers.
    I am aware there is something we can do using the Salt Plugins.
    For example, we can write a Out bound plugin which has a capability of putting the "Authentication:Basic..." in the header.
    Then there is message conversion plugin which deals with transformation of message, which gives us control over the soap body.
    Is it possible to put information in the header for outgoing request (from GWWS) to a specific web service?
    Thanks and Sincere Regards,
    Mrugendra

    Maurice,
    Thanks for confirming this.
    It clarifies the doubts that I was having while reading through the documentation Xu pointed to.
    Yes, we need to add HTTP Headers (not SOAP header).
    For now we just need to add Basic Authentication HTTP Header for outbound service calls.
    We have developed a plugin to do that for now.
    And even if the salt plugin takes care of adding the Basic Authentication in the HTTP Header for outgoing calls, I guess we do not have any option to include some custom information in the HTTP Header which might be required in the future.
    At-least, not unless we request that enhancement.
    Bringing the plugin into our mix requires a lot of changes to our architecture including inclusion of AUTHSVR in the UBB,
    Which, in turn, makes it imperative to change the endpoint clients of our application.
    In addition to that, the incoming web service calls also need to include TUXEDO authentication information, which would again require either communicating the authentication information to the consumers of our service or device some kind of a proxy which would add the authentication information for all the incoming requests!
    With these facts in mind, we were wondering if we have an easier way to include the HTTP header information.
    As you say, Maurice, it seems it is not possible yet.
    Thank you again for your replies.
    Sincere Regards,
    Mrugendra

  • 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

Maybe you are looking for

  • BDOC message flow and its architecture

    Hi Expert, It can be a simple question but i have a doubt regarding the flow of messages using SAP CRM middleware. The scenario is like: 1. Message flows from ECC to CRM through a BDoc. (It can be opposite way also) 2. The BDoc fails in CRM due to so

  • HT1473 How to I put an audio book from my computer onto my iPod touch4

    Hi, I got an audio book from my library and want to put it onto my iPod but I'm not sure how to. I downloaded the book onto my computer It's an odm file if that helps And the website said it was compadable with iPods But when I hook my iPod up to the

  • External Video Monitoring-In HDV

    How I view my HD fotage in an external monitor for editing? According (Help menu in FCP New features) in FCP "You can now output to external video interfaces whose settings don't match those of your sequence. Here are some examples of some of the pos

  • Error code 1625 upgrade to windows 8.1. I do not want to upgrade from Windows 7

     I am running windows 7 64 bit on HP probook 4440s & recently purchased HP pro mfp m 225dw all in one.    I cannot get wireless printing nor scanning function to work. When I try to download the drivers directly from HP, I get the error nessage.  Any

  • Cannot unlock new htcm8 ?

    help cannot unlock new htcm8 phone