Hi Gareth,

my comments inline.

2012/7/13 Gareth Collins <[email protected]>:
> Hello Achim,
>
> A further question while I have it on my mind:
>
> (1) If I wanted to verify the host http header is valid (i.e.to
> protect against a user faking the host), before routing a request to a
> particular
> web app, would that be something that could be done in Pax Web...or
> could that only be done in Jetty?

I'm not sure if this could be done with jetty or is already a "valid" method
there. So Pax web might be a good place. But beware this test might
stale the startup of Pax Web when it tries to look for a valid address.

>
> (2) Would it be a foolish idea to be able to choose connectors via a
> Manifest Header (potentially called "Web-Connectors", again with a
> default in the Pax Web Configuration)? Something like what is shown in
> "Alternative" here (I am assuming that the preferred multiple jetty
> servers implementation would be a substantial amount of work):
>

Well what already can be done is the posibility to configure
multiple Jetty Connectors through the jetty.xml.
So I think adding a special Manifest Entry for the webapp might be a nice addon.
I think that this might be even a nice idea to make this
configuration somehow available for servlets beeing registered either through
the http service or through the whiteboard extender.

> http://docs.codehaus.org/display/JETTY/How+to+serve+webbapp+A+from+portA+and+webapp+B+from+portB
>
> Perhaps this is the better internal/external security option?
>
> thanks,
> Gareth
>
> On Thu, Jul 12, 2012 at 3:08 PM, Gareth Collins
> <[email protected]> wrote:
>> Hello Achim,
>>
>> I believe I am already a member of ops4j team (garethcollins) on
>> github. I have forked pax-web to
>> start work on this. Once I am done, if you could verify/provide
>> feedback on my change it would be much appreciated.

Of course, this has proven to be a quite practial thing in the past :)

>> If you are happy that I have not done anything completely foolish and
>> I have verified the change works then I will
>> pull and approve my pull.

+1 :)

>>
>> A couple of questions I am a little unsure of yet:
>> (1) Would this be a reasonable prioritization for setting virtual hosts?:
>>     (a) If virtual hosts is set in jetty-web.xml, use that value.
>>     (b) Else if set in Web-VirtualHosts header, use that value.
>>     (c) Else default to the configured value. If that configured value
>> is null, virtual hosts should not be set.

sounds fair enough since a jetty-web.xml might be a valid
configuration for a "standalon" war also.

>>
>> (2) If Pax Web configuration is changed via configuration admin, does
>> Pax Web restart...or does it try to
>> only change the delta somehow (handling deltas may potentially make my
>> task harder)?
>>

Since it's a managed Service the default behaviour of OSGi is taking
care of this.
So the service in question is stoped and restarted. In this case you don't need
think about a delta behaviour :)

>> thanks again,
>> Gareth

Actually I have to thank you, cause this is the work the community
needs to be a successfull
community.

Regards, Achim

>>
>>
>>
>> On Thu, Jul 12, 2012 at 4:29 AM, Achim Nierbeck <[email protected]> 
>> wrote:
>>> Hi Gareth,
>>>
>>> thanks for sharing your thoughts, my comments inline :)
>>>
>>> 2012/7/11 Gareth Collins <[email protected]>:
>>>> Hello Achim,
>>>>
>>>> I have a proposal (which solves my problem). Would this be foolish?:
>>>
>>> Proposals are never foolish, it's always a good starting point for a
>>> good discussion :)
>>>
>>>>
>>>> (1) Add a new Manifest Header Web-VirtualHosts which lists the virtual
>>>> hosts for the webapp.
>>>> Their are at least two advantages of setting the virtual hosts this way:
>>>>     (a) it is webapp container type independent.
>>>>     (b) the header can be set as part of the war url (I have set
>>>> arbitrary header names this way in the past).
>>>
>>> A new Manifest Header actually could be really useful.
>>> So +1 for this Idea.
>>>
>>>> (2) Add a new configuration item for Pax Web, which, if not null
>>>> describes a default set
>>>> of Virtual Hosts (i.e. to allow restrict by default for webapps such
>>>> as the activemq or karaf console).
>>>
>>> +1 for the configuration item.
>>> The default should be null so I'm quite fine with this idea  :)
>>>
>>>>
>>>> I had a look at the Pax Web code. It doesn't appear that it should be
>>>> that hard to implement (I believe I can see how to pass the
>>>> information
>>>> via the WebApp through to the Jetty ContextHandler). If I implemented
>>>> such a feature would you merge it in?
>>>
>>> First of all thank you for willing to contribute,
>>> second we at ops4j rather give you direct access then applying patches :)
>>> So If you give me your Github Account name I'll add you to the
>>> committers list.
>>> If you want me to review this before "merge" to trunk
>>> you can either start a branch in the ops4j repo
>>> or start your own branch in your own repository and I
>>> will happily review it.
>>> It turned out in the past that this was a quite good way of working together
>>>
>>>>
>>>> thanks in advance,
>>>> Gareth
>>>>
>>>
>>> I have to thank you for committing :)
>>>
>>> Achim
>>>
>>>>
>>>>
>>>> On Tue, Jul 10, 2012 at 5:54 PM, Achim Nierbeck <[email protected]> 
>>>> wrote:
>>>>> Hi Gareth,
>>>>>
>>>>> sorry it took me a bit longer :)
>>>>>
>>>>> yes you need to make sure the jetty-web.xml file is contained inside
>>>>> the war/wab next to
>>>>> the std. web.xml file.
>>>>> Concerning the jetty.xml file you might be able to "alter" certain 
>>>>> behaviour for
>>>>> allready deployed applications, though I have to admitt thinking more
>>>>> about this
>>>>> this probably won't work due to the way the war/wabs are deployed.
>>>>>
>>>>> regards, Achim
>>>>>
>>>>> 2012/7/9 Gareth Collins <[email protected]>:
>>>>>> Hello Achim,
>>>>>>
>>>>>> Thank you very much for the response. I did look at the Jetty Eclipse
>>>>>> wiki and it wasn't obvious
>>>>>> to me how I could do what I think I need via jetty.xml. I will keep 
>>>>>> researching.
>>>>>>
>>>>>> Say I wanted to add this jetty-web.xml file to the war/wab on install
>>>>>> (because I don't know until install
>>>>>> what the virtual hosts will be). Would this be something that
>>>>>> logically would be part of the war
>>>>>> url handler...or would this need to be something different (especially
>>>>>> since it would be jetty specific - e.g.
>>>>>> a "jvh - Jetty Virtual Host" url handler?)?
>>>>>>
>>>>>> Just trying to understand how this potentially could be done (I am
>>>>>> assuming that if I wanted this I would
>>>>>> need to implement it).
>>>>>>
>>>>>> thanks in advance,
>>>>>> Gareth
>>>>>>
>>>>>> On Sat, Jul 7, 2012 at 3:32 PM, Achim Nierbeck <[email protected]> 
>>>>>> wrote:
>>>>>>> Hi Gareth,
>>>>>>>
>>>>>>> comments inline
>>>>>>>
>>>>>>> 2012/7/6 Gareth Collins <[email protected]>:
>>>>>>>> Hello Achim,
>>>>>>>>
>>>>>>>> Just letting you know I have migrated all my webapps over to the pax
>>>>>>>> web trunk (i.e. which includes
>>>>>>>> the fix) successfully. It is working great now. Thankyou!
>>>>>>>
>>>>>>> great to hear
>>>>>>> always welcome :)
>>>>>>>
>>>>>>>>
>>>>>>>> The next thing I wanted to try out was the new Virtual Hosts feature.
>>>>>>>> I looked at the pax web examples
>>>>>>>> and the jetty documentation. For pax web, it appears like the only way
>>>>>>>> to do this is via a file (jetty-web.xml) in the war.
>>>>>>>>  Is this correct?
>>>>>>>>
>>>>>>>
>>>>>>> indeed as pax-web does only "configure" jetty it's the jetty-web.xml
>>>>>>> for configuring.
>>>>>>>
>>>>>>>
>>>>>>>> I ask because I was hoping to restrict access to third-party wars
>>>>>>>> (such as the activemq web war or the karaf console)
>>>>>>>> to specific virtual hosts (i.e. I don't want these on an external
>>>>>>>> facing port/IP). Is that something I can do without editing
>>>>>>>> these third-party wars and adding the jetty-web.xml file (if I have
>>>>>>>> to, I have to - just seeing if I am missing something here)?
>>>>>>>>
>>>>>>>
>>>>>>> ok, to restrict to specific virtual hosts is a kind of tricky
>>>>>>> please follow the instructions in [1].
>>>>>>> But you will have a hard time configuring this to different ports.
>>>>>>> What I haven't tried yet but might be a possible solution to not
>>>>>>> alter certain wars is to try to configure this via the jetty.xml.
>>>>>>>
>>>>>>> regards, Achim
>>>>>>>
>>>>>>> [1] - http://wiki.eclipse.org/Jetty/Howto/Configure_Virtual_Hosts
>>>>>>>
>>>>>>>> thanks in advance,
>>>>>>>> Gareth
>>>>>>>>
>>>>>>>> On Thu, Jun 21, 2012 at 8:50 AM, Gareth Collins
>>>>>>>> <[email protected]> wrote:
>>>>>>>>> Thanks very much!
>>>>>>>>>
>>>>>>>>> Gareth
>>>>>>>>>
>>>>>>>>> On Tue, Jun 19, 2012 at 9:25 PM, Achim Nierbeck 
>>>>>>>>> <[email protected]> wrote:
>>>>>>>>>> Hi Gareth,
>>>>>>>>>>
>>>>>>>>>> I just took care of it.
>>>>>>>>>> I'm going to release a new version of Pax web ASAP, latest beginning 
>>>>>>>>>> of next
>>>>>>>>>> week :)
>>>>>>>>>>
>>>>>>>>>> regards, Achim
>>>>>>>>>>
>>>>>>>>>> Am 19.06.2012 19:18, schrieb Gareth Collins:
>>>>>>>>>>
>>>>>>>>>>> Hello Achim,
>>>>>>>>>>>
>>>>>>>>>>> Added:
>>>>>>>>>>>
>>>>>>>>>>> http://team.ops4j.org/browse/PAXWEB-384
>>>>>>>>>>>
>>>>>>>>>>> I can have a go at fixing it next week (as it is somewhat a 
>>>>>>>>>>> showstopper
>>>>>>>>>>> for me)
>>>>>>>>>>> when I get back home.
>>>>>>>>>>>
>>>>>>>>>>> thanks again,
>>>>>>>>>>> Gareth
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Jun 17, 2012 at 6:36 PM, Achim Nierbeck 
>>>>>>>>>>> <[email protected]>
>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Gareth,
>>>>>>>>>>>>
>>>>>>>>>>>> could you open an issue for this, I think limiting this to just 2 
>>>>>>>>>>>> *.xml
>>>>>>>>>>>> files is probably wrong.
>>>>>>>>>>>> This is probably more a thinking of the old times where the 
>>>>>>>>>>>> web.xml was
>>>>>>>>>>>> supposed to be a single file.
>>>>>>>>>>>> Opening this to include a jetty-web.xml is probably the cause for 
>>>>>>>>>>>> this.
>>>>>>>>>>>>
>>>>>>>>>>>> Regards, Achim
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Am 16.06.2012 05:08, schrieb Gareth Collins:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>
>>>>>>>>>>>>> As I see that some new software has been updated recently (such 
>>>>>>>>>>>>> as Pax
>>>>>>>>>>>>> Web 2.0.0 - thankyou!) I decided to go back
>>>>>>>>>>>>> and try to update my OSGi dependencies and streamline my 
>>>>>>>>>>>>> environment
>>>>>>>>>>>>> (which is why I was interested in removing
>>>>>>>>>>>>> the start ordering dependency in pax confman).
>>>>>>>>>>>>>
>>>>>>>>>>>>> Anyway one of the first things I am trying to do in my updated
>>>>>>>>>>>>> environment is to get the updated 5.6.0 activemq web console
>>>>>>>>>>>>> to play nicely with the updated Pax Web. I am getting an error 
>>>>>>>>>>>>> from
>>>>>>>>>>>>> Pax Web and I am not sure what it means (this is with equinox 
>>>>>>>>>>>>> 3.6.2
>>>>>>>>>>>>> with the bndtools launcher). Is this suggesting there is something
>>>>>>>>>>>>> wrong with the activemq web console war or is this suggesting
>>>>>>>>>>>>> something else? There are seven XML files in the activemq WEB-INF
>>>>>>>>>>>>> directory:
>>>>>>>>>>>>>
>>>>>>>>>>>>> 20:50:23,521 | DEBUG | Gogo shell |
>>>>>>>>>>>>> ..swissbox.extender.BundleWatcher[216] | []:[] | Found resources
>>>>>>>>>>>>> [bundleentry://11.fwk2060982148/WEB-INF/web.xml,
>>>>>>>>>>>>> bundleentry://11.fwk2060982148/WEB-INF/webconsole-default.xml,
>>>>>>>>>>>>> bundleentry://11.fwk2060982148/WEB-INF/webconsole-embedded.xml,
>>>>>>>>>>>>> bundleentry://11.fwk2060982148/WEB-INF/webconsole-invm.xml,
>>>>>>>>>>>>> bundleentry://11.fwk2060982148/WEB-INF/webconsole-jndi.xml,
>>>>>>>>>>>>> bundleentry://11.fwk2060982148/WEB-INF/webconsole-properties.xml,
>>>>>>>>>>>>> bundleentry://11.fwk2060982148/WEB-INF/webconsole-query.xml]
>>>>>>>>>>>>> 20:50:23,527 | INFO  | Executor: 1 |
>>>>>>>>>>>>> ..war.internal.WebXmlObserver[117] | []:[] | Using [activemqweb] 
>>>>>>>>>>>>> as
>>>>>>>>>>>>> web application context name
>>>>>>>>>>>>> 20:50:23,527 | DEBUG | Framework Event Dispatcher |
>>>>>>>>>>>>> ..apache.activemq.activemq-web-console[?] | []:[] | BundleEvent
>>>>>>>>>>>>> STARTED
>>>>>>>>>>>>> 20:50:23,527 | ERROR | Executor: 1 |
>>>>>>>>>>>>> ..war.internal.WebXmlObserver[124] | []:[] | Number of xml's was 
>>>>>>>>>>>>> not
>>>>>>>>>>>>> lesser than 3. Was: 7
>>>>>>>>>>>>> org.ops4j.lang.PreConditionException: Number of xml's was not 
>>>>>>>>>>>>> lesser
>>>>>>>>>>>>> than 3. Was: 7
>>>>>>>>>>>>>        at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.ops4j.lang.PreConditionException.validateLesserThan(PreConditionException.java:155)[33:org.ops4j.pax.web.pax-web-extender-war:2.0.0]
>>>>>>>>>>>>>        at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.ops4j.pax.web.extender.war.internal.WebXmlObserver.addingEntries(WebXmlObserver.java:121)[33:org.ops4j.pax.web.pax-web-extender-war:2.0.0]
>>>>>>>>>>>>>        at
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.ops4j.pax.swissbox.extender.BundleWatcher$3.run(BundleWatcher.java:224)[33:org.ops4j.pax.web.pax-web-extender-war:2.0.0]
>>>>>>>>>>>>>        at
>>>>>>>>>>>>>
>>>>>>>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_31]
>>>>>>>>>>>>>        at
>>>>>>>>>>>>>
>>>>>>>>>>>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_31]
>>>>>>>>>>>>>        at
>>>>>>>>>>>>> java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_31]
>>>>>>>>>>>>>        at
>>>>>>>>>>>>>
>>>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_31]
>>>>>>>>>>>>>        at
>>>>>>>>>>>>>
>>>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_31]
>>>>>>>>>>>>>        at
>>>>>>>>>>>>>
>>>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_31]
>>>>>>>>>>>>>        at
>>>>>>>>>>>>>
>>>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_31]
>>>>>>>>>>>>>        at java.lang.Thread.run(Thread.java:680)[:1.6.0_31]
>>>>>>>>>>>>> 20:50:23,528 | DEBUG | Executor: 1 |
>>>>>>>>>>>>> ..war.internal.WebEventDispatcher[130] | []:[] | Sending web event
>>>>>>>>>>>>> WebEvent [replay=false, type=5,
>>>>>>>>>>>>> bundle=org.apache.activemq.activemq-web-console_5.6.0 [11],
>>>>>>>>>>>>> extenderBundle=org.ops4j.pax.web.pax-web-extender-war_2.0.0 [33],
>>>>>>>>>>>>> cause=org.ops4j.lang.PreConditionException: Number of xml's was 
>>>>>>>>>>>>> not
>>>>>>>>>>>>> lesser than 3. Was: 7, timestamp=1339807823528,
>>>>>>>>>>>>> contextPath=/activemqweb, collisionIds=null, httpService=null,
>>>>>>>>>>>>> httpContext=null] for bundle 
>>>>>>>>>>>>> org.apache.activemq.activemq-web-console
>>>>>>>>>>>>> 20:50:23,531 | DEBUG | WebListenerExecutor: 2 |
>>>>>>>>>>>>> ..pax.web.pax-web-extender-war[?] | []:[] |
>>>>>>>>>>>>> org/osgi/service/web/FAILED
>>>>>>>>>>>>>
>>>>>>>>>>>>> If anyone could indicate what this error may mean (is there 
>>>>>>>>>>>>> really a
>>>>>>>>>>>>> max xml file limit in this directory?), it would be much 
>>>>>>>>>>>>> appreciated.
>>>>>>>>>>>>>
>>>>>>>>>>>>> thanks in advance,
>>>>>>>>>>>>> Gareth
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> general mailing list
>>>>>>>>>>>>> [email protected]
>>>>>>>>>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> - Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>>>>>>>>> - OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>>>>>>>>>>  Committer &
>>>>>>>>>>>> Project Lead
>>>>>>>>>>>> - OPS4J Pax for Vaadin
>>>>>>>>>>>> <http://team.ops4j.org/wiki/display/PAXVAADIN/Home>
>>>>>>>>>>>> Committer & Project Lead
>>>>>>>>>>>> - Blog <http://notizblog.nierbeck.de/>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> general mailing list
>>>>>>>>>>>> [email protected]
>>>>>>>>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> general mailing list
>>>>>>>>>>> [email protected]
>>>>>>>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> - Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>>>>>>> - OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>  
>>>>>>>>>> Committer &
>>>>>>>>>> Project Lead
>>>>>>>>>> - OPS4J Pax for Vaadin 
>>>>>>>>>> <http://team.ops4j.org/wiki/display/PAXVAADIN/Home>
>>>>>>>>>> Committer & Project Lead
>>>>>>>>>> - Blog <http://notizblog.nierbeck.de/>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> general mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> general mailing list
>>>>>>>> [email protected]
>>>>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>>>>> Committer & Project Lead
>>>>>>> OPS4J Pax for Vaadin
>>>>>>> <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project
>>>>>>> Lead
>>>>>>> blog <http://notizblog.nierbeck.de/>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> general mailing list
>>>>>>> [email protected]
>>>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>>>
>>>>>> _______________________________________________
>>>>>> general mailing list
>>>>>> [email protected]
>>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>>>> Committer & Project Lead
>>>>> OPS4J Pax for Vaadin
>>>>> <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project
>>>>> Lead
>>>>> blog <http://notizblog.nierbeck.de/>
>>>>>
>>>>> _______________________________________________
>>>>> general mailing list
>>>>> [email protected]
>>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>>
>>>> _______________________________________________
>>>> general mailing list
>>>> [email protected]
>>>> http://lists.ops4j.org/mailman/listinfo/general
>>>
>>>
>>>
>>> --
>>>
>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
>>> Committer & Project Lead
>>> OPS4J Pax for Vaadin
>>> <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project
>>> Lead
>>> blog <http://notizblog.nierbeck.de/>
>>>
>>> _______________________________________________
>>> general mailing list
>>> [email protected]
>>> http://lists.ops4j.org/mailman/listinfo/general
>
> _______________________________________________
> general mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/general



-- 

Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
Committer & Project Lead
OPS4J Pax for Vaadin
<http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project
Lead
blog <http://notizblog.nierbeck.de/>

_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general

Reply via email to