Разделить контексты между http и https - PullRequest
0 голосов
/ 05 октября 2018

Мы хотим перенести наше веб-приложение с http на https.Это само по себе было бы просто.Однако у нас есть одна проблема.

Мы развертываем три контекста: main.war, reports.war и generator.war

Из-за некоторого устаревшего кода, который есть в нашем приложении, доступ к генератору долженоставайтесь http, пока main, а отчеты разрешают только https.

Я попытался изменить server.xml, добавив дополнительную «Службу» на сервер и поместив контексты «main» и «report» в одну с https и ««Генератор» в службе http.

Проблема в том, что все контексты теперь принимают и http, и https, и у меня нет идеи, почему.

Не могли бы вы помочь мне понять и исправить это??Спасибо!

 <?xml version='1.0' encoding='utf-8'?>
 <Server port="8005" shutdown="SHUTDOWN">
   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
   <GlobalNamingResources>
     <Resource name="UserDatabase" auth="Container"
               type="org.apache.catalina.UserDatabase"
               description="User database that can be updated and saved"
               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
               pathname="conf/tomcat-users.xml" />
   </GlobalNamingResources>

   <Service name="Catalina">
    <Connector
        protocol="org.apache.coyote.http11.Http11NioProtocol"
        port="443" maxThreads="200"
        scheme="https" secure="true" SSLEnabled="true"
        keystoreFile="file:///C:/tomcat/testkey.keyfile" keystorePass="testpassword"
        clientAuth="false" sslProtocol="TLS"/>
     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
     <Engine name="Catalina" defaultHost="localhost">
       <Realm className="org.apache.catalina.realm.LockOutRealm">
         <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
       </Realm>
       <Host name="localhost"  appBase="webapps"
             unpackWARs="true" autoDeploy="true">    
         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="localhost_access_log" suffix=".txt"
                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        <Context docBase="main" path="/main" reloadable="true" source="main"/>
        <Context docBase="reporting" path="/reporting" reloadable="true" source="reporting"/>
       </Host>
     </Engine>
   </Service>

  <Service name="CatalinaGenerator">
     <Connector executor="tomcatThreadPool"
                port="80" protocol="HTTP/1.1"
                connectionTimeout="20000" />
     <Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443"/>
     <Engine defaultHost="localhost" name="Catalina">
       <Realm className="org.apache.catalina.realm.LockOutRealm">
         <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
       </Realm>
       <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b"      prefix="localhost_access_log" suffix=".txt"/>
         <Context docBase="generator" path="/generator" reloadable="true" source="generator"/>
       </Host>
     </Engine>
   </Service>

 </Server>

1 Ответ

0 голосов
/ 05 октября 2018

Для таких настроек я лично добавил Apache http перед tomcat и обрабатывал такие вещи с помощью mod_proxy.

...