Hey Tim,
I got a time to learn about Tika server more. The CXF's XML-based
configuration,
which could be used in Tika's context, relies on Spring Framework. Here is a
quick
snippet on how it looks like with respect to Jetty engine + TLS/SSL declarative
configuration (ports, keystores are hardcoded there but could be taken from
Tika server configuration, just an example).
<httpj:engine-factory bus="cxf" id="engineFactory">
<httpj:identifiedTLSServerParameters id="secure">
<httpj:tlsServerParameters>
<sec:keyManagers keyPassword="change-me-please">
<sec:keyStore type="JKS" password="change-me-please"
resource="certs/sample-https-server.jks" />
</sec:keyManagers>
</httpj:tlsServerParameters>
</httpj:identifiedTLSServerParameters>
<httpj:engine port="19093">
<httpj:tlsServerParametersRef id="secure" />
<httpj:threadingParameters minThreads="5" maxThreads="15" />
<httpj:sessionSupport>true</httpj:sessionSupport>
</httpj:engine>
</httpj:engine-factory>
The problem though is that Tika server components do not depend on Spring
Framework. Do you think it is non-issue and we could bring it in to introduce
CXF's XML-based configuration? (I am not entirely sure, in this case the
programmatic configuration looks like a reasonable thing to do vs bundling
additional dependencies on IoC container). Please let me know what do you
think.
Thank you!
Best Regards,
Andriy Redko
TA> Yes. Thank you! I’m sure the answer is obvious. As we make more cxf
TA> functionality available, we'd prefer to use the native cxf configuration
TA> over our own programmatic configuration.
TA> Generally, our use of cxf has grown over time, and if you notice any
TA> anti-patterns, please let us know!
TA> Again, many thanks for all you, Andriy and CXF team, do!
TA> Cheers,
TA> Tim
TA> On Thu, May 5, 2022 at 9:06 PM Andriy Redko <[email protected]> wrote:
>> Hey Sergey,
>> My apologies, I was off last week and only now caught up with all the
>> things,
>> so let me understand the problem first. I have looked at [1] and saw that
>> team
>> has added programmatic SSL/TLS configuration [2]. However, another
>> approach team is
>> looking at is to use declarative cxf.xml to replace the programmatic one,
>> is that
>> an accurate description? And once tried, we have separate Jetty server
>> spawn up?
>> Thank you!
>> [1] https://issues.apache.org/jira/browse/TIKA-3719
>> [2]
>> https://github.com/apache/tika/commit/c1c69dac4f5f948f38e0b198c3fdaad61a7d80be#diff-32fed2ec8d113792f680c2242ac6cb0cb67cfdd142660d993dbe92aaede00f6fR265
>> Best Regards,
>> Andriy Redko
>> SB> Hey Andriy
>> SB> Great stuff, glad to hear, it is a collection of JAX-RS endpoints
>> backed up
>> SB> by CXF, so the team needs some help to setup HTTPS, Basic (and possibly
>> SB> bearer JWT token verification going forward), I can help with
>> clarifying
>> SB> some details related to JWT, CXF has everything related to it...
>> SB> Cheers, Sergey
>> SB> On Sat, Apr 23, 2022 at 8:02 PM Andriy Redko <[email protected]> wrote:
>> >> Hi Tim & Sergey,
>> >> Yeah, sure, happy to help here. I think I understood the problem, will
>> try
>> >> to
>> >> look shortly on how to address that in context of Tika Server (I have
>> never
>> >> used the server-based deployment of Tika yet).
>> >> Best Regards,
>> >> Andriy Redko
>> >> SB> Hi Tim
>> >> SB> Apologies I'm totally occupied with Quarkus right now, I'm sorry it
>> >> SB> consumes all the time.
>> >> SB> Andriy, if you could help the Tika colleagues then it would be
>> great,
>> >> as
>> >> SB> you've helped with integrating Tika in Apache CXF as well, recall
>> how
>> >> we
>> >> SB> enjoyed the presentation about Tika at one of ASF Conferences :-).
>> >> SB> Cheers, Sergey
>> >> SB> On Thu, Apr 21, 2022 at 10:55 PM Tim Allison <[email protected]>
>> >> wrote:
>> >> >> Friends and colleagues,
>> >> >> Over on Apache Tika, our server has been using cxf for a long time.
>> >> >> We've been very happy with its capabilities and robustness. So,
>> thank
>> >> >> you!
>> >> >> Recently we were asked to add TLS, and we managed to do so
>> >> >> programmatically[0]. The requestor on that issue noted that it would
>> >> >> be great if we could use the regular cxf.xml file configuration
>> >> >> process[1]. Further, the requestor noted that if he put a cxf.xml
>> >> >> file on his class path, a separate jetty server was spun up. Are
>> >> >> there better ways we can use CXF and its configuration process?
>> >> >> This is how we're initializing the server [2].
>> >> >> Thank you!
>> >> >> Best,
>> >> >> Tim
>> >> >> [0]
>> >> >>
>> >>
>> https://github.com/apache/tika/blob/TIKA-3719/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerProcess.java#L259
>> >> >> [1]
>> >> >>
>> >>
>> https://issues.apache.org/jira/browse/TIKA-3725?focusedCommentId=17526098&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17526098
>> >> >> [2]
>> >> >>
>> >>
>> https://github.com/apache/tika/blob/main/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerProcess.java#L234