BSL as a Web Service.  How to get the client Hostname?

Hi group,
Is it possible to read the calling client computer name from within a Transaction execution when called as a Web Service (HTTP GET)?
Some function that would return the same as
Request.ServerVariables["REMOTE_HOST"]
or
req.getRemoteHost();
from an HTTP Web Server.
Thanks,
Francois.

Thanks Doug,
I followed your advice with a slight modification as the name of the parameter is Machine instead of IP.
/XMII/PropertyAccessServlet?mode=Retrieve&PropName=Machine&Content-Type=text/xml
I accessed this system parameter by using the string above as the URL of an XML Query action block from within my existing BSL transactions.  This aligns better with our current way of exposing the our MII transactions as Web Services.
Using the XAcute query as proposed by Udayan also works but this would have meant exposing a new interface ( XAcute Query instead of the transaction default Web Service via the /Runner URL).
Thank you both.

Similar Messages

  • Web Services: How to get the username token?

    Hello everybody,
    I wrote an EJB, Exposed it as a web service.
    I'm using encryption+username as the inbound policy.
    The client is adding a username token to the message.
    I understood that the userpassword are checked automatically and I don't need to implement that myself but I need the userpassword from this token for another reason.
    How can I get this information in the EJB's code?
    Thanks, Adi.

    You can get the user from Session Bean's context.
    myContext.getCallerPrincipal();
    I think you cannot get the password. That way, it would be easy to disguise your WS as another one you could want to crack.
    Regards.

  • GSS-API How to get the client-to-service ticket

    In Kerberos when requesting services, the client sends the following two messages to the TGS: A composed message of the Ticket-Granting Ticket and the ID of the requested serviceand authenticator (which is composed of the client ID and the timestamp), all encrypted using the client/TGS session key.
    Then upon receiving these messages the TGS sends the followings to the client:
    A: Client-to-server ticket (which includes the client ID, client network address, validity period and Client/server session key) encrypted using the service's secret key.
    B: Client/server session key encrypted with the client/TGS session key.
    Now I'm wondering how to obtain A and B throught the kerberos login in GSS-API . I have the following code that I use to request a kerberized service but it returns only a KerberosTicket in PrivateCredentialsSet for the Subject. A sessionKey can also be obtained form this KerberosTicket ! Which session key is this ? the session key B described above? and Where to get the Client-to-server ticket (A) described above ?
    Thanks for any help !
    Alex
    lc = new LoginContext("login-client", new TextCallbackHandler());
    lc.login();
    mysubject = lc.getSubject();
    java.util.Set principals = lc.getSubject().getPrincipals();
    java.util.Iterator iterador = principals.iterator();
    if (iterador.hasNext()){
    KerberosPrincipal principal = (KerberosPrincipal) iterador.next();
    clientName =principal.getName();
    PrivilegedAction generateServiceTicket = new ClientAction(clientName,"[email protected]");
    Subject.doAs(mysubject, generateServiceTicket);
    Set prvCredentials = lc.getSubject().getPrivateCredentials();
    for (Iterator i = prvCredentials.iterator(); i.hasNext(); j++) {
    KerberosTicket ticket = (KerberosTicket) i.next();
    prvKrbCrds = (KerberosTicket[]) mysubject.getPrivateCredentials().toArray(new KerberosTicket[0]);
    public Object run() {
    try{
    GSSManager manager = GSSManager.getInstance();
    Oid krb5Mechanism = new Oid("1.2.840.113554.1.2.2");
    Oid krb5PrincipalNameType = new Oid("1.2.840.113554.1.2.2.1");
    GSSName userName = manager.createName(pn,GSSName.NT_USER_NAME);
    GSSCredential cred = manager.createCredential(usr,
    GSSCredential.DEFAULT_LIFETIME,
    krb5Mechanism,
    GSSCredential.INITIATE_ONLY);
    GSSName peerName = manager.createName(servicename,
    GSSName.NT_HOSTBASED_SERVICE, krb5Mechanism);
    GSSContext setContext = manager.createContext(peerName, krb5Mechanism, cred,
    GSSContext.DEFAULT_LIFETIME);
    setContext.requestInteg(false);
    setContext.requestConf(false);
    byte[] inputBuf = new byte[0];
    byte[] tkt = setContext.initSecContext(inputBuf, 0, 0);
    }catch(GSSException gsse){
    gsse.printStackTrace();
    }

    In Kerberos when requesting services, the client sends the following two messages to the TGS: A composed message of the Ticket-Granting Ticket and the ID of the requested serviceand authenticator (which is composed of the client ID and the timestamp), all encrypted using the client/TGS session key.
    Then upon receiving these messages the TGS sends the followings to the client:
    A: Client-to-server ticket (which includes the client ID, client network address, validity period and Client/server session key) encrypted using the service's secret key.
    B: Client/server session key encrypted with the client/TGS session key.
    Now I'm wondering how to obtain A and B throught the kerberos login in GSS-API . I have the following code that I use to request a kerberized service but it returns only a KerberosTicket in PrivateCredentialsSet for the Subject. A sessionKey can also be obtained form this KerberosTicket ! Which session key is this ? the session key B described above? and Where to get the Client-to-server ticket (A) described above ?
    Thanks for any help !
    Alex
    lc = new LoginContext("login-client", new TextCallbackHandler());
    lc.login();
    mysubject = lc.getSubject();
    java.util.Set principals = lc.getSubject().getPrincipals();
    java.util.Iterator iterador = principals.iterator();
    if (iterador.hasNext()){
    KerberosPrincipal principal = (KerberosPrincipal) iterador.next();
    clientName =principal.getName();
    PrivilegedAction generateServiceTicket = new ClientAction(clientName,"[email protected]");
    Subject.doAs(mysubject, generateServiceTicket);
    Set prvCredentials = lc.getSubject().getPrivateCredentials();
    for (Iterator i = prvCredentials.iterator(); i.hasNext(); j++) {
    KerberosTicket ticket = (KerberosTicket) i.next();
    prvKrbCrds = (KerberosTicket[]) mysubject.getPrivateCredentials().toArray(new KerberosTicket[0]);
    public Object run() {
    try{
    GSSManager manager = GSSManager.getInstance();
    Oid krb5Mechanism = new Oid("1.2.840.113554.1.2.2");
    Oid krb5PrincipalNameType = new Oid("1.2.840.113554.1.2.2.1");
    GSSName userName = manager.createName(pn,GSSName.NT_USER_NAME);
    GSSCredential cred = manager.createCredential(usr,
    GSSCredential.DEFAULT_LIFETIME,
    krb5Mechanism,
    GSSCredential.INITIATE_ONLY);
    GSSName peerName = manager.createName(servicename,
    GSSName.NT_HOSTBASED_SERVICE, krb5Mechanism);
    GSSContext setContext = manager.createContext(peerName, krb5Mechanism, cred,
    GSSContext.DEFAULT_LIFETIME);
    setContext.requestInteg(false);
    setContext.requestConf(false);
    byte[] inputBuf = new byte[0];
    byte[] tkt = setContext.initSecContext(inputBuf, 0, 0);
    }catch(GSSException gsse){
    gsse.printStackTrace();
    }

  • How to get the client date and time ?

    Dear Sirs...
    Using jdeveloper 10.1.2.0
    How can i get the client date and time using the HttpServletRequest ?
    thanks for any help in advance
    best regards

    If your code is running on the client pc you can just create a new instance of the java.util.Date class. That class automatically defaults to the current time of the client machine. Otherwise if you're running the code on the server, you could insert/post the client date/time by adding its string representation as a parameter to the HTTP request object.
    Ronald

  • How to get the client identity from the certificate at server side

    hi, this is ravi kiran,
    I am working on a project which requires, receiving a signed file from the client side and verify whether the file is signed by a valid certificate that is there in the servers keystore.
    How can i get the client certificate at server side and check with the certificates already present in the servers keystore.
    i have no idea how to do this
    can any one help me
    thanx in advance

    Hi Ravi, did you get any answer to your question ?
    I'm also after a similar problem, please share your solution, if you have any.

  • How to get the CLIENT OS USER NAME using Apex

    Dear All,
    I know there are many other posts (some of them are very old) discuss about this issue. But unfortunately most of the posts endup with NO PROPER ANSWER. But still I believe that tehre has to be some way to do this. So this is my requirement.
    I am using custom authentication module and I want to get the CLIENT MACHINE OS USER NAME for that. But I do not want to do any authentication against the client user domain.
    How can I get this?
    * There are some other way to get this using VB Scripts. But thats not a real solution for this due to followings
    01. User has to manually allow to run VB scripts. So if user dissable that then we canot get the required info
    02. Its working only with specific browsers(Mainly in IE and also we can get that thing work after installing plugins to Firefox.). So this is also depends with the bvrowser and plugings.
    What I want to do is to get this info using a common way which is not depends with the browser or any thirdparty plugins.
    Thanks,
    Alex

    Its good that you did some searching in the forums before you posted the question.
    Most modern browsers would consider what you require as a security/privacy issue and prevents such information from being transmitted available(easily). IE might let you pull out this using a VB script or activex control. Browser specific addons/extension could work but they need some kind of installation to start with. Java could be a way to do it with all browsers, but the end user still has to grant access before it can do any such thing.
    Lets say you were able to pull out such information from an end user, what would be next, get his mail id from outlook ? , access his browsing history, steal credit card information or read cookies?
    Add to that , what if the end user accesses it using any other OS(linux,macintosh or even a smartphone) ? what about windows vista and windows 7 OS's , are you going to write code to handle all those cases too ?
    Here's a blog posting which explains using NTLM authentication with Apex(it still needs configuration from the end user)
    What I want to do is to get this info using a common way which is not depends with the browser or any thirdparty plugins.I guess if this is the question, then the answer would have to be no. I don't think you will be able to find a method that passes this information from the client side without any modification/configuration at their side

  • Problem calling web service: Error while getting the ORACLE user account

    Hi All!
    I was able to call the service EGO_ITEM_PUB-PROCESS_ITEM, but after implemented some patches, suddenly I get this error as result:
    - <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    - <env:Body>
    - <OutputParameters xmlns="http://xmlns.oracle.com/apps/ego/soaprovider/plsql/ego_item_pub/process_item__1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <X_INVENTORY_ITEM_ID xsi:nil="true" />
    <X_ORGANIZATION_ID xsi:nil="true" />
    <X_RETURN_STATUS>U</X_RETURN_STATUS>
    <X_MSG_COUNT>1</X_MSG_COUNT>
    <X_MSG_DATA>Encountered an error while getting the ORACLE user account for your concurrent request. Contact your system administrator.</X_MSG_DATA>
    </OutputParameters>
    </env:Body>
    </env:Envelope>
    Any ideas?
    Thanks,
    Konrad

    hsawwan wrote:
    Hi,
    I was able to call the service EGO_ITEM_PUB-PROCESS_ITEM, but after implemented some patches, What are those patches?
    # Patch 8407693:R12.TXK.B ISG: Service Generation Failure - Java Compiler Could Not be Found
    # Patch 8459663:R12.OWF.B : Mandatory Consolidated One-Off Fixes for ISG on Top of 12.1.1
    # Patch 8916358:R12.OWF.B : Service Timeout When Invoking Services Deployed to Integrated SOA Gateway
    # Patch 9349321:R12.OWF.B : Issue with item Bulk Load in Oracle Product Hub PIP 2.4
    # Patch 9446625:R12.FND.B : 1OFF:8995921:12.1.1:12.1.1:PERF : LoginModules Performance Issue
    # Patch 9070077:R12.OWF.B : 1OFF:9045280:12.1.1:12.1.1:Invoking a Web Service Requires NLS Lang When It Should be Optional
    # Patch 9153106:R12.OWF.B : IREP_Parser.PL Exits with GETPWUID Function IS Unimplemented in PARSER.PM -> Wichtig für ISG (für custom pl/sqls im ISG)
    # Patch 9004712:R12.OWF.B : One-Off for IREP PARSER on Top of Oracle E-Business Suite Release 12.1.1 -> Wichtig für ISG (für custom pl/sqls im ISG)
    IAS:
    # Patch 8607523 for the AS version 10.1.3.4
    Oracle Support told me that I need this patches because of some other problem (generating wsdl and deploy for BOM_BO_PUB package does not work in my environment) and since that, the process_item call stopped working!
    btw: The EGO_ITEM_PUB-PROCESS_ITEM call for an existing item still works (I can modify the description), but creating a new item does not work anymore. Here are the parameters I send to the web service:
    Header:
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:UsernameToken>
    <wsse:Username>sysadmin</wsse:Username>
    <wsse:Password
    Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">sysadmin</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    <q0:SOAHeader/>
    Body:
    <q1:InputParameters>
    <q1:P_API_VERSION>1.0</q1:P_API_VERSION>
    <q1:P_INIT_MSG_LIST>T</q1:P_INIT_MSG_LIST>
    <q1:P_COMMIT>T</q1:P_COMMIT>
    <q1:P_TRANSACTION_TYPE>CREATE</q1:P_TRANSACTION_TYPE>
    <q1:P_ITEM_NUMBER>KHR_WS_05</q1:P_ITEM_NUMBER>
    <q1:P_DESCRIPTION>desc2</q1:P_DESCRIPTION>
    </q1:InputParameters>
    Thanks,
    Konrad

  • HTTP SERVICE - How to get the value of my params on the server side

    I am new to flex and with the url limitation i was trying to
    do the following ....send a bunch of ids... using params variable
    var myservice:HTTPService = new HTTPService();
    myservice.url = url;
    myservice.method = "POST";
    myservice.resultFormat = "e4x";
    myservice.send(params);
    The question is how do i get the value i passed on using
    params on the server side? can the variable params be a string or
    array or does it have to be object type?
    Any help would be greatly appreciated.

    Most server side languages have a function or an array where
    you extract the variables. in PHP they arrive in global arrays
    called $_POST and $_GET.
    Other languages have methods like request.formvars or
    request.query. Check your serverside language on how that is
    done.

  • Web services : how to measure the volume and numbers WS sent and received

    Hello,
    I have to know the numbers of WS used (and which one ?) to make some statistics.
    Which transactions or tools can I use ?
    Transaction WSADMIN is not enough.
    Thanks a lot.

    At moment we haven't any consulting request open to SAP .
    We want use SAP Hana XS because all the datawarehouse data are stored into the Hana Database and at moment we don't have other software like ESP .
    The basic idea is to
    - Receive the client requests via HTTP REST in the XSJS
    - Resolve the request via Hana SQL in pushdown 
    - Sent the resolved request by consuming an external web services on another server (non SAP) .
    we can do all of this task in hana XS but at moment the problem is that the transaction betwen CLIENT/ SERVER XS the remain open...
    what do you think about that ?

  • How to get the client certificate at server side

    hi, this is ravikiran
    I am working on a project which requires, receiving a signed file from the client side and verify whether the file is signed by a valid certificate that is there in the servers keystore.
    I have no idea how to do this.
    can anyone help me.
    thanx in advance.

    [sorry, deleted irrelevant wrong answer]

  • How to get the client's IP address from within Java Studio Creator JSP/Java

    Hi there.
    I just started using the Java Studio Creator 2 and now I need to get hold of the client IP address - this should be part of the request, but I cannot fint the right way to get hold of that information. I want to be able to access this information from within the Java-code in a JSP/JSPF-page.
    Is there a new way of doing:
    request.getRemoteAddr();
    This is the way I remember it from the JSP/Servlet-days...
    Sincerely,
    - Oystein Saebo -

    javax.servlet.http.HttpServletRequest req = (javax.servlet.http.HttpServletRequest) getExternalContext().getRequest();
    req.getRemoteAddr();

  • How to Get the Client's Environment Variables?

    I have a page which need inputing account of the intranet then send a mail upon the intranet.So,it is important for me to verify if the account is legal or if this account is the user himself or herself in order to refuse any bad sending.
    Of course I can get Environment Variables of "user.name" of my own PC.But How can I get Others before they can send mail?

    You can't read with an applet some system properties, including the "user.name" property. Not even with a signed applet.
    Here you have some links:
    http://java.sun.com/docs/books/tutorial/applet/practical/properties.html
    http://java.sun.com/docs/books/tutorial/applet/practical/security.html
    http://java.sun.com/sfaq/#getProps
    So you should find another way, for instance authentication.

  • Pls help : How to get the client ip address in EJB

    Hi experts,
    I need to find the ip addr of the client which makes the remote call.
    I tried using
    java.rmi.server.RemoteServer.getClientHost()
    But it throws ServerNotActiveException .
    When I tried this in RMI it works fine perfectly.
    If i am right EJB is just similar to RME and it should work in it too..
    Can you please help me in finding out the ip address of the client which makes the ejb call.
    Thanks & Regards,
    Mukunt

    Hi Mukunt,
    There is no portable way to do this in the Remote EJB programming model. The bean class
    is written in a way that is agnostic to those kind of plumbing-related details of the caller.
    --ken                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to get the list of values for a dynamic parameter using Web Services SDK?

    <p>I am struggling to get the list of values for a dynamic parameter of a report.</p><p>I am using Java Web Services SDK ... I tried to use PromptInfo.getLOV().getValues() method but it does not work.</p><p>First of all ... is this possible (to get the list of values for a dynamic param) using Web Services?</p><p>Second of all, if this is possible, how should I do it ... it seems it works fine when running the report from CMC. It asks for DB logon info and after that it provides a list of values.</p><p>Thx </p>

    <p>Your assumption is correct. We are trying to get the LOVs from the Crystal Report. I was not aware that this is not supported by Web Services SDK.</p><p>We used Web Services SDK to integrated the Crystal Reports in our web application. We implemented some basic actions for reports: schedule, view instances, run ad-hoc reports.</p><p>We encountered this problem when trying to run/schedule reports with dynamic parameters (a list of values from DB). We were unable to get the LOVs.</p><p>Please let me know if you can think of an alternative to look at.</p><p>Thanks a lot,</p><p>Catalin </p>

  • How to Get the Debugger Screen in WEB Front end of SRM

    Hi Gurus,
    I have couple of questions for SRM.
    1. How to Get the Debugger Screen in WEB Front end of SRM so i can debug the application which is running in EBP system??
    2. How to set the flag for external debugging (HTTP)??
    3. Using SICF how to set the ITS services ( Like BBPSC01 )for internal ITS so as soon as i place the order it should stop at the break point which i have set in the application.
    Thanks.
    Regards,
    Manoj Tiwari

    Setting up Debugging for Integrated ITS
    Tcode SICF.
    Select service (e.g. default_hostàbcàguiàsapàitsàbbpsc01).
    Change service settings and insert parameter ~GENERATEDYNDPRO=1.
    Find program to debug. E.g. SE93. Enter bbpsc01 à Display and get Program field (SAPLBBP_SC_UI_ITS)
    Execute SE38 and enter program name.
    Turn HTTP Debugging ON. UtilitiesàSettingsàDebugging. Click Actv and username.
    Add HTTP Breakpoint. Display source code and select Utilitiesàbreakpointsàset.
    On “External Debugging” select ‘HTTP Breakpoint’.
    Remember to remove breakpoints, deactivate debugging and remove parameter GENERATEDYNPRO.
    Can run program RSBREAKPOINTS to find which programs you have breakpoints set in.
    Have fun with EBP
    If you have any more questions i would be happy to help you. Send me mail on [email protected]

Maybe you are looking for

  • Query on a cube using abap

    Hello, i've programed a report and I want to get data from a cube in bw. How can I access them? Via MDX - ior is MDX only for external queries? I can't find a example to use the MDX functions. Alexander

  • SQL Developer 3.2 crashes with java error when using OCI/Thick Driver

    I just installed SQL Developer 3.2 on my linux desktop. SQL Developer crashes with a java error when I select a database from the object tree. When I check Use OCI/Thick driver the application will crash when I navigate to the tree and open a databas

  • Feasiblity study - weblogic 10.3 can connect to Oracle 8i

    Can weblogic 10.3 application server connect to Oracle 8i database. As weblogic 10.3 can be installed with jdk 1.6 only. So can this be used to deploy applications which connect to Oracle 8i database.

  • Manual Adjust

    It says in the Help section: "To make manual color adjustments by changing a photo's saturation, temperature, or tint, click the Adjust button in the Edit toolbar and drag the Saturation, Temperature, and Tint controls". I do not see an "Adjust butto

  • Macbook Pro won't start after Combo drive replacement

    I have a Macbook Pro 1,1 which had a non-functiong Combo drive. I got a similar Combo drive out of a Macbook 1,1, and put it in the mbp. I have the HD partitioned in three with 10.6.3, 10.6.8 and Windows XP on the partitions. Since replacing the Comb