Security prompt from Java with missing checkbox

Hello,
In our application we use jnlp link to launch java windows.
When we click on the link, appear a sécurity prompt containing, the application name, the editor and 2 location for jnlp (The server adress and on a second line the text "Launched from the downloaded jnlp file")
But in this prompt we don't have the checkbox : "Do not show this again..."  (We read this link https://www.java.com/en/download/help/appsecuritydialogs.xml#selfsigned)
Do you know  why we don't have this checkbox ? 
Sincerly

jjegan wrote:
public class NewClass2 {
public static void main(String[] args) {
Runtime p = Runtime.getRuntime();
p.exec("cmd");
I would like to invoke dos prompt from my java application. The above code is not working. What could be the problem? I am using Windows XP m/c with netbeans.You didn't give it hands and feet, i.e. you can't expect the cmd.exe process to fire up a terminal for its input and output; you have to do that yourself. Read all about the Input- and OutputStreams of those sub-processes in the API documentation of the Processs class.
kind regards,
Jos

Similar Messages

  • Calling secured webservice from java

    Hi Experts,
    I am trying to call a secured webservice from java.
    I got the code to call a non secured web service in java.
    What changes do i need to do in this to call a secured webservice.
    Please help me.
    Thank you
    Regards
    Gayaz
    calling unsecured webservice
    package wscall1;
    import java.io.BufferedReader;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.StringBufferInputStream;
    import java.io.StringReader;
    import java.io.StringWriter;
    import java.io.Writer;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    import java.security.Permission;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.ParserConfigurationException;
    import org.apache.xml.serialize.OutputFormat;
    import org.apache.xml.serialize.XMLSerializer;
    import org.w3c.css.sac.InputSource;
    import org.w3c.dom.Document;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    public class WSCall2 {
    public WSCall2() {
    super();
    public static void main(String[] args) {
    try {
    WSCall2 ss = new WSCall2();
    System.out.println(ss.getWeather("Atlanta"));
    } catch (Exception e) {
    e.printStackTrace();
    public String getWeather(String city) throws MalformedURLException, IOException {
    //Code to make a webservice HTTP request
    String responseString = "";
    String outputString = "";
    String wsURL = "https://ewm52rdv:25100/Saws/SawsService";
    URL url = new URL(wsURL);
    URLConnection connection = url.openConnection();
    HttpURLConnection httpConn = (HttpURLConnection)connection;
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    //Permission p= httpConn.getPermission();
    String xmlInput =
    "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://www.ventyx.com/ServiceSuite\">\n" +
    " <soapenv:Header>\n" +
    "     <soapenv:Security>\n" +
    " <soapenv:UsernameToken>\n" +
    " <soapenv:Username>sawsuser</soapenv:Username>\n" +
    " <soapenv:Password>sawsuser1</soapenv:Password>\n" +
    " </soapenv:UsernameToken>\n" +
    " </soapenv:Security>" + "</soapenv:Header>" + " <soapenv:Body>\n" +
    " <ser:GetUser>\n" +
    " <request><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
                "                        <GetUser xmlns=\"http://www.ventyx.com/ServiceSuite\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
                "                        <UserId>rs24363t</UserId>\n" +
                "                        </GetUser>]]>\n" +
    " </request>\n" +
    " </ser:GetUser>\n" +
    " </soapenv:Body>\n" +
    "</soapenv:Envelope>";
    byte[] buffer = new byte[xmlInput.length()];
    buffer = xmlInput.getBytes();
    bout.write(buffer);
    byte[] b = bout.toByteArray();
    String SOAPAction = "GetUser";
    // Set the appropriate HTTP parameters.
    httpConn.setRequestProperty("Content-Length", String.valueOf(b.length));
    httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
    httpConn.setRequestProperty("SOAPAction", SOAPAction);
    // System.out.println( "opening service for [" + httpConn.getURL() + "]" );
    httpConn.setRequestMethod("POST");
    httpConn.setDoOutput(true);
    httpConn.setDoInput(true);
    OutputStream out = httpConn.getOutputStream();
    //Write the content of the request to the outputstream of the HTTP Connection.
    out.write(b);
    out.close();
    //Ready with sending the request.
    //Read the response.
    InputStreamReader isr = new InputStreamReader(httpConn.getInputStream());
    BufferedReader in = new BufferedReader(isr);
    //Write the SOAP message response to a String.
    while ((responseString = in.readLine()) != null) {
    outputString = outputString + responseString;
    //Parse the String output to a org.w3c.dom.Document and be able to reach every node with the org.w3c.dom API.
    Document document = parseXmlFile(outputString);
    NodeList nodeLst = document.getElementsByTagName("User");
    String weatherResult = nodeLst.item(0).getTextContent();
    System.out.println("Weather: " + weatherResult);
    //Write the SOAP message formatted to the console.
    String formattedSOAPResponse = formatXML(outputString);
    System.out.println(formattedSOAPResponse);
    return weatherResult;
    public String formatXML(String unformattedXml) {
    try {
    Document document = parseXmlFile(unformattedXml);
    OutputFormat format = new OutputFormat(document);
    format.setIndenting(true);
    format.setIndent(3);
    format.setOmitXMLDeclaration(true);
    Writer out = new StringWriter();
    XMLSerializer serializer = new XMLSerializer(out, format);
    serializer.serialize(document);
    return out.toString();
    } catch (IOException e) {
    throw new RuntimeException(e);
    private Document parseXmlFile(String in) {
    try {
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource is = new InputSource(new StringReader(in));
    InputStream ins = new StringBufferInputStream(in);
    return db.parse(ins);
    } catch (ParserConfigurationException e) {
    throw new RuntimeException(e);
    } catch (SAXException e) {
    throw new RuntimeException(e);
    } catch (IOException e) {
    throw new RuntimeException(e);
    } catch (Exception e) {
    throw new RuntimeException(e);
    static {
    javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(new javax.net.ssl.HostnameVerifier() {
    public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) {
    if (hostname.equals("ewm52rdv")) {
    return true;
    return false;
    }

    Gayaz  wrote:
    What we are trying is we are invoking webservice by passing SOAP request and we will get soap response back.I understand what you're trying to do, the problem is with tools you're using it will take a while for you do anything a little away from the trivial... Using string concatenation and URL connection and HTTP post to call webservices is like to use a hand drill... It may work well to go through soft wood, but it will take a lot of effort against a concrete wall...
    JAX-WS and JAXB and annotations will do everything for you in a couple of lines and IMHO you will take longer to figure out how to do everything by hand than to learn those technologies... they are standard java, no need to add any additional jars...
    That's my thought, hope it helps...
    Cheers,
    Vlad

  • Invoking command prompt from Java

    public class NewClass2 {
    public static void main(String[] args) {
    Runtime p = Runtime.getRuntime();
    p.exec("cmd");
    I would like to invoke dos prompt from my java application. The above code is not working. What could be the problem? I am using Windows XP m/c with netbeans.

    jjegan wrote:
    public class NewClass2 {
    public static void main(String[] args) {
    Runtime p = Runtime.getRuntime();
    p.exec("cmd");
    I would like to invoke dos prompt from my java application. The above code is not working. What could be the problem? I am using Windows XP m/c with netbeans.You didn't give it hands and feet, i.e. you can't expect the cmd.exe process to fire up a terminal for its input and output; you have to do that yourself. Read all about the Input- and OutputStreams of those sub-processes in the API documentation of the Processs class.
    kind regards,
    Jos

  • Call report from java with deployment of java web start

    I need call report from java,the call function is:execURL ( String pURL )
    pURL is a url link to call report from report services .
    such as :http://10.20.1.43:8888/reports/rwservlet?destype=cache&desformat=PDF&report=test.rdf&user=scott/tiger@cims
    public static void execURL ( String pURL )
    String tempstr = new String();
    int posIdx = 0;
    if ( (System.getProperty("os.name").equals("Windows NT"))||
    (System.getProperty("os.name").equals("Windows 2000")) )
    posIdx = pURL.indexOf("&");
    while ( posIdx > 0 )
    tempstr = pURL.substring(0,posIdx)+"^"+pURL.substring(posIdx);
    pURL = tempstr;
    posIdx = pURL.indexOf("&",posIdx+2);
    try
    Runtime.getRuntime().exec("cmd /c start "+pURL);
    catch (Exception e1) {System.out.println(e1.getMessage()); }
    else
    try
    Runtime.getRuntime().exec("start "+pURL);
    catch (Exception e2)
    System.out.println(e2.getMessage());
    It's run with no problem with deployment of simple jar.
    But when i call report with deployment of java web start,it can not.
    I think it's java secuity problem,so i add
    Permission java.io.FilePermission "c://winnt//system32//cmd.exe", "execute";
    in java.policy file in client(windows 20000).However ,it can not too.
    Who can help me,Thanks in Advance!

    David,
    In your code, 'cmd' is invoked as Runtime.getRuntime().exec("cmd /c start "+pURL);
    but in your policy file you specify
    Permission java.io.FilePermission "c://winnt//system32//cmd.exe", "execute";
    Before creating a new process, the security manager checks for FilePermission(cmd,"execute")
    if cmd is an absolute path, otherwise it calls checkPermission with
    FilePermission("<<ALL FILES>>","execute"). Try specifying
    FilePermission("<<ALL FILES>>","execute") in your policy file.
    But, I believe using exec, may not be the right solution as it may not work on
    other platforms. Also you will have to expect the client m/c to relax security
    permission.
    Did you consider using java.net.HttpUrlConnection class instead to access the report
    service URL?
    HTH,
    Sathish.

  • Problem while Calling a CGI pgm From Java with code sample

    Hey guys,
    I am calling a CGI program from java servlet, while calling cgi program I am passing encoded(Base64) content via post process,
    My problem is the encoded data is not posted as expected, the encoded data is corrupting. But when I send encoded data in a text file, cgi program is perfectly decoding and working fine.
    Here I am doing Base64 encoding as per requirement, I cannot avoid this encoding.
    My doubt is about OutputStreamWriter constructor argument , In OutputStream Constructor I am passing one argument is OutputStream object and another argument is encoding type. I tried with ASCII, US-ASCII & UTF-8 .
    My code is as follows, please help me to resolve this issue.
    URL url = new URL("CGI server path");
    URLConnection urlConnection = url.openConnection();
    urlConnection.setDoOutput(true);
    OutputStream os = urlConnection.getOutputStream();
    BufferedOutputStream buffer = new BufferedOutputStream(os);
    OutputStreamWriter  writer = new
                                                   OutputStreamWriter(buffer, "US-ASCII");
    writer.write(encodedPDF-Content);
    writer.write("\r\n");
    writer.flush();
    writer.close();
    here encodedPDF-Content is String and it's size is 9565 bytes

    Whenever you read something in java into string (with Reader implementation) it expects source to contain text in encoding you specified. It then decodes it and makes 16 bit unicode string from it. Whenever you store string using Writers it does reverse operation with specified encoding (may be different than this which you used to read source) and stores text as a sequence of bytes made of 16 bit unicode string. So, passing text back and forth between programs with the help of files or I/O you can make mistake at both reading and writing encoding. Check for it.
    Now, when C programm or other application reads file it may take another assumptions about encoding or may even completly ignore it and read source as a binary file. Then, if you have a source text as a file and have to pass it to other application never do it using Reader/Writer. User raw InputStream/OutputStream instead what will preserve all information unchanged.
    here encodedPDF-Content is String and it's size is 9565 byteHow id you get this info? String.length() gets you how many chars is in it, it will be half the number of bytes. If you see your input file beeing 9565 bytes long, see my above statements.

  • Enter Ms Acess from java with password

    I've written a program that can save the user's detail into a database, which was build with MS Access. This database has been set a password which i need to enter password to access the table to view the data.
    What the java code need to enter the ID and password to connect to the database, but my database onli need the password. So how to connect to the database from java source code.
    This is the part of the code:
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    // set this to a MS Access DB you have on your machine
    String filename = "./database/dbImportant.mdb";
    String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
    database+= filename.trim() + ";DriverID=22;READONLY=true}"; // add on to the end
    // now we can get the connection from the DriverManager
    Connection con = DriverManager.getConnection( database ,"","");

    Connection con = DriverManager.getConnection( database ,"","");
    What should i put into the 2 parameter? One is ID and password, but my database onli need password. If i enter the password parameter only, it will fail to access the database.

  • Generated pdf file from shared component missing checkbox

    I have created a report queries under shared component. The output format is pdf. I have created a rtf template. In the template, I have to insert a checkbox. At first it didn't work, then I have added Checkbox shows fine when I preview the report using Microsoft Word (Add-Ins). I have added following two lines in the xdo.cfg file (under C:\Program Files\Oracle\BI Publisher\BI Publisher Desktop\Template Builder for Word\config):
    <truetype path="C:\WINDOWS\fonts\wingding.ttf" /> and
    <property name="rtf-checkbox-glyph">Wingdings;0254;0168</property>
    After that, when I view output from word, it shows checkbox correctly. However, when I click Test Report button from Apex, everything looks fine except missing checkbox. It shows ? symbol instead of checkbox symbol. So something must been done in apex server side. Does anyone know how to config in the apex server side to make checkbox show up in the pdf file? Thanks advance.

    You need to setup BI Publisher. Follow the instuctions at http://chandramatta.blogspot.com/2009/10/bi-publisher-how-to-print-check-box-on.html

  • Calling html from java with some values

    Hello friends,
    I can call a HTML file from java.I want to pass some values from java class file to that html file.Anybody help me how to pass parameters?
    Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler http://localhost:8080/jcoDemo/dp.html");
    is one i am using for calling html file
    thanks

    Just add GET query parameters to the URL.
    Besides, if you were using Java 1.6 or newer, then rather use [Desktop#browse()|http://java.sun.com/javase/6/docs/api/java/awt/Desktop.html#browse(java.net.URI)] instead of Runtime#exec(). It is crossplatform while your runtime approach works in Mircosoft Windows systems only.

  • Starting IExporer.exe from java with J9 in an IPAQ

    Hi all,
    I'm trying to run IExplorer.exe from a java program in a IPAQ with j9 cvm.
    I did try it in Windows 2000 and it works fine but when running it in the IPAQ with Windows CE it throws an exception.
    Looks like the Exception is thrown because it can not find the file, but I think I'm writing the correct path and file name.
    Here is the code and the exception. Can any one try it and tell me what Am I doing wrong.
    Thanks a lot.
    String s = "\\Windows\\iexplore.exe";
    //String s = "\"C:\\Program Files\\Internet Explorer\\IEXPLORExx.EXE\"";
    try
    System.out.println("s: " + s);
    Runtime runtime = Runtime.getRuntime();
    Process p = runtime.exec(s);
    catch(IOException ioEx)
    ioEx.printStackTrace();
    java.io.IOException: Unable to start program
    Stack trace:
    com/ibm/oti/lang/SystemProcess.create([Ljava/lang/String;[Ljava/lang/String;L
    java/io/File;)Ljava/lang/Process;
    java/lang/Runtime.exec([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)L
    java/lang/Process;
    java/lang/Runtime.exec(Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Lj
    ava/lang/Process;
    java/lang/Runtime.exec(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Proce
    ss;
    java/lang/Runtime.exec(Ljava/lang/String;)Ljava/lang/Process;
    com/gestorPosicion/inicio/InicioCliente.main([Ljava/lang/String;)V                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    The problem is that on PocketPC you cannot redirect input or output and the exec() call will not work as expected so it instead throws the exception to indicate this doesn't work on PocketPC.

  • Ical - deleted events prevent from syncing with missing sync

    When I try to sync ical with my windows mobile 5.0 running Motorola Q via Missing Sync, I always encounter an error message that one of my ical-events prevents Missing Sync from an error-free sync.
    This message comes up when I start Missing Sync: "iCal is reporting synchronization errors. One or more calendar events may not have synchronized properly from iCal. Errors may prevent this application from completing a successful synchronization."
    The Missing Sync Protocoll rerfers to an event which I did already delete. So here's the question: how do I really get rid of a ical event which I have already deleted?

    Same here. After the update to 10.5 I have succesfully done one sync between my Treo and iCal using MissingSync. Now iCal gives an error, see below. What is the workaround? Downgrading to 10.4.x? Or get an iCal 2 somewhere and run that?
    I really want to get my ToDo and Calendar data from my Treo before I go from my Treo 650 to an iPhone. Any workaround is welcome.
    iCal says:
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] 2008-02-12 16:07:25.184 iCalExternalSync[749:10b] [ICalExternalSync ]Encountered [ISyncConcreteSession pushChangesFromRecord:withIdentifier:]: you can't change the record's entity name from com.apple.calendars.DisplayAlarm to com.apple.calendars.AudioAlarm in {
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] "com.apple.syncservices.RecordEntityName" = "com.apple.calendars.AudioAlarm";
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] owner = (
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] "Event/p5333"
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] );
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] triggerduration = -300;
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] }
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] 2008-02-12 16:07:25.185 iCalExternalSync[749:10b] [ICalExternalSync ]NSException name:NSInvalidArgumentException reason:[ISyncConcreteSession pushChangesFromRecord:withIdentifier:]: you can't change the record's entity name from com.apple.calendars.DisplayAlarm to com.apple.calendars.AudioAlarm in {
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] "com.apple.syncservices.RecordEntityName" = "com.apple.calendars.AudioAlarm";
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] owner = (
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] "Event/p5333"
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] );
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] triggerduration = -300;
    12/02/2008 16:07:25 [0x0-0x1e01e].com.apple.iCal[191] }

  • Calling an application from java with cmd

    hi there
    the problem is that I need to call a windows application passing args (using cmd would be a good idea I think)
    if you are familiar with C I just need a method in java that works like the function
      system("progr  args... ");any ideas?

    Runtime.exec()i 've tried that but it doesn't seem to work as i
    wanted
    perhaps i need some more research!!!
    thanks!!!!Did you read the article I posted? It is usually enough to get a good start.
    Also, specifically what do you mean by "it doesn't seem to work"?

  • Security Exception from Java stand-alone program on Linux

    Hi All,
    I am getting the following exception while running a Java stand-alone program on Linux.
    The stand-alone program internally calls the JCE (Java Cryptography Extension) library for Encryption of data.
    Does anybody have the solution for this error?
    Is there any Security policy modification to be made for the same?
    Exception in thread "main" java.lang.ExceptionInInitializerError
    at javax.crypto.Cipher.a(Unknown Source)
    at javax.crypto.Cipher.getInstance(Unknown Source)
    at lncrypt.LnCryptBase.encryptImpl(LnCryptBase.java:122)
    at lncrypt.LnAes.encrypt(LnAes.java:78)
    at CloakingUtils.encrypt(CloakingUtils.java:69)
    at AlertsMigrationSweepUtil.updateAlerts(AlertsMigrationSweepUtil.java:203)
    at AlertsMigrationSweepUtil.main(AlertsMigrationSweepUtil.java:65)
    Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs
    at javax.crypto.e.<clinit>(Unknown Source)
    ... 7 more
    Caused by: java.lang.SecurityException: Jurisdiction policy files are not signed by trusted signers!
    at javax.crypto.e.a(Unknown Source)
    at javax.crypto.e.a(Unknown Source)
    at javax.crypto.e.g(Unknown Source)
    at javax.crypto.f.run(Unknown Source)
    at java.security.AccessController.doPrivileged1(Native Method)
    at java.security.AccessController.doPrivileged(AccessController.java:351)
    ... 8 more
    Regards,
    Vilas Kulkarni

    No security modification is normally required. I can't be sure but it looks to me like the jar file containing the package javax.crypto.e has not been signed by Sun. If you are writing your own provider then you would do well to look at reply #7 of http://forum.java.sun.com/thread.jspa?threadID=5222038 .

  • Calling c method from java with jniwrapper

    Hello
    Does anyone have any good example or links to j�niwrapper method.
    I have checked documentation www.jniwrapper.com. However i think I would need a clear example or example code on how to call an c function from javaprogram.
    Please help!
    Regards Land�

    Does jniwrapper work with MIDP 2 on the devices that have kvm..?

  • "URL cannot be found" prompt from iTunes with my podcast

    I published the second episode of a new podcast of mine and iTunes is telling me that the URL cannot be found.  When I go to the url, it cannot be found, but the feed is valid.  Any suggestions?
    http://terranovacast.com/feed/podcast
    I did take out the "feed" and went to http://terranovacast.com/podcast and that worked fine.
    The first episode uploaded to iTunes just fine and can still be accessed from within iTunes.
    Any help is greatly appreciated. 

    iTunes is looking for a feed at http://terranovacast.com/feed/podcast . There is no file at this address. The other link you give leads to a directory index which is no use to iTunes.
    Until you restore a feed at http://terranovacast.com/feed/podcast your podcast cannot be subscribed to and will not update in the Store when you add further episodes.
    Your web page at http://terranovacast.com/ has a 'subscribe to iTunes' link but this simply leads to the same page. It would be best to link to the iTunes URL:
    http://itunes.apple.com/gb/podcast/terra-novacast/id465808122

  • Open Browser with No Address Bar from Java

    How to open a IE Browser from Java with no address bar, tool bar etc ?
    I am able to open browser like the listed code, but the requirement for me is it has to open with no "Address Bar", buttons.
    I know we can do that in "Javascript" but how to or is there a way to do that in java/swing.
    Any help is greatly appreciated.
    String WIN_FLAG = "url.dll,FileProtocolHandler";
    String WIN_PATH = "rundll32";
    String url = "www.google.com"
    String cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
    Runtime.getRuntime().exec( cmd );

    Use javascript for this. I would do it this way....
    You can decide with JS if you want tot hide so elements from your browser. Should not be very difficult to implement

Maybe you are looking for