I will port your code in Scala :-)

Best.

Julien.


2013/5/2 Jona Christopher Sahnwaldt <[email protected]>

> On 2 May 2013 20:58, Julien Plu <[email protected]>
> wrote:
> > Ok, so if I well understood what you mean is writing this inside the
> > dump/pom.xml :
> >
> > <jvmArg>-Dhttp.proxyHost=proxy.server.com</jvmArg>
> > <jvmArg>-Dhttp.proxyPort=80</jvmArg>
> > <jvmArg>-Dhttp.proxyUser=foo</jvmArg>
> > <jvmArg>-Dhttp.proxyPassword=bar</jvmArg>
> >
> > And retrieve the value of http.proxyUser and http.proxyPassword with
> this :
> >
> > String user = System.getProperty("http.proxyUser", "");
> > String password = System.getProperty("http.proxyPassword", "");
> >
> > For using them inside the ProxyAuthenticator class. If it's that so ok
> I'm
> > totally agree with, and I will modify my code for taking this way :-)
>
> Exactly. :-)
>
> As I said, you should look at the code at
>
> http://stackoverflow.com/questions/1626549/authenticated-http-proxy-with-java/16340273#16340273
> There are some security issues. Basically, you can just copy that
> code, or port it to Scala if you want.
>
> >
> > Best.
> >
> > Julien.
> >
> >
> > 2013/5/2 Jona Christopher Sahnwaldt <[email protected]>
> >>
> >> On 2 May 2013 17:34, Julien Plu <[email protected]>
> >> wrote:
> >> >>Use the system properties http.proxyUser and http.proxyPassword.
> >> >>Usually, system properties are problematic, but in this case, they're
> >> >>ok: 1. we use system properties for the proxy settings anyway, 2. we
> >> >>don't have to change the download config, and 3. we can more easily
> >> >>reuse the solution elsewhere.
> >> >
> >> > I think I badly explained myself. You have to give your proxy logs, so
> >> > you
> >> > have to write them somewhere, and into the code is the worst solution
> >> > ever,
> >> > and if you pass them through the jvm args like "-Dhttp.proxyUser=xxx
> >> > -Dhttp.proxyPassword=xxx" it doesn't works.
> >>
> >> I know that simply setting these system properties doesn't help. You
> >> need the Authenticator.setAuthenticator(...) code that we're
> >> discussing here. The question is: how does that code get the username
> >> and password?
> >>
> >> One possibility is what you did - add config parameters, read them,
> >> pass them to the code. That works, but wherever you want to enable
> >> proxy authentication, you have to change the code that handles the
> >> configuration.
> >>
> >> Another possibility is: the code reads the system properties
> >> http.proxyUser and http.proxyPassword:
> >>
> >> String user = System.getProperty("http.proxyUser", "");
> >> String password = System.getProperty("http.proxyPassword", "");
> >>
> >> In Java, you can set and read whichever system property you want.
> >> (Well, it depends on your security settings, but that doesn't matter
> >> in our case.) These two properties are ignored by the Java classes
> >> that handle proxy requests, that's correct. But that doesn't mean we
> >> can't use them for our own purposes.
> >>
> >> For more details, please see the code at
> >>
> >>
> >>
> http://stackoverflow.com/questions/1626549/authenticated-http-proxy-with-java/16340273#16340273
> >>
> >> I think that's the best and safest implementation of setting the
> >> authenticator. There's more to this issue than it seems. If I
> >> understand correctly, the Authenticator is used for *all* HTTP
> >> requests, not just for proxy requests.
> >>
> >> > I tested it. So a good solution
> >> > is to write them into a property file.
> >>
> >> The problem with this is that we have to change the configuration of
> >> every piece of code in the framework that uses HTTP. When the code
> >> that sets the authenticator reads the system properties, that's not
> >> necessary.
> >>
> >> System properties are often not a good choice for configuration,
> >> mostly because they affect the whole system and there is no way for
> >> different modules within one JVM to use different settings. But in our
> >> case, the system is rather small - there are no sub-modules - and it's
> >> very unlikely that we want different proxy settings.
> >>
> >> Additionally, the user has to configure the proxy host and port in the
> >> pom.xml anyway. I think it's a lot more intuitive to have
> >>
> >> <jvmArg>-Dhttp.proxyHost=proxy.server.com</jvmArg>
> >> <jvmArg>-Dhttp.proxyPort=80</jvmArg>
> >> <jvmArg>-Dhttp.proxyUser=foo</jvmArg>
> >> <jvmArg>-Dhttp.proxyPassword=bar</jvmArg>
> >>
> >> in pom.xml than to have
> >>
> >> <jvmArg>-Dhttp.proxyHost=proxy.server.com</jvmArg>
> >> <jvmArg>-Dhttp.proxyPort=80</jvmArg>
> >>
> >> in pom.xml and
> >>
> >> proxyUser=foo
> >> proxyPassword=bar
> >>
> >> in some other configuration file.
> >>
> >> As for the proxy settings for the extraction: I was wrong, you
> >> probably do need them there too. We don't really make http calls, but
> >> some code deep down in Java's XML handling probably does. It's silly
> >> and we should turn it off, but that requires a bit of coding for which
> >> we didn't have time yet.
> >>
> >> http://sourceforge.net/mailarchive/message.php?msg_id=30590876
> >>
> >> JC
> >>
> >> >
> >> > Next, create a "util" class is, indeed, a good way to reuse it easily.
> >> >
> >> > Best.
> >> >
> >> > Julien.
> >> >
> >> >
> >> > 2013/5/2 Jona Christopher Sahnwaldt <[email protected]>
> >> >>
> >> >> P.S.: ProxyAuthentication is a good class name as well. :-)
> >> >>
> >> >> On 2 May 2013 17:04, Jona Christopher Sahnwaldt <[email protected]>
> >> >> wrote:
> >> >> > On 2 May 2013 12:55, Julien Plu <
> [email protected]>
> >> >> > wrote:
> >> >> >> Ok, now that works like a charm. I added just two properties
> inside
> >> >> >> "download.minimal.properties" file which are : "user" and
> "password"
> >> >> >> and the
> >> >> >> authentication is made only is these parameters are set. And I
> >> >> >> created
> >> >> >> a
> >> >> >> class "ProxyAuthentication.scala".
> >> >> >>
> >> >> >
> >> >> > A few recommendations:
> >> >> >
> >> >> > - Use the system properties http.proxyUser and http.proxyPassword.
> >> >> > Usually, system properties are problematic, but in this case,
> they're
> >> >> > ok: 1. we use system properties for the proxy settings anyway, 2.
> we
> >> >> > don't have to change the download config, and 3. we can more easily
> >> >> > reuse the solution elsewhere. See below.
> >> >> >
> >> >> > - I just googled a bit and think we should make the implementation
> a
> >> >> > bit safer:
> >> >> >
> >> >> >
> http://stackoverflow.com/questions/1626549/authenticated-http-proxy-with-java/16340273#16340273
> >> >> >
> >> >> > - Put the code in a new util class ProxyUtils.scala in the core
> >> >> > module
> >> >> > in the util package
> >> >> >
> >> >> >
> >> >> >
> https://github.com/dbpedia/extraction-framework/tree/master/core/src/main/java/org/dbpedia/extraction/util
> >> >> > , or you can just use ProxyUtils.java and create a new util package
> >> >> > in
> >> >> >
> >> >> >
> >> >> >
> https://github.com/dbpedia/extraction-framework/tree/master/core/src/main/java/org/dbpedia/extraction
> >> >> > , then you won't have to port the code to Scala.
> >> >> >
> >> >> > We make HTTP calls in a few other places, so we will have to call
> the
> >> >> > method from there as well, so we should have an implementation in
> the
> >> >> > core module.
> >> >> >
> >> >> >> I have to do the same thing for "Extraction.scala" class or this
> >> >> >> class
> >> >> >> doesn't need an internet connexion ?
> >> >> >
> >> >> > I'm pretty sure it doesn't. I don't think we make any requests
> during
> >> >> > extraction.
> >> >> >
> >> >> > But there are other places. You can look in the pom.xml files, they
> >> >> > should contain Scala launchers for all main classes that we have.
> For
> >> >> > example, all the launchers in core/pom.xml download some stuff over
> >> >> > HTTP, so if you want you can add a call to your new method in each
> of
> >> >> > their main() methods. When your code uses the system properties,
> you
> >> >> > just have to add one line:
> ProxyUtils.configureProxyAuthenticator();
> >> >> >
> >> >> > Cheers,
> >> >> > JC
> >> >> >
> >> >> >
> >> >> >
> >> >> >>
> >> >> >>
> >> >> >> 2013/4/30 Julien Plu <[email protected]>
> >> >> >>>
> >> >> >>> That's a really good idea ! I will do it thursday because now I
> >> >> >>> finished
> >> >> >>> my working day and tomorrow is a national day off in France.
> >> >> >>>
> >> >> >>> I have also try to solve some bugs in the extraction with
> >> >> >>> separators.
> >> >> >>>
> >> >> >>> Best.
> >> >> >>>
> >> >> >>> Julien.
> >> >> >>>
> >> >> >>>
> >> >> >>> 2013/4/30 Jona Christopher Sahnwaldt <[email protected]>
> >> >> >>>>
> >> >> >>>>
> >> >> >>>>
> >> >> >>>>
> >> >> >>>>
> https://github.com/dbpedia/extraction-framework/blob/master/dump/src/main/scala/org/dbpedia/extraction/dump/download/Download.scala
> >> >> >>>>
> >> >> >>>> It would be cool if you send a pull request when you are done!
> As
> >> >> >>>> a
> >> >> >>>> first step, you can simply copy & paste the code from SO and
> >> >> >>>> hard-code
> >> >> >>>> your settings to test if that solves your problem at all, but it
> >> >> >>>> would
> >> >> >>>> be nice if you could make the code a little smarter so others
> can
> >> >> >>>> use
> >> >> >>>> it: call System.getProperty("http.proxyUser") and "...Password"
> >> >> >>>> and
> >> >> >>>> only install the authenticator if both are set. Good luck!
> >> >> >>>>
> >> >> >>>> On 30 April 2013 19:47, Julien Plu
> >> >> >>>> <[email protected]>
> >> >> >>>> wrote:
> >> >> >>>> > Ok so apparently it's normal that it's doesn't works with
> >> >> >>>> > command
> >> >> >>>> > line,
> >> >> >>>> > I
> >> >> >>>> > have to modify the main. So which file contains the main
> >> >> >>>> > function ?
> >> >> >>>> >
> >> >> >>>> > Best.
> >> >> >>>> >
> >> >> >>>> > Julien.
> >> >> >>>> >
> >> >> >>>> >
> >> >> >>>> > 2013/4/30 Jona Christopher Sahnwaldt <[email protected]>
> >> >> >>>> >>
> >> >> >>>> >> Maybe you have to tweak the code a bit:
> >> >> >>>> >>
> >> >> >>>> >>
> >> >> >>>> >>
> >> >> >>>> >>
> >> >> >>>> >>
> http://stackoverflow.com/questions/1626549/authenticated-http-proxy-with-java
> >> >> >>>> >>
> >> >> >>>> >> On 30 April 2013 19:28, Julien Plu
> >> >> >>>> >> <[email protected]>
> >> >> >>>> >> wrote:
> >> >> >>>> >> > Doesn't works :-(
> >> >> >>>> >> >
> >> >> >>>> >> > Best
> >> >> >>>> >> >
> >> >> >>>> >> > Julien.
> >> >> >>>> >> >
> >> >> >>>> >> >
> >> >> >>>> >> > 2013/4/30 Jona Christopher Sahnwaldt <[email protected]>
> >> >> >>>> >> >>
> >> >> >>>> >> >> Hi Julien,
> >> >> >>>> >> >>
> >> >> >>>> >> >> try adding the settings for https as well, e.g.
> >> >> >>>> >> >>
> >> >> >>>> >> >> <jvmArg>-Dhttps.proxyHost=myproxyhost</jvmArg>
> >> >> >>>> >> >>
> >> >> >>>> >> >> Might help, I'm not sure.
> >> >> >>>> >> >>
> >> >> >>>> >> >> JC
> >> >> >>>> >> >>
> >> >> >>>> >> >> On 30 April 2013 16:57, Julien Plu
> >> >> >>>> >> >> <[email protected]>
> >> >> >>>> >> >> wrote:
> >> >> >>>> >> >> > Hi,
> >> >> >>>> >> >> >
> >> >> >>>> >> >> > I try to use the extraction framework on my Windows
> >> >> >>>> >> >> > machine,
> >> >> >>>> >> >> > but
> >> >> >>>> >> >> > I
> >> >> >>>> >> >> > fall
> >> >> >>>> >> >> > on a
> >> >> >>>> >> >> > 407 http proxy authentication error during the dumps
> >> >> >>>> >> >> > download. I
> >> >> >>>> >> >> > put
> >> >> >>>> >> >> > these
> >> >> >>>> >> >> > lines inside the dump/pom.xml :
> >> >> >>>> >> >> >
> >> >> >>>> >> >> > <jvmArg>-Dhttp.proxyHost=myproxyhost</jvmArg>
> >> >> >>>> >> >> > <jvmArg>-Dhttp.proxyPort=port</jvmArg>
> >> >> >>>> >> >> > <jvmArg>-Dhttp.proxyUser=myuser</jvmArg>
> >> >> >>>> >> >> > <jvmArg>-Dhttp.proxyPassword=mypass</jvmArg>
> >> >> >>>> >> >> >
> >> >> >>>> >> >> > Even this :
> >> >> >>>> >> >> >
> >> >> >>>> >> >> > <jvmArg>-Djava.net.useSystemProxies=true</jvmArg>
> >> >> >>>> >> >> >
> >> >> >>>> >> >> > Doesn't work.
> >> >> >>>> >> >> >
> >> >> >>>> >> >> > There is something more to use ?
> >> >> >>>> >> >> >
> >> >> >>>> >> >> > Best.
> >> >> >>>> >> >> >
> >> >> >>>> >> >> > Julien.
> >> >> >>>> >> >> >
> >> >> >>>> >> >> >
> >> >> >>>> >> >> >
> >> >> >>>> >> >> >
> >> >> >>>> >> >> >
> >> >> >>>> >> >> >
> >> >> >>>> >> >> >
> ------------------------------------------------------------------------------
> >> >> >>>> >> >> > Introducing AppDynamics Lite, a free troubleshooting
> tool
> >> >> >>>> >> >> > for
> >> >> >>>> >> >> > Java/.NET
> >> >> >>>> >> >> > Get 100% visibility into your production application -
> at
> >> >> >>>> >> >> > no
> >> >> >>>> >> >> > cost.
> >> >> >>>> >> >> > Code-level diagnostics for performance bottlenecks with
> >> >> >>>> >> >> > <2%
> >> >> >>>> >> >> > overhead
> >> >> >>>> >> >> > Download for free and get started troubleshooting in
> >> >> >>>> >> >> > minutes.
> >> >> >>>> >> >> > http://p.sf.net/sfu/appdyn_d2d_ap1
> >> >> >>>> >> >> > _______________________________________________
> >> >> >>>> >> >> > Dbpedia-discussion mailing list
> >> >> >>>> >> >> > [email protected]
> >> >> >>>> >> >> >
> >> >> >>>> >> >> >
> >> >> >>>> >> >> >
> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion
> >> >> >>>> >> >> >
> >> >> >>>> >> >
> >> >> >>>> >> >
> >> >> >>>> >
> >> >> >>>> >
> >> >> >>>
> >> >> >>>
> >> >> >>
> >> >
> >> >
> >
> >
>
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
_______________________________________________
Dbpedia-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion

Reply via email to