Re: Regarding Tomcat url redirection
Hi Team, I am using "Tomcat 10.1" in our environment and I wanted to redirect url from https://example.com to https://www.servercom: and for this i modified the server.xml as below in tomcat config, and the below configuration doesnot seems to work. Does anyone has ideas. Please suggest. The url alone https://www.servercom:/ already works. But just redirection from the old to one doesnot. example.com example.com example.com https://www.servercom:/example/$1 [R=301,L] Thanks, Ammu
Re: Regarding Tomcat url redirection
Hi Thomas, Thanks for the fast response. I added classname rewrite valeus in contex.xml file . created rewrite.config so both of them is located under conf under apache-tomcat. So according to the documentaion they say context.xml should be placed under webapps and rewrite.config file should be put in WEB-INF folder of apache-tomcat Thnks, Ammu On Thu, Apr 18, 2024 at 1:22 PM Mark Thomas wrote: > On 18/04/2024 12:05, lavanya tech wrote: > > Hi Team, > > > > I am using "Tomcat 10.1" in our environment and I wanted to redirect url > > from https://example.com to https://www.servercom: and for this i > > modified the server.xml as below in tomcat config, and the below > > configuration doesnot seems to work. Does anyone has ideas. Please > suggest. > > The url alone https://www.servercom:/ already works. But just > > redirection from the old to one doesnot. > > > > autoDeploy="true"> > > > > example.com > > > > > > > > > autoDeploy="true"> > > > > example.com > > className="org.apache.catalina.valves.rewrite.RewriteValve"/> > > > > > unpackWARs="true" autoDeploy="true"> > > > > example.com > > > > > > https://www.servercom:/example/$1 [R=301,L] > > 1. That isn't valid XML. > > 2. Where in the Tomcat docs does it say you can nest re-write rules in a > Host element (or any other element)? > > > > > > > > > > > > > You need to configure the RewriteValve. > https://tomcat.apache.org/tomcat-10.1-doc/rewrite.html > > Mark > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Regarding Tomcat url redirection
Hi Thomas, Thanks for the fast response. I added classname rewrite valeus in contex.xml file . created rewrite.config so both of them is located under conf under apache-tomcat. https://www.example.com:/example [R=301,L] So according to the documentaion they say context.xml should be placed under webapps and rewrite.config file should be put in WEB-INF folder of apache-tomcat . I placed and restarted tomcat webserver but still it doesnot redirect. Thnks, Ammu On Thu, Apr 18, 2024 at 1:36 PM lavanya tech wrote: > Hi Thomas, > > Thanks for the fast response. > > I added classname rewrite valeus in contex.xml file . > > > > > > created rewrite.config so both of them is located under conf under > apache-tomcat. > > So according to the documentaion they say context.xml should be placed > under webapps and rewrite.config file should be put in WEB-INF folder of > apache-tomcat > > Thnks, > Ammu > > > > On Thu, Apr 18, 2024 at 1:22 PM Mark Thomas wrote: > >> On 18/04/2024 12:05, lavanya tech wrote: >> > Hi Team, >> > >> > I am using "Tomcat 10.1" in our environment and I wanted to redirect url >> > from https://example.com to https://www.servercom: and for this i >> > modified the server.xml as below in tomcat config, and the below >> > configuration doesnot seems to work. Does anyone has ideas. Please >> suggest. >> > The url alone https://www.servercom:/ already works. But just >> > redirection from the old to one doesnot. >> > >> > > autoDeploy="true"> >> > >> > example.com >> > >> > > className="org.apache.catalina.valves.rewrite.RewriteValve"/> >> > >> > > > autoDeploy="true"> >> > >> > example.com >> > > className="org.apache.catalina.valves.rewrite.RewriteValve"/> >> > >> > > > unpackWARs="true" autoDeploy="true"> >> > >> > example.com >> > >> > > > > > https://www.servercom:/example/$1 [R=301,L] >> >> 1. That isn't valid XML. >> >> 2. Where in the Tomcat docs does it say you can nest re-write rules in a >> Host element (or any other element)? >> >> > >> > >> > >> > >> > >> >> You need to configure the RewriteValve. >> https://tomcat.apache.org/tomcat-10.1-doc/rewrite.html >> >> Mark >> >> - >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> >>
Re: Regarding Tomcat url redirection
Hi Chris, Thanks for message, I am attaching server.xml and context.xml and rewrite.config files. The paths are /git/app/apache-tomcat-10.1.11/webapps/towl/context.xml /git/app/apache-tomcat-10.1.11/webapps/towl/WEB-INF/rewrite.config https://www.example.com:/example [R=301,L] server.xml example.com Thanks Ammu On Thu, Apr 18, 2024 at 2:17 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Ammu, > > On 4/18/24 07:45, lavanya tech wrote: > > I added classname rewrite valeus in contex.xml file . > > > > > > /> > > > > > > created rewrite.config so both of them is located under conf under > > apache-tomcat. > > > > > > > > https://www.example.com:/example [R=301,L] > > > > So according to the documentaion they say context.xml should be placed > > under webapps and rewrite.config file should be put in WEB-INF folder of > > apache-tomcat . I placed and restarted tomcat webserver but still it > > doesnot redirect. > > Can you give full paths to both server.xml and rewrite.config, re-post > your current server.xml element, and the complete contents of > rewrite.config? > > Have you looked at the log files after start? > > -chris > > > On Thu, Apr 18, 2024 at 1:36 PM lavanya tech > > wrote: > > > >> Hi Thomas, > >> > >> Thanks for the fast response. > >> > >> I added classname rewrite valeus in contex.xml file . > >> > >> > >> /> > >> > >> > >> created rewrite.config so both of them is located under conf under > >> apache-tomcat. > >> > >> So according to the documentaion they say context.xml should be placed > >> under webapps and rewrite.config file should be put in WEB-INF folder of > >> apache-tomcat > >> > >> Thnks, > >> Ammu > >> > >> > >> > >> On Thu, Apr 18, 2024 at 1:22 PM Mark Thomas wrote: > >> > >>> On 18/04/2024 12:05, lavanya tech wrote: > >>>> Hi Team, > >>>> > >>>> I am using "Tomcat 10.1" in our environment and I wanted to redirect > url > >>>> from https://example.com to https://www.servercom: and for this i > >>>> modified the server.xml as below in tomcat config, and the below > >>>> configuration doesnot seems to work. Does anyone has ideas. Please > >>> suggest. > >>>> The url alone https://www.servercom:/ already works. But just > >>>> redirection from the old to one doesnot. > >>>> > >>>> >>> autoDeploy="true"> > >>>> > >>>> example.com > >>>> > >>>>>>> className="org.apache.catalina.valves.rewrite.RewriteValve"/> > >>>> > >>>>>>>> autoDeploy="true"> > >>>> > >>>> example.com > >>>>>>> className="org.apache.catalina.valves.rewrite.RewriteValve"/> > >>>> > >>>>>>>> unpackWARs="true" autoDeploy="true"> > >>>> > >>>> example.com > >>>> > >>>>>>>>>>>> https://www.servercom:/example/$1 [R=301,L] > >>> > >>> 1. That isn't valid XML. > >>> > >>> 2. Where in the Tomcat docs does it say you can nest re-write rules in > a > >>> Host element (or any other element)? > >>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>> > >>> You need to configure the RewriteValve. > >>> https://tomcat.apache.org/tomcat-10.1-doc/rewrite.html > >>> > >>> Mark > >>> > >>> - > >>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > >>> For additional commands, e-mail: users-h...@tomcat.apache.org > >>> > >>> > > > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Regarding Tomcat url redirection
Hi Chris, Thank you very much. I removed for example.com as well as adding an in server.xml I copied context.xml file /git/app/apache-tomcat-10.1.11/webapps/towl/META-INF/context.xml Removed < in rewrite.config files. But still I dont redirect the URL. For your information *nslookup alias.example.com <http://alias.example.com> gives-->Non-authoritative answer:Name: www.example.com <http://www.example.com>Address: 192.168.200.10Aliases: alias.example.com <http://alias.example.com>* Just to give some information here, *www.example.com <http://www.example.com>* has alias* "alias.example.com <http://alias.example.com>"* But https://www.example.com:/example --> works fine with out issues but the alias doesnot works (https://alias.example.com) So i am not sure if the redirect url helps or if its correct Looking for some suggestions. Thanks Ammu On Fri, Apr 19, 2024 at 1:21 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Ammu, > > On 4/18/24 09:34, lavanya tech wrote: > > I am attaching server.xml and context.xml and rewrite.config files. > > The paths are > > > > /git/app/apache-tomcat-10.1.11/webapps/towl/context.xml > > > > /> > > > > > > This file ^^^ is in the wrong place. It should be in > /git/app/apache-tomcat-10.1.11/webapps/towl/META-INF/context.xml > > > /git/app/apache-tomcat-10.1.11/webapps/towl/WEB-INF/rewrite.config > > > > > https://www.example.com:/example [R=301,L] > > Why do you have < symbols at the beginning of these lines? > > > server.xml > > > > [...] > > > > > autoDeploy="true"> > > > > It's best not to define any in server.xml. I would remove this > entirely and allow Tomcat to auto-reploy from your > webapps/towl directory. If you need this application to be deployed as > the ROOT context (on / and not /towl) then you should re-name > /git/app/apache-tomcat-10.1.11/webapps/towl to > /git/app/apache-tomcat-10.1.11/webapps/ROOT > > You also don't need a for example.com as well as adding an > for the same domain (though this is probably to anonymize the > configuration). You can feel free to simply use the "localhost" > as the default and deploy everything into it. This makes your > configuration changes relative to a stock Tomcat less significant and > easier to apply to new versions if/when necessary. > > -chris > > > On Thu, Apr 18, 2024 at 2:17 PM Christopher Schultz < > > ch...@christopherschultz.net> wrote: > > > >> Ammu, > >> > >> On 4/18/24 07:45, lavanya tech wrote: > >>> I added classname rewrite valeus in contex.xml file . > >>> > >>> > >>>className="org.apache.catalina.valves.rewrite.RewriteValve" > >> /> > >>> > >>> > >>> created rewrite.config so both of them is located under conf under > >>> apache-tomcat. > >>> > >>> > >>>>>>>>> https://www.example.com:/example [R=301,L] > >>> > >>> So according to the documentaion they say context.xml should be placed > >>> under webapps and rewrite.config file should be put in WEB-INF folder > of > >>> apache-tomcat . I placed and restarted tomcat webserver but still it > >>> doesnot redirect. > >> > >> Can you give full paths to both server.xml and rewrite.config, re-post > >> your current server.xml element, and the complete contents of > >> rewrite.config? > >> > >> Have you looked at the log files after start? > >> > >> -chris > >> > >>> On Thu, Apr 18, 2024 at 1:36 PM lavanya tech > > >>> wrote: > >>> > >>>> Hi Thomas, > >>>> > >>>> Thanks for the fast response. > >>>> > >>>> I added classname rewrite valeus in contex.xml file . > >>>> > >>>> > >>>>className="org.apache.catalina.valves.rewrite.RewriteValve" > >> /> > >>>> > >>>> > >>>> created rewrite.config so both of them is located under conf under > >>>> apache-tomcat. > >>>> > >>>> So according to the documentaion they say context.xml should be placed > >>>> under webapps and rewrite.config file should be put in WEB-INF folde
Re: Regarding Tomcat url redirection
Hi Chris, Could you please explain, what you exactly mean ? So here redirect is not a solution right ? "You'd have to use a glob/regex if you wanted to check for [anything and maybe nothing.]example.com." Thanks, ammu On Fri, Apr 19, 2024 at 3:03 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Ammu, > > On 4/19/24 08:32, lavanya tech wrote: > > Thank you very much. I removed for example.com as well as adding > an > > in server.xml > > I copied context.xml file > > /git/app/apache-tomcat-10.1.11/webapps/towl/META-INF/context.xml > > Removed < in rewrite.config files. > > > > But still I dont redirect the URL. > > If you have in server.xml and also your application in the > webapps/ directory, then you will be double-deploying your application. > > Re-name /git/app/apache-tomcat-10.1.11/webapps/towl/ to be > /git/app/apache-tomcat-10.1.11/webapps/ROOT (the capitals are important) > and remove the element from your server.xml. > > Then start your server and read the logs. > > > *nslookup alias.example.com <http://alias.example.com> > > gives-->Non-authoritative answer:Name: www.example.com > > <http://www.example.com>Address: 192.168.200.10Aliases: > alias.example.com > > <http://alias.example.com>* > > > > > > Just to give some information here, *www.example.com > > <http://www.example.com>* has alias* "alias.example.com > > <http://alias.example.com>"* > > But https://www.example.com:/example --> works fine with out issues > but > > the alias doesnot works (https://alias.example.com) > > So i am not sure if the redirect url helps or if its correct > > Your rewrite configuration says that you have to be using host > "example.com" but your request goes to www.example.com. Your > configuration should only redirect a request such as: > > $ curl -v http://example.com:/something > > HTTP/1.1 301 Moved Permanently > ... > Location: https://www.example.com:/example > > If you make a request like: > > $ curl -v http://www.example.com:/something > > I wouldn't expect a redirect because of your "host" condition. The > "%{HTTP_HOST} example.com" looks at the entire Host header and not just > anything that ends in "example.com". You'd have to use a glob/regex if > you wanted to check for [anything and maybe nothing.]example.com. > > You'd also have to make sure that your application is serving responses > to requests to / which is why I'm recommending you use the ROOT web > application name instead of "towl". > > -chris > > > On Fri, Apr 19, 2024 at 1:21 PM Christopher Schultz < > > ch...@christopherschultz.net> wrote: > > > >> Ammu, > >> > >> On 4/18/24 09:34, lavanya tech wrote: > >>> I am attaching server.xml and context.xml and rewrite.config files. > >>> The paths are > >>> > >>> /git/app/apache-tomcat-10.1.11/webapps/towl/context.xml > >>> > >>>className="org.apache.catalina.valves.rewrite.RewriteValve" > >> /> > >>> > >>> > >> > >> This file ^^^ is in the wrong place. It should be in > >> /git/app/apache-tomcat-10.1.11/webapps/towl/META-INF/context.xml > >> > >>> /git/app/apache-tomcat-10.1.11/webapps/towl/WEB-INF/rewrite.config > >>> > >>> >>> https://www.example.com:/example [R=301,L] > >> > >> Why do you have < symbols at the beginning of these lines? > >> > >>> server.xml > >>> > >> > [...] > >>> > >>> >>> autoDeploy="true"> > >>> > >> > >> It's best not to define any in server.xml. I would remove this > >> entirely and allow Tomcat to auto-reploy from your > >> webapps/towl directory. If you need this application to be deployed as > >> the ROOT context (on / and not /towl) then you should re-name > >> /git/app/apache-tomcat-10.1.11/webapps/towl to > >> /git/app/apache-tomcat-10.1.11/webapps/ROOT > >> > >> You also don't need a for example.com as well as adding an > >> for the same domain (though this is probably to anonymize the > >> configuration). You can feel free to simply use the "localhost" > >> as the default and deploy everything into it. This makes your > >> configuration changes relative to a stock Tomcat less significant a
Re: Regarding Tomcat url redirection
Hi Chris, I have already a Root folder /git/app/apache-tomcat-10.1.11/webapps, I see the files index.jsp and index.jsp has below configuration. So should I add server.xml under ROOT folder aswell with localhost and example.com such that both the urls are accessible. ? Please suggest <% response.sendRedirect("/towl"); %> Thanks, amm On Mon, Apr 22, 2024 at 11:21 AM lavanya tech wrote: > Hi Chris, > > Could you please explain, what you exactly mean ? So here redirect is not > a solution right ? > > "You'd have to use a glob/regex if > you wanted to check for [anything and maybe nothing.]example.com." > > Thanks, > ammu > > > > > On Fri, Apr 19, 2024 at 3:03 PM Christopher Schultz < > ch...@christopherschultz.net> wrote: > >> Ammu, >> >> On 4/19/24 08:32, lavanya tech wrote: >> > Thank you very much. I removed for example.com as well as >> adding an >> > in server.xml >> > I copied context.xml file >> > /git/app/apache-tomcat-10.1.11/webapps/towl/META-INF/context.xml >> > Removed < in rewrite.config files. >> > >> > But still I dont redirect the URL. >> >> If you have in server.xml and also your application in the >> webapps/ directory, then you will be double-deploying your application. >> >> Re-name /git/app/apache-tomcat-10.1.11/webapps/towl/ to be >> /git/app/apache-tomcat-10.1.11/webapps/ROOT (the capitals are important) >> and remove the element from your server.xml. >> >> Then start your server and read the logs. >> >> > *nslookup alias.example.com <http://alias.example.com> >> > gives-->Non-authoritative answer:Name: www.example.com >> > <http://www.example.com>Address: 192.168.200.10Aliases: >> alias.example.com >> > <http://alias.example.com>* >> > >> > >> > Just to give some information here, *www.example.com >> > <http://www.example.com>* has alias* "alias.example.com >> > <http://alias.example.com>"* >> > But https://www.example.com:/example --> works fine with out >> issues but >> > the alias doesnot works (https://alias.example.com) >> > So i am not sure if the redirect url helps or if its correct >> >> Your rewrite configuration says that you have to be using host >> "example.com" but your request goes to www.example.com. Your >> configuration should only redirect a request such as: >> >> $ curl -v http://example.com:/something >> >> HTTP/1.1 301 Moved Permanently >> ... >> Location: https://www.example.com:/example >> >> If you make a request like: >> >> $ curl -v http://www.example.com:/something >> >> I wouldn't expect a redirect because of your "host" condition. The >> "%{HTTP_HOST} example.com" looks at the entire Host header and not just >> anything that ends in "example.com". You'd have to use a glob/regex if >> you wanted to check for [anything and maybe nothing.]example.com. >> >> You'd also have to make sure that your application is serving responses >> to requests to / which is why I'm recommending you use the ROOT web >> application name instead of "towl". >> >> -chris >> >> > On Fri, Apr 19, 2024 at 1:21 PM Christopher Schultz < >> > ch...@christopherschultz.net> wrote: >> > >> >> Ammu, >> >> >> >> On 4/18/24 09:34, lavanya tech wrote: >> >>> I am attaching server.xml and context.xml and rewrite.config files. >> >>> The paths are >> >>> >> >>> /git/app/apache-tomcat-10.1.11/webapps/towl/context.xml >> >>> >> >>> > className="org.apache.catalina.valves.rewrite.RewriteValve" >> >> /> >> >>> >> >>> >> >> >> >> This file ^^^ is in the wrong place. It should be in >> >> /git/app/apache-tomcat-10.1.11/webapps/towl/META-INF/context.xml >> >> >> >>> /git/app/apache-tomcat-10.1.11/webapps/towl/WEB-INF/rewrite.config >> >>> >> >>> > >>> https://www.example.com:/example [R=301,L] >> >> >> >> Why do you have < symbols at the beginning of these lines? >> >> >> >>> server.xml >> >>> >> >> > [...] >> >>> >> >>> > >>> autoDeploy="true&quo
Re: Regarding Tomcat url redirection
Hi Chris, Sorry I understood wrongly here with regards to my environment, Let me start from the beginning. I donot want to use redirect at all. I simply wanted to force apache tomcat to use both localhost and dns name of the localhost via url. I have DNS resollution as below. server.lbg.com --> localhost nslookup server.lbg.com (localhost) Name:server.lbg.com Address: 192.168.100.20 alias: example.lbg.com We have working the below urls working: https://server.lbg.com:8443/towl https://example.lbg.com:8443/towl --> redirects to https://server.lbg.com:8443/towl --> still works --> we have SSL configured for the same but this SSL certificate doesnot have additional DNS setup. But I would need to somehow access https://example.lbg.com --> which means I would need to access via 443 here ? I tried to adding the below to server.xml as below, but that doesnot seems to work. --> Do i need additional SSL certificate for the https://example.lbg.com to make it work ? Do i need to set up an additional web server for this like apache or nginx for redirecting requests? I look forward to your feedback. Thanks and Best Regards, Lavanya On Tue, Apr 23, 2024 at 10:52 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Lavanya, > > On 4/22/24 05:21, lavanya tech wrote: > > Could you please explain, what you exactly mean ? So here redirect is > not a > > solution right ? > > Redirecting is fine. > > Perhaps you should take a step back and decide: what do you actually > want, here? You might be trying to solve problem X by applying solution > Y, and you've already decided that solution Y is correct so you are > trying to get help with that. > > Perhaps ask for help with Problem X? > > For example, "I don't want users to have to type the name of my > application to reach it so I want example.com/ to go to my application > instead of example.com/myapp/". > > Or, "I have multiple domains and I want all of them to redirect to the > canonical domain example.com and to go to me web application /myapp so > everything goes to example.com/myapp/". > > > "You'd have to use a glob/regex if > > you wanted to check for [anything and maybe nothing.]example.com." > > There is nothing in your configuration or question that suggests that > the hostname in the request is relevant, but you are making it a > *requirement* that the request contains a specific Host header. IF you > don't actually need that, why do you have it? > > -chris > > > On Fri, Apr 19, 2024 at 3:03 PM Christopher Schultz < > > ch...@christopherschultz.net> wrote: > > > >> Ammu, > >> > >> On 4/19/24 08:32, lavanya tech wrote: > >>> Thank you very much. I removed for example.com as well as > adding > >> an > >>> in server.xml > >>> I copied context.xml file > >>> /git/app/apache-tomcat-10.1.11/webapps/towl/META-INF/context.xml > >>> Removed < in rewrite.config files. > >>> > >>> But still I dont redirect the URL. > >> > >> If you have in server.xml and also your application in the > >> webapps/ directory, then you will be double-deploying your application. > >> > >> Re-name /git/app/apache-tomcat-10.1.11/webapps/towl/ to be > >> /git/app/apache-tomcat-10.1.11/webapps/ROOT (the capitals are important) > >> and remove the element from your server.xml. > >> > >> Then start your server and read the logs. > >> > >>> *nslookup alias.example.com <http://alias.example.com> > >>> gives-->Non-authoritative answer:Name: www.example.com > >>> <http://www.example.com>Address: 192.168.200.10Aliases: > >> alias.example.com > >>> <http://alias.example.com>* > >>> > >>> > >>> Just to give some information here, *www.example.com > >>> <http://www.example.com>* has alias* "alias.example.com > >>> <http://alias.example.com>"* > >>> But https://www.example.com:/example --> works fine with out > issues > >> but > >>> the alias doesnot works (https://alias.example.com) > >>> So i am not sure if the redirect url helps or if its correct > >> > >> Your rewrite configuration says that you have to be using host > >> "example.com" but your request goes to www.example.com. Your > >> configuration should only redirect a request such as: > >> > >> $ curl -v http://example.com:/something > >> > >> HTTP/1.1 301 Moved Permanently >
Re: Regarding Tomcat url redirection
Hi Chris, Thanks for the reply. Local host means the machine i am logged in to server.lbg.com You are right, example.lbg.com is CNAME record. I dont have any SAN configured for the certificate. The certificate is requested for only server.lbg.com So if i just request new certificate with SAN it should work ? If yes, I will request for it and follow your steps as below suggested. Should i use CName record or DNS? Does it make difference? Thanks, Lavanya On Wednesday, April 24, 2024, Christopher Schultz < ch...@christopherschultz.net> wrote: > Lavanya, > > On 4/24/24 07:37, lavanya tech wrote: > >> Sorry I understood wrongly here with regards to my environment, Let me >> start from the beginning. I donot want to use redirect at all. I simply >> wanted to force apache tomcat to use both localhost and dns name of the >> localhost via url. >> > > When you say "force" what do you mean? > > When you say "use both localhost and DNS name" what do you mean? > > When you say "localhost" do you mean 127.0.0.1 or "the machine I'm > logged-into right now"? > > I have DNS resollution as below. >> >> server.lbg.com --> localhost >> > > Is that a CNAME record? > > nslookup server.lbg.com (localhost) >> Name:server.lbg.com >> Address: 192.168.100.20 >> alias: example.lbg.com >> > > That's a weird DNS response. The DNS name "localhost" should *always* > return 127.0.0.1 for IPv4 and ::1 for IPv6. It shouldn't return > 191.168.100.20. > > We have working the below urls working: >> https://server.lbg.com:8443/towl >> https://example.lbg.com:8443/towl --> redirects to >> > > What do you mean "redirect"? Does it return a 30x response that causes the > browser to make a new request to \/ > > https://server.lbg.com:8443/towl --> still works --> we have SSL >> configured for the same but this SSL certificate doesnot have additional >> DNS setup. >> > > What SANs are in your certificate? How many certificates do you have? > > But I would need to somehow access https://example.lbg.com --> which >> means >> I would need to access via 443 here ? >> > > I'm so confused. What needs to access what? > > I tried to adding the below to server.xml as below, but that doesnot seems >> to work. >> >> > protocol="org.apache.coyote.http11.Http11NioProtocol" >> connectionTimeout="2" >> redirectPort="443" /> >> > > This will only redirect (HTTP 302) requests to http://yourhost/anything > to https://yourhost/anything *if the application specifically requests > CONFIDENTIAL transport*. It doesn't just redirect everything by default. If > you want it to redirect everything, you'll need to set that up e.g. using > RewriteValve. There are other options, too. > > Do i need additional SSL certificate for the https://example.lbg.com to >> make it work ? >> > > If you don't want your browser to complain, you will need at least one TLS > certificate that contains every Subject Alternative Name (SAN) for every > possible hostname you expect to use with this service. You ca do it with > multiple certificates as well, but a single cert with multiple SANs is less > work. > > Do i need to set up an additional web server for this like apache or nginx >> for redirecting requests? >> > > No. > > Please stop saying "redirect" because it sounds like you almost never mean > "HTTP 30x redirect" and that's confusing everything. > > I *think* you only need the following: > > 1. A TLS certificate with the following SANs: > > * server.lbg.com > * example.lbg.com > * localhost (you shouldn't do this) > > 2. DNS configured for all hostnames: > > * server.lbg.com -> A 192.168.100.20 > * example.lgb.com -> A 192.168.100.20 > > 3. Tomcat configured with a single which is the default virtual > host. Note that this is the *default Tomcat configuration* and doesn't need > to be changed from the default. > > 4. Tomcat configured with your certificate like this: > > SSLEnabled="true"> > >certificateFile="/path/to/your/cert.crt" >certificateKeyFile="/path/to/your/key.pem" /> > > > > > If your SANs are configured properly, this should allow you to connect > using any of these URLs: > > $ curl https://server.lbg.com/towl/login.jsp > > (returns login page) > > $ curl http
Re: Regarding Tomcat url redirection
Hi Chris, Thanks I will request new certificate with SANs and I will try to fix the things from our end. Best Regards, Lavanya On Wed, Apr 24, 2024 at 11:12 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Lavanya, > > On 4/24/24 15:39, lavanya tech wrote: > > Local host means the machine i am logged in to server.lbg.com > > > > You are right, example.lbg.com is CNAME record. > > Okay, thanks for clearing that up. > > > I dont have any SAN configured for the certificate. The certificate is > > requested for only server.lbg.com > > You will never be able to make a secure request to anything other than > server.lbg.com without seeing an error. I highly recommend adding the > other hostname as a SAN to your certificate if you really want to > support this. > > Even if you wanted https://example.lbg.com/whatever to return an HTTP > 302 redirect to https://server.lbg.com/whatever, the user would see a > certificate hostname mismatch error which is ugly. It's best to make it > work without users seeing ugly things. > > > So if i just request new certificate with SAN it should work ? If yes, I > > will request for it and follow your steps as below suggested. > > Yes, it should. > > > Should i use CName record or DNS? Does it make difference? > > CNAME *is* DNS. > > Whenever possible, use hostnames and not IP addresses as SANs. It's more > flexible that way, and users get to see hostnames instead of IP addresses. > > -chris > > > On Wednesday, April 24, 2024, Christopher Schultz < > > ch...@christopherschultz.net> wrote: > > > >> Lavanya, > >> > >> On 4/24/24 07:37, lavanya tech wrote: > >> > >>> Sorry I understood wrongly here with regards to my environment, Let me > >>> start from the beginning. I donot want to use redirect at all. I simply > >>> wanted to force apache tomcat to use both localhost and dns name of the > >>> localhost via url. > >>> > >> > >> When you say "force" what do you mean? > >> > >> When you say "use both localhost and DNS name" what do you mean? > >> > >> When you say "localhost" do you mean 127.0.0.1 or "the machine I'm > >> logged-into right now"? > >> > >> I have DNS resollution as below. > >>> > >>> server.lbg.com --> localhost > >>> > >> > >> Is that a CNAME record? > >> > >> nslookup server.lbg.com (localhost) > >>> Name:server.lbg.com > >>> Address: 192.168.100.20 > >>> alias: example.lbg.com > >>> > >> > >> That's a weird DNS response. The DNS name "localhost" should *always* > >> return 127.0.0.1 for IPv4 and ::1 for IPv6. It shouldn't return > >> 191.168.100.20. > >> > >> We have working the below urls working: > >>> https://server.lbg.com:8443/towl > >>> https://example.lbg.com:8443/towl --> redirects to > >>> > >> > >> What do you mean "redirect"? Does it return a 30x response that causes > the > >> browser to make a new request to \/ > >> > >> https://server.lbg.com:8443/towl --> still works --> we have SSL > >>> configured for the same but this SSL certificate doesnot have > additional > >>> DNS setup. > >>> > >> > >> What SANs are in your certificate? How many certificates do you have? > >> > >> But I would need to somehow access https://example.lbg.com --> which > >>> means > >>> I would need to access via 443 here ? > >>> > >> > >> I'm so confused. What needs to access what? > >> > >> I tried to adding the below to server.xml as below, but that doesnot > seems > >>> to work. > >>> > >>>>>> protocol="org.apache.coyote.http11.Http11NioProtocol" > >>> connectionTimeout="2" > >>> redirectPort="443" /> > >>> > >> > >> This will only redirect (HTTP 302) requests to http://yourhost/anything > >> to https://yourhost/anything *if the application specifically requests > >> CONFIDENTIAL transport*. It doesn't just redirect everything by > default. If > >> you want it to redirect everything, you'll need to set that up e.g. > using > >> RewriteValve. There are other options, too. > >> > >
Re: Regarding Tomcat url redirection
Hi Chris, One question / doubt: As I mentioned earlier, the below URLS already working in the browser > https://server.lbg.com:8443/towl > https://example.lbg.com:8443/towl -> redirect ( which means when I hit in browser) it points to https://server.lbg.com:8443/towl ---> To be frank, even I donot need redirect here, not sure why it redirects. My question is why its working even though SAN is not registered with the certificate ? It doesnot even throw warning in the browser. Why https://server.lbg.com/towl or https://example.lbg.com/towl --> How it should work with New SAN certificate ? Thanks, Lavanya On Thu, Apr 25, 2024 at 10:16 AM lavanya tech wrote: > Hi Chris, > > > Thanks I will request new certificate with SANs and I will try to fix the > things from our end. > > Best Regards, > Lavanya > > On Wed, Apr 24, 2024 at 11:12 PM Christopher Schultz < > ch...@christopherschultz.net> wrote: > >> Lavanya, >> >> On 4/24/24 15:39, lavanya tech wrote: >> > Local host means the machine i am logged in to server.lbg.com >> > >> > You are right, example.lbg.com is CNAME record. >> >> Okay, thanks for clearing that up. >> >> > I dont have any SAN configured for the certificate. The certificate is >> > requested for only server.lbg.com >> >> You will never be able to make a secure request to anything other than >> server.lbg.com without seeing an error. I highly recommend adding the >> other hostname as a SAN to your certificate if you really want to >> support this. >> >> Even if you wanted https://example.lbg.com/whatever to return an HTTP >> 302 redirect to https://server.lbg.com/whatever, the user would see a >> certificate hostname mismatch error which is ugly. It's best to make it >> work without users seeing ugly things. >> >> > So if i just request new certificate with SAN it should work ? If yes, I >> > will request for it and follow your steps as below suggested. >> >> Yes, it should. >> >> > Should i use CName record or DNS? Does it make difference? >> >> CNAME *is* DNS. >> >> Whenever possible, use hostnames and not IP addresses as SANs. It's more >> flexible that way, and users get to see hostnames instead of IP addresses. >> >> -chris >> >> > On Wednesday, April 24, 2024, Christopher Schultz < >> > ch...@christopherschultz.net> wrote: >> > >> >> Lavanya, >> >> >> >> On 4/24/24 07:37, lavanya tech wrote: >> >> >> >>> Sorry I understood wrongly here with regards to my environment, Let me >> >>> start from the beginning. I donot want to use redirect at all. I >> simply >> >>> wanted to force apache tomcat to use both localhost and dns name of >> the >> >>> localhost via url. >> >>> >> >> >> >> When you say "force" what do you mean? >> >> >> >> When you say "use both localhost and DNS name" what do you mean? >> >> >> >> When you say "localhost" do you mean 127.0.0.1 or "the machine I'm >> >> logged-into right now"? >> >> >> >> I have DNS resollution as below. >> >>> >> >>> server.lbg.com --> localhost >> >>> >> >> >> >> Is that a CNAME record? >> >> >> >> nslookup server.lbg.com (localhost) >> >>> Name:server.lbg.com >> >>> Address: 192.168.100.20 >> >>> alias: example.lbg.com >> >>> >> >> >> >> That's a weird DNS response. The DNS name "localhost" should *always* >> >> return 127.0.0.1 for IPv4 and ::1 for IPv6. It shouldn't return >> >> 191.168.100.20. >> >> >> >> We have working the below urls working: >> >>> https://server.lbg.com:8443/towl >> >>> https://example.lbg.com:8443/towl --> redirects to >> >>> >> >> >> >> What do you mean "redirect"? Does it return a 30x response that causes >> the >> >> browser to make a new request to \/ >> >> >> >> https://server.lbg.com:8443/towl --> still works --> we have SSL >> >>> configured for the same but this SSL certificate doesnot have >> additional >> >>> DNS setup. >> >>> >> >> >> >> What SANs are in your certificate? How many certificates do you have? >> >> >> &g
Re: Regarding Tomcat url redirection
Hi I have updated the certificate now, but still I cannot access url https://example.lbg.com/towl either https://server.lbg.com/towl ? I wonder why its working with port 8443 and not with out port On Thu, Apr 25, 2024 at 1:24 PM lavanya tech wrote: > Hi Chris, > > One question / doubt: > > As I mentioned earlier, the below URLS already working in the browser > > https://server.lbg.com:8443/towl > > https://example.lbg.com:8443/towl -> redirect ( which means when I hit > in browser) it points to https://server.lbg.com:8443/towl ---> To be > frank, even I donot need redirect here, not sure why it redirects. > > My question is why its working even though SAN is not registered with the > certificate ? It doesnot even throw warning in the browser. > > Why https://server.lbg.com/towl or https://example.lbg.com/towl --> How > it should work with New SAN certificate ? > > Thanks, > Lavanya > > > > On Thu, Apr 25, 2024 at 10:16 AM lavanya tech > wrote: > >> Hi Chris, >> >> >> Thanks I will request new certificate with SANs and I will try to fix the >> things from our end. >> >> Best Regards, >> Lavanya >> >> On Wed, Apr 24, 2024 at 11:12 PM Christopher Schultz < >> ch...@christopherschultz.net> wrote: >> >>> Lavanya, >>> >>> On 4/24/24 15:39, lavanya tech wrote: >>> > Local host means the machine i am logged in to server.lbg.com >>> > >>> > You are right, example.lbg.com is CNAME record. >>> >>> Okay, thanks for clearing that up. >>> >>> > I dont have any SAN configured for the certificate. The certificate is >>> > requested for only server.lbg.com >>> >>> You will never be able to make a secure request to anything other than >>> server.lbg.com without seeing an error. I highly recommend adding the >>> other hostname as a SAN to your certificate if you really want to >>> support this. >>> >>> Even if you wanted https://example.lbg.com/whatever to return an HTTP >>> 302 redirect to https://server.lbg.com/whatever, the user would see a >>> certificate hostname mismatch error which is ugly. It's best to make it >>> work without users seeing ugly things. >>> >>> > So if i just request new certificate with SAN it should work ? If yes, >>> I >>> > will request for it and follow your steps as below suggested. >>> >>> Yes, it should. >>> >>> > Should i use CName record or DNS? Does it make difference? >>> >>> CNAME *is* DNS. >>> >>> Whenever possible, use hostnames and not IP addresses as SANs. It's more >>> flexible that way, and users get to see hostnames instead of IP >>> addresses. >>> >>> -chris >>> >>> > On Wednesday, April 24, 2024, Christopher Schultz < >>> > ch...@christopherschultz.net> wrote: >>> > >>> >> Lavanya, >>> >> >>> >> On 4/24/24 07:37, lavanya tech wrote: >>> >> >>> >>> Sorry I understood wrongly here with regards to my environment, Let >>> me >>> >>> start from the beginning. I donot want to use redirect at all. I >>> simply >>> >>> wanted to force apache tomcat to use both localhost and dns name of >>> the >>> >>> localhost via url. >>> >>> >>> >> >>> >> When you say "force" what do you mean? >>> >> >>> >> When you say "use both localhost and DNS name" what do you mean? >>> >> >>> >> When you say "localhost" do you mean 127.0.0.1 or "the machine I'm >>> >> logged-into right now"? >>> >> >>> >> I have DNS resollution as below. >>> >>> >>> >>> server.lbg.com --> localhost >>> >>> >>> >> >>> >> Is that a CNAME record? >>> >> >>> >> nslookup server.lbg.com (localhost) >>> >>> Name:server.lbg.com >>> >>> Address: 192.168.100.20 >>> >>> alias: example.lbg.com >>> >>> >>> >> >>> >> That's a weird DNS response. The DNS name "localhost" should *always* >>> >> return 127.0.0.1 for IPv4 and ::1 for IPv6. It shouldn't return >>> >> 191.168.100.20. >>> >> >>> >> We have workin
Re: Regarding Tomcat url redirection
Hi Chris, There is no issues with browser, because I tested with different browsers and it all works fine. I am sure that there is no issue with the certificate. Because I was able to establish successful connections with port 8443, it just doesnot work with out port curl https://example.lbg.com/towl curl: (56) Received HTTP code 504 from proxy after CONNECT curl: (56) Received HTTP code 504 from proxy after CONNECT If you want to use port 443 (the default port for HTTPS) then you will need to change Tomcat to bind to port 443 (if that's allowed on your OS) or arrange to have port 443 routed to port 8443. You may need additional configuration in Tomcat (specifically: proxyPort) to avoid having Tomcat generate URLs with ":8443" in them. should i use connect port like the above ? But you mentioned before we dont need any configuration changes. Please clarify I am not able to figure this out and I have this issue many days pending. How to make it work with port 8443 and with out port Also I wanted to use weburl with alias name permanently instead of the hostname. How can I achieve both Thanks, Lavanya --> On Fri, Apr 26, 2024 at 9:28 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Lavanya, > > On 4/25/24 07:24, lavanya tech wrote: > > Hi Chris, > > > > One question / doubt: > > > > As I mentioned earlier, the below URLS already working in the browser > >> https://server.lbg.com:8443/towl > >> https://example.lbg.com:8443/towl -> redirect ( which means when I hit > in > > browser) it points to https://server.lbg.com:8443/towl ---> To be frank, > > even I donot need redirect here, not sure why it redirects. > > > > My question is why its working even though SAN is not registered with the > > certificate ? It doesnot even throw warning in the browser. > > I'm not sure. Is it possible you have dismissed this error in the past > and the browser is remembering that? Try this with a different web > browser or maybe with curl from the command-line to see what happens. > > > Why https://server.lbg.com/towl or https://example.lbg.com/towl --> How > it > > should work with New SAN certificate ? > > You don't need to worry about the port number or application name, only > the hostname is a part of the SAN. > > -chris > > > On Thu, Apr 25, 2024 at 10:16 AM lavanya tech > > wrote: > > > >> Hi Chris, > >> > >> > >> Thanks I will request new certificate with SANs and I will try to fix > the > >> things from our end. > >> > >> Best Regards, > >> Lavanya > >> > >> On Wed, Apr 24, 2024 at 11:12 PM Christopher Schultz < > >> ch...@christopherschultz.net> wrote: > >> > >>> Lavanya, > >>> > >>> On 4/24/24 15:39, lavanya tech wrote: > >>>> Local host means the machine i am logged in to server.lbg.com > >>>> > >>>> You are right, example.lbg.com is CNAME record. > >>> > >>> Okay, thanks for clearing that up. > >>> > >>>> I dont have any SAN configured for the certificate. The certificate is > >>>> requested for only server.lbg.com > >>> > >>> You will never be able to make a secure request to anything other than > >>> server.lbg.com without seeing an error. I highly recommend adding the > >>> other hostname as a SAN to your certificate if you really want to > >>> support this. > >>> > >>> Even if you wanted https://example.lbg.com/whatever to return an HTTP > >>> 302 redirect to https://server.lbg.com/whatever, the user would see a > >>> certificate hostname mismatch error which is ugly. It's best to make it > >>> work without users seeing ugly things. > >>> > >>>> So if i just request new certificate with SAN it should work ? If > yes, I > >>>> will request for it and follow your steps as below suggested. > >>> > >>> Yes, it should. > >>> > >>>> Should i use CName record or DNS? Does it make difference? > >>> > >>> CNAME *is* DNS. > >>> > >>> Whenever possible, use hostnames and not IP addresses as SANs. It's > more > >>> flexible that way, and users get to see hostnames instead of IP > addresses. > >>> > >>> -chris > >>> > >>>> On Wednesday, April 24, 2024, Christopher Schultz < > >>>> ch...@christopherschultz.net> wrote: > >>>> > >>>>> L
Re: Regarding Tomcat url redirection
Hi Chris, Can you tell me how to do the below ? How should I setup Tomcat in server.xml ? If you want to use port 443 (the default port for HTTPS) then you will need to change Tomcat to bind to port 443 (if that's allowed on your OS) or arrange to have port 443 routed to port 8443. You may need additional configuration in Tomcat (specifically: proxyPort) to avoid having Tomcat generate URLs with ":8443" in them. Looking forward to your reply. Thanks, Lavanya On Mon, Apr 29, 2024 at 2:03 PM lavanya tech wrote: > Hi Chris, > > There is no issues with browser, because I tested with different browsers > and it all works fine. I am sure that there is no issue with the > certificate. > Because I was able to establish successful connections with port 8443, it > just doesnot work with out port > > curl https://example.lbg.com/towl > curl: (56) Received HTTP code 504 from proxy after CONNECT > curl: (56) Received HTTP code 504 from proxy after CONNECT > > > If you want to use port 443 (the default port for HTTPS) then you will > need to change Tomcat to bind to port 443 (if that's allowed on your OS) > or arrange to have port 443 routed to port 8443. You may need additional > configuration in Tomcat (specifically: proxyPort) to avoid having Tomcat > generate URLs with ":8443" in them. > > connectionTimeout="2" >redirectPort="8443" >maxThreads="150" >scheme="https" secure="true" SSLEnabled="true" >keystoreFile="path_to_your_keystore_file" >keystorePass="your_keystore_password" >keystoreType="PKCS12" >clientAuth="false" sslProtocol="TLS" >proxyPort="443"/> > > should i use connect port like the above ? But you mentioned before we > dont need any configuration changes. Please clarify I am not able to figure > this out and I have this issue many days pending. How to make it work with > port 8443 and with out port > > Also I wanted to use weburl with alias name permanently instead of the > hostname. How can I achieve both > > Thanks, > Lavanya > > > --> > > > On Fri, Apr 26, 2024 at 9:28 PM Christopher Schultz < > ch...@christopherschultz.net> wrote: > >> Lavanya, >> >> On 4/25/24 07:24, lavanya tech wrote: >> > Hi Chris, >> > >> > One question / doubt: >> > >> > As I mentioned earlier, the below URLS already working in the browser >> >> https://server.lbg.com:8443/towl >> >> https://example.lbg.com:8443/towl -> redirect ( which means when I >> hit in >> > browser) it points to https://server.lbg.com:8443/towl ---> To be >> frank, >> > even I donot need redirect here, not sure why it redirects. >> > >> > My question is why its working even though SAN is not registered with >> the >> > certificate ? It doesnot even throw warning in the browser. >> >> I'm not sure. Is it possible you have dismissed this error in the past >> and the browser is remembering that? Try this with a different web >> browser or maybe with curl from the command-line to see what happens. >> >> > Why https://server.lbg.com/towl or https://example.lbg.com/towl --> >> How it >> > should work with New SAN certificate ? >> >> You don't need to worry about the port number or application name, only >> the hostname is a part of the SAN. >> >> -chris >> >> > On Thu, Apr 25, 2024 at 10:16 AM lavanya tech > > >> > wrote: >> > >> >> Hi Chris, >> >> >> >> >> >> Thanks I will request new certificate with SANs and I will try to fix >> the >> >> things from our end. >> >> >> >> Best Regards, >> >> Lavanya >> >> >> >> On Wed, Apr 24, 2024 at 11:12 PM Christopher Schultz < >> >> ch...@christopherschultz.net> wrote: >> >> >> >>> Lavanya, >> >>> >> >>> On 4/24/24 15:39, lavanya tech wrote: >> >>>> Local host means the machine i am logged in to server.lbg.com >> >>>> >> >>>> You are right, example.lbg.com is CNAME record. >> >>> >> >>> Okay, thanks for clearing that up. >> >>> >> >>>> I dont have any SAN configured for the certificate. The certificate >> is >> >>>> requested for only server.lbg.com >> >>>
Re: Regarding Tomcat url redirection
Hello Chris, I figured out how I can it make it work with 443. Now the URls are working. I added iptables route 443 to 8443 and it started working. nslookup example.lbg.com Non-authoritative answer: Name:server.lbg.com Address: 192.168.200.105 Aliases: example.lbg.com I have some application towl running with apache tomcat. I have the below URLs working. https://server.lbg.com:8443/towl https://server.lbg.com https://example.lbg.com https://example.lbg.com/towl Now i wanted to disable the url https://example.lbg.com/towl and https://server.lbg.com and access only the other remaining two. In the end our goal to makesure that the links are not always dead as soon as the towl is moved to a new machine. Can you pelase assit me how to do that ? Thanks, Lavanya On Tue, Apr 30, 2024 at 5:44 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Lavanya, > > On 4/30/24 07:10, lavanya tech wrote: > > Can you tell me how to do the below ? How should I setup Tomcat in > > server.xml ? > > > > > > If you want to use port 443 (the default port for HTTPS) then you will > > need to change Tomcat to bind to port 443 (if that's allowed on your OS) > > or arrange to have port 443 routed to port 8443. You may need additional > > configuration in Tomcat (specifically: proxyPort) to avoid having Tomcat > > generate URLs with ":8443" in them. > > > > Looking forward to your reply. > > If Tomcat is listening on port 8443 then you will need to include that > in your URL, period. If you want to allow URLs without a port number, > you will have to arrange to have something listening on port 443. > > On Windows, Tomcat can listen directly on port 443. On UNIX and > UNIX-like systems, you won't be able to do this without running Tomcat > as root WHICH YOU ABSOLUTELY SHOULD NOT DO. > > There are other ways to get port 443 working, but I'll need to know more > about your environment. The port issue is "easier" than figuring out > whatever is going on with your DNS, aliases, etc. so I would recommend > we fix one thing at a time. > > -chris > > > On Mon, Apr 29, 2024 at 2:03 PM lavanya tech > > wrote: > > > >> Hi Chris, > >> > >> There is no issues with browser, because I tested with different > browsers > >> and it all works fine. I am sure that there is no issue with the > >> certificate. > >> Because I was able to establish successful connections with port > 8443, it > >> just doesnot work with out port > >> > >> curl https://example.lbg.com/towl > >> curl: (56) Received HTTP code 504 from proxy after CONNECT > >> curl: (56) Received HTTP code 504 from proxy after CONNECT > >> > >> > >> If you want to use port 443 (the default port for HTTPS) then you will > >> need to change Tomcat to bind to port 443 (if that's allowed on your OS) > >> or arrange to have port 443 routed to port 8443. You may need additional > >> configuration in Tomcat (specifically: proxyPort) to avoid having Tomcat > >> generate URLs with ":8443" in them. > >> > >> >> connectionTimeout="2" > >> redirectPort="8443" > >> maxThreads="150" > >> scheme="https" secure="true" SSLEnabled="true" > >> keystoreFile="path_to_your_keystore_file" > >> keystorePass="your_keystore_password" > >> keystoreType="PKCS12" > >> clientAuth="false" sslProtocol="TLS" > >> proxyPort="443"/> > >> > >> should i use connect port like the above ? But you mentioned before we > >> dont need any configuration changes. Please clarify I am not able to > figure > >> this out and I have this issue many days pending. How to make it work > with > >> port 8443 and with out port > >> > >> Also I wanted to use weburl with alias name permanently instead of the > >> hostname. How can I achieve both > >> > >> Thanks, > >> Lavanya > >> > >> > >>--> > >> > >> > >> On Fri, Apr 26, 2024 at 9:28 PM Christopher Schultz < > >> ch...@christopherschultz.net> wrote: > >> > >>> Lavanya, > >>> > >>> On 4/25/24 07:24, lavanya tech wrote: > >>>> Hi Chris, > >>>> > >>>> One question / doubt: > >>>> > >>>> A
Re: Regarding Tomcat url redirection
Hi Chris, Thanks. Just giving background again of this topic again. 1) The application team who is working they wanted to access the url https://server.lbg.com:8443/towl —> which should redirect or point to https://example.lbg.com Is that a typo? You want specifically https://server.lbg.com/towl and https://example.lbg.com/ to point to your application? — It’s not the Typo the requirements are still the same. 2) Hence I added firewall rule to redirect port 443 to 8443. And the url https://example.lbg.com started working but its pointing to https://server.lbg.com:8443 indeed and not https://server.lbg.com:8443/towl But then they wanted the point 1 to have it. If I understood correctly. So basically to achieve this we wanted a reverse proxy setup ? I didnot define any additional host in server.xml file on just left to default to local host. Thanks, Lavanya On Wednesday, May 8, 2024, Christopher Schultz wrote: > Lavanya, > > On 5/8/24 06:48, lavanya tech wrote: > >> I figured out how I can it make it work with 443. Now the URls are >> working. >> I added iptables route 443 to 8443 and it started working. >> >> nslookup example.lbg.com >> >> Non-authoritative answer: >> Name:server.lbg.com >> Address: 192.168.200.105 >> Aliases: example.lbg.com >> >> >> I have some application towl running with apache tomcat. I have the below >> URLs working. >> >> https://server.lbg.com:8443/towl >> https://server.lbg.com >> https://example.lbg.com >> https://example.lbg.com/towl >> >> >> Now i wanted to disable the url https://example.lbg.com/towl and >> https://server.lbg.com and access only the other remaining two. >> > > > I would *highly* recommend that you pick either /towl or / and not try to > do both, unless you want to deploy the application twice (which is fine, > just deploy towl.war and ROOT.war as copies of each other). If you try to > re-write /towl to / or / to /towl, you'll find you spend the rest of your > days tracking-down edge-cases and "fixing" them -- likely making things > confusing and, probably, worse. > > In the end our goal to makesure that the links are not always dead as soon >> as the towl is moved to a new machine. Can you pelase assit me how to do >> that? >> > > The goal should be that "moving" the application only means changing DNS > and everything else works as expected. > > If you: > > 1. Deploy the application with a single context (e.g. /towl, which I > recommend) > > 2. Re-direct / to /towl (this requires a reverse-proxy or a ROOT > application that does nothing but redirect ; my personal preference) > > 3. Do not define any other than "localhost" and make it the > default. Do not bother with any elements since they are not > necessary. > > Moving the application should only require that you: > > 4. Deploy the same application with the same configuration in the new > location > > 5. Change DNS to point example.lbg.com and server.lbg.com to the new > location of the service > > Hope that helps, > -chris > > On Tue, Apr 30, 2024 at 5:44 PM Christopher Schultz < > ch...@christopherschultz.net> wrote: > > Lavanya, > > On 4/30/24 07:10, lavanya tech wrote: > > Can you tell me how to do the below ? How should I setup Tomcat in > server.xml ? > > > If you want to use port 443 (the default port for HTTPS) then you will > need to change Tomcat to bind to port 443 (if that's allowed on your OS) > or arrange to have port 443 routed to port 8443. You may need additional > configuration in Tomcat (specifically: proxyPort) to avoid having Tomcat > generate URLs with ":8443" in them. > > Looking forward to your reply. > > > If Tomcat is listening on port 8443 then you will need to include that > in your URL, period. If you want to allow URLs without a port number, > you will have to arrange to have something listening on port 443. > > On Windows, Tomcat can listen directly on port 443. On UNIX and > UNIX-like systems, you won't be able to do this without running Tomcat > as root WHICH YOU ABSOLUTELY SHOULD NOT DO. > > There are other ways to get port 443 working, but I'll need to know more > about your environment. The port issue is "easier" than figuring out > whatever is going on with your DNS, aliases, etc. so I would recommend > we fix one thing at a time. > > -chris > > On Mon, Apr 29, 2024 at 2:03 PM lavanya tech > wrote: > > Hi Chris, > > There is no issues with browser, because I tested with different > > browsers > > and it all works fine. I am sure that the
Re: Regarding Tomcat url redirection
Hi Chris, Thank you so much for your explanation. I will try these options. Do server and example both resolve to the same IP? -yes So I need follow both 4a/b and 5a/b steps here or any of them ? If I setup exactly by using below steps , then I should access both the urls right ? https://server.lbg.com:8443/towl and https://example.lbg.com I will configure and if I face any issues I will write to you. Thanks, Lavanya On Thursday, May 9, 2024, Christopher Schultz wrote: > Lavanya, > > On 5/9/24 02:58, lavanya tech wrote: > >> Just giving background again of this topic again. >> >> 1) The application team who is working they wanted to access the url >> https://server.lbg.com:8443/towl —> which should redirect or point to >> https://example.lbg.com >> >> Is that a typo? You want specifically https://server.lbg.com/towl and >> https://example.lbg.com/ to point to your application? >>— It’s not the Typo the requirements are still the same. >> > > Okay. > > Do server and example both resolve to the same IP? > > 2) Hence I added firewall rule to redirect port 443 to 8443. And the url >> https://example.lbg.com started working but its pointing to >> https://server.lbg.com:8443 indeed and not https://server.lbg.com:8443/to >> wl >> >> But then they wanted the point 1 to have it. If I understood correctly. So >> basically to achieve this we wanted a reverse proxy setup ? >> >> I didnot define any additional host in server.xml file on just left to >> default to local host. >> > > Here's what you have to do in order to support this odd configuration. > > 1. Configure your firewall to route port 443 -> 8443. I suspect this is > already done. > > 2. Deploy Tomcat on server.lbg.com with a on port 8443. This > is the default, so there shouldn't be anything to do. I suspect this is > already done. You should set proxyPort="443" and proxyName=" > example.lbg.com" in your . This will ensure that any URLs > generated by Tomcat or your application will point to > https://example.lbg.com/ and not to server.lbg.com or have a port number > or whatever. > > 3. Re-name your application directory or WAR file from towl -> ROOT (upper > case is important). So if you have tomcat/webapps/towl re-name that to > tomcat/webapps/ROOT or if you have tomcat/webapps/towl.war re-name that to > tomcat/webapps/ROOT.war. > > The last thing to do is get /towl to re-direct to /. There are a few ways > of doing that. > > 4a. Configure your application (now called ROOT and deployed on / and not > /towl anymore) to handle the /towl URL and specifically redirect this back > to /. This is oddly specific and has the application trying to redirect to > itself which is weird. > > 4b. Create a new application called towl or towl.war which will be > deployed on /towl and have THAT redirect to /. I think this is cleaner > because you can call the application anything you'd like and it will still > work. You don't have to match URL patterns yourself, you just re-name the > WAR file if you suddenly want to use /towl2 instead of /towl. > > There are several ways to redirect. > > 5a. Use the rewrite valve and map /(*) to (global redirect) /\1. A few > notes: (1) the (*) means "capture this string" and \1 means "put the string > back. This allows you to redirect /towl/foo/bar to /foo/bar instead of > losing the /foo/bar. This syntax may not be perfect, adapt it to your > needs. (2) Remember that the towl application is deployed on /towl so you > don't want to redirect /towl/foo/bar you only want redirect /foo/bar since > the URL will be relative to the current context (/towl). Got that? Finally, > (3) you need to use a global redirect that does *NOT* redirect back to the > /towl application. Normally, if you redirect to /foo you'll get an > application-relative redirect from something like a rewrite > valve/filter/whatever. Take care to redirect relative to the SERVER and not > to the application. > > 5b. Write your own servlet to do a specific redirect. > > I hope that helps, > -chris > > On Wednesday, May 8, 2024, Christopher Schultz < >> ch...@christopherschultz.net> >> wrote: >> >> Lavanya, >>> >>> On 5/8/24 06:48, lavanya tech wrote: >>> >>> I figured out how I can it make it work with 443. Now the URls are >>>> working. >>>> I added iptables route 443 to 8443 and it started working. >>>> >>>> nslookup example.lbg.com >>>> >>>> Non-authoritative answer: >>>> Name:server.lbg.com >>>>
Re: Regarding Tomcat url redirection
Hi Chris, I tried the below and have the issues. 1)proxyPort="443" and proxyName="example.lbg.com" to the connector 2) remanmed towl.war to ROOT.war 3) created rewrite.config and added as below under conf/ RewriteCond %{REQUEST_URI} ^/towl/(.*) RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] 4) added this in web.xml file of /webapps/towl/web.xml/ Restricted Access to /towl /towl/* Also I noticed that even if I rename the towl application to ROOT, when i call the url with https://example.lbg.com/towl --> this towl directory is getting created under webapps by default 5) Resarted tomcat and I have the below error and all the urls have the same issue Message org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception org.apache.jasper.JasperException: org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:578) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:422) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) On Thu, May 9, 2024 at 11:20 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Lavanya, > > On 5/9/24 13:48, lavanya tech wrote: > > Thank you so much for your explanation. I will try these options. > > > > Do server and example both resolve to the same IP? > > -yes > > Good, that significantly reduces the complexity required, since you can > do it will a single process (Tomcat) in a single environment. > > > So I need follow both 4a/b and 5a/b steps here or any of them ? > > > > If I setup exactly by using below steps , then I should access both the > > urls right ? https://server.lbg.com:8443/towl and > https://example.lbg.com > > If you visit either hostname with /towl, you will be redirected to > example.lbg.com/ with no port number. example:8443 will still work and > no redirect will take place... unless you specifically make arrangements > for that. We can do that later if you really want to. > > Let's get the other things working, first. > > -chris > > > On Thursday, May 9, 2024, Christopher Schultz < > ch...@christopherschultz.net> > > wrote: > > > >> Lavanya, > >> > >> On 5/9/24 02:58, lavanya tech wrote: > >> > >>> Just giving background again of this topic again. > >>> > >>> 1) The application team who is working they wanted to access the url > >>> https://server.lbg.com:8443/towl —> which should redirect or point to > >>> https://example.lbg.com > >>> > >>> Is that a typo? You want specifically https://server.lbg.com/towl and > >>> https://example.lbg.com/ to point to your application? > >>> — It’s not the Typo the requirements are still the > same. > >>> > >> > >> Okay. > >> > >> Do server and example both resolve to the same IP? > >> > >> 2) Hence I added firewall rule to redirect port 443 to 8443. And the url > >>> https://example.lbg.com started working but its pointing to > >>> https://server.lbg.com:8443 indeed and not > https://server.lbg.com:8443/to > >>> wl > >>> > >>> But then they wanted the point 1 to have it. If I understood > correctly. So > >>> basically to achieve this we wanted a reverse proxy setup ? > >>> > >>> I didnot define any additional host in server.xml file on just left to > >>> default to local host. > >>> > >> > >> Here's what you have to do in order to support this odd configuration. > >> > >> 1. Configure your firewall to route port 443 -> 8443. I suspect this is > >> already done. > >> > >> 2. Deploy Tomcat on server.lbg.com with a on port 8443. > This > >> is the default, so there shouldn't be anything to do. I suspect this is > >> already done. You should set proxyPort="443" and proxyName=" > >> example.lbg.com" in your . This will ensure that any URLs > >> generated by Tomcat or your application will point to > >> https://example.lbg.com/ and not t
Re: Regarding Tomcat url redirection
Hi Chris, If we create new java.filter as below then we can redirect the urls ? import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebFilter("/*") public class UrlRedirectionFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; String requestUrl = httpRequest.getRequestURL().toString(); // Check if the request URL matches the target URL if (requestUrl.equals("https://example.lbg.com";)) { // Perform redirect to the desired destination URL httpResponse.sendRedirect("https://server.lbg.com/towl";); return; } // For all other URLs, disable access httpResponse.sendError(HttpServletResponse.SC_NOT_FOUND); } // Other methods of the Filter interface (init(), destroy()) can be left empty for this example } Thanks, Lavanya On Fri, May 10, 2024 at 10:37 AM lavanya tech wrote: > Hi Chris, > > I tried the below and have the issues. > > 1)proxyPort="443" and proxyName="example.lbg.com" to the connector > 2) remanmed towl.war to ROOT.war > 3) created rewrite.config and added as below under conf/ > > RewriteCond %{REQUEST_URI} ^/towl/(.*) > RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] > > 4) added this in web.xml file of /webapps/towl/web.xml/ > > > > > > > > Restricted Access to > /towl > /towl/* > > > > > > > Also I noticed that even if I rename the towl application to ROOT, when i > call the url with https://example.lbg.com/towl --> this towl directory is > getting created under webapps by default > > 5) Resarted tomcat and I have the below error and all the urls have the > same issue > > Message org.apache.jasper.JasperException: > java.lang.ClassNotFoundException: org.apache.jsp.index_jsp > > Description The server encountered an unexpected condition that prevented > it from fulfilling the request. > > Exception > > org.apache.jasper.JasperException: org.apache.jasper.JasperException: > java.lang.ClassNotFoundException: org.apache.jsp.index_jsp > > org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:578) > > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:422) > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380) > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328) > jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) > > On Thu, May 9, 2024 at 11:20 PM Christopher Schultz < > ch...@christopherschultz.net> wrote: > >> Lavanya, >> >> On 5/9/24 13:48, lavanya tech wrote: >> > Thank you so much for your explanation. I will try these options. >> > >> > Do server and example both resolve to the same IP? >> > -yes >> >> Good, that significantly reduces the complexity required, since you can >> do it will a single process (Tomcat) in a single environment. >> >> > So I need follow both 4a/b and 5a/b steps here or any of them ? >> > >> > If I setup exactly by using below steps , then I should access both the >> > urls right ? https://server.lbg.com:8443/towl and >> https://example.lbg.com >> >> If you visit either hostname with /towl, you will be redirected to >> example.lbg.com/ with no port number. example:8443 will still work and >> no redirect will take place... unless you specifically make arrangements >> for that. We can do that later if you really want to. >> >> Let's get the other things working, first. >> >> -chris >> >> > On Thursday, May 9, 2024, Christopher Schultz < >> ch...@christopherschultz.net> >> > wrote: >> > >> >> Lavanya, >> >> >> >> On 5/9/24 02:58, lavanya tech wrote: >> >> >> >>> Just giving background again of this topic again. >> >>> >> >>> 1) The application team who is working they wanted to access the url >> >>> https://server.lbg.com:8443/towl —> which should redirect or point to >> >>> https://example.lbg.com >> >
Re: Regarding Tomcat url redirection
Hi Chris, Where are you defining the RewriteValve itself? Defined rewritevalve here resource="conf/rewrite.config" /> 2) reated rewrite.config and added as below under conf/ RewriteCond %{REQUEST_URI} ^/towl/(.*) RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] 3) After renaming towl to ROOT -> /webapps/ROOT/WEB-INF/web.xml ( I already have this mappings /* in web.xml file) Logging Area Authentication for registered users. /* /api/v1/search /api/v1/suggest/* LDAP_USER api 4) Restarted Tomcat, Then I cannot access https://server.lbg.com:8443/towl --> Have below error Message java.nio.file.NoSuchFileException: /git/apache-tomcat-10.1.11/webapps/towl/WEB-INF/lib/xss-1.0.8.jar Description The server encountered an unexpected condition that prevented it from fulfilling the request. 5) Also https://example.lbg.com doesnot work anymore Before you do anything with redirecting, can you just make sure you are only deploying ROOT.war and nothing else? How can I do that. I already changed towl.war to ROOT.war But still both the urls have error as mentioned above. Si I revereted back the changes. That's weird. Try stopping, deleting the work/ directory and restarting. --> I have this wierd behavior for some reason, thoudh index.jsp is located no changes were made to file. After deleting cookies url works where Am I going wrong. Thanks, Lavanya On Fri, May 10, 2024 at 6:50 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Lavanya, > > On 5/10/24 04:37, lavanya tech wrote: > > I tried the below and have the issues. > > > > 1)proxyPort="443" and proxyName="example.lbg.com" to the connector > > 2) remanmed towl.war to ROOT.war > > 3) created rewrite.config and added as below under conf/ > > Where are you defining the RewriteValve itself? > > > RewriteCond %{REQUEST_URI} ^/towl/(.*) > > RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] > > If this is being handled by the ROOT servlet then I think it's right. > > > 4) added this in web.xml file of /webapps/towl/web.xml/ > > > > > > > > > > > > > > > > Restricted Access to > > /towl > > /towl/* > > No, this is wrong. Since this is the "towl" application and not ROOT, > you want to map /* and not /towl/* because the application will never > see the /towl/ as it's an application/context prefix that Tomcat will > remove. > > > > > > > > > > > > > > > Also I noticed that even if I rename the towl application to ROOT, when i > > call the url with https://example.lbg.com/towl --> this towl directory > is > > getting created under webapps by default > > If webapps/towl is being created, then it's happening for some other > reason. Do you have anything under conf/Catalina/*/towl.xml which points > to a WAR file or something? If so, remove that. > > > 5) Resarted tomcat and I have the below error and all the urls have the > > same issue > > > > Message org.apache.jasper.JasperException: > > java.lang.ClassNotFoundException: org.apache.jsp.index_jsp > > That's weird. Try stopping, deleting the work/ directory and restarting. > > > Description The server encountered an unexpected condition that prevented > > it from fulfilling the request. > > > > Exception > > > > org.apache.jasper.JasperException: org.apache.jasper.JasperException: > > java.lang.ClassNotFoundException: org.apache.jsp.index_jsp > > > org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:578) > > > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:422) > > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380) > > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328) > > jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) > > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) > > Before you do anything with redirecting, can you just make sure you are > only deploying ROOT.war and nothing else? > > This should allow you to reach the application at both > https://example.lbg.com/ and https://server.lbg.com/ as well as both of > those with port 8443. > > Then use the applications and make sure they are working as expected. > Then, we'll add the /towl handling. > > -chris > > > On Thu, May 9, 2024 at 11:20 PM Christoph
Re: Regarding Tomcat url redirection
Hi Chris, Somehow made it work now i can only access urls as you mentioned before https://example.lbg.com and https://server.lbg.com with port 8443 and with out https://example.lbg.com/towl and https://server.lbg.com/towl --> I have an error now File not found. So i think we need to make work https://example.lbg.com/ to https://server.lbg.com/towl Thanks, Lavanya On Mon, May 13, 2024 at 9:41 AM lavanya tech wrote: > Hi Chris, > > Where are you defining the RewriteValve itself? > > Defined rewritevalve here >unpackWARs="true" autoDeploy="true"> > >className="org.apache.catalina.valves.rewrite.RewriteValve" /> > resource="conf/rewrite.config" /> > > 2) reated rewrite.config and added as below under conf/ > > RewriteCond %{REQUEST_URI} ^/towl/(.*) > RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] > > 3) After renaming towl to ROOT -> /webapps/ROOT/WEB-INF/web.xml ( I > already have this mappings /* in web.xml file) > > > > Logging Area > > Authentication for registered users. > > /* > /api/v1/search > /api/v1/suggest/* > > > LDAP_USER > api > > > > 4) Restarted Tomcat, Then I cannot access https://server.lbg.com:8443/towl > --> Have below error > > Message java.nio.file.NoSuchFileException: > /git/apache-tomcat-10.1.11/webapps/towl/WEB-INF/lib/xss-1.0.8.jar > > Description The server encountered an unexpected condition that prevented > it from fulfilling the request. > > 5) Also https://example.lbg.com doesnot work anymore > > Before you do anything with redirecting, can you just make sure you are > only deploying ROOT.war and nothing else? > How can I do that. I already changed towl.war to ROOT.war > > But still both the urls have error as mentioned above. > > > Si I revereted back the changes. > That's weird. Try stopping, deleting the work/ directory and restarting. > --> I have this wierd behavior for some reason, thoudh index.jsp is located > no changes were made to file. After deleting cookies url works > > where Am I going wrong. > > Thanks, > Lavanya > > > On Fri, May 10, 2024 at 6:50 PM Christopher Schultz < > ch...@christopherschultz.net> wrote: > >> Lavanya, >> >> On 5/10/24 04:37, lavanya tech wrote: >> > I tried the below and have the issues. >> > >> > 1)proxyPort="443" and proxyName="example.lbg.com" to the connector >> > 2) remanmed towl.war to ROOT.war >> > 3) created rewrite.config and added as below under conf/ >> >> Where are you defining the RewriteValve itself? >> >> > RewriteCond %{REQUEST_URI} ^/towl/(.*) >> > RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] >> >> If this is being handled by the ROOT servlet then I think it's right. >> >> > 4) added this in web.xml file of /webapps/towl/web.xml/ >> > >> > >> > >> > >> > >> > >> > >> > Restricted Access to >> > /towl >> > /towl/* >> >> No, this is wrong. Since this is the "towl" application and not ROOT, >> you want to map /* and not /towl/* because the application will never >> see the /towl/ as it's an application/context prefix that Tomcat will >> remove. >> >> > >> > >> > >> > >> > >> > >> > Also I noticed that even if I rename the towl application to ROOT, when >> i >> > call the url with https://example.lbg.com/towl --> this towl directory >> is >> > getting created under webapps by default >> >> If webapps/towl is being created, then it's happening for some other >> reason. Do you have anything under conf/Catalina/*/towl.xml which points >> to a WAR file or something? If so, remove that. >> >> > 5) Resarted tomcat and I have the below error and all the urls have the >> > same issue >> > >> > Message org.apache.jasper.JasperException: >> > java.lang.ClassNotFoundException: org.apache.jsp.index_jsp >> >> That's weird. Try stopping, deleting the work/ directory and restarting. >> >> > Description The server encountered an unexpected condition that >> prevented >> > it from fulfilling the request. >> > >> > Exception >> >
Re: Regarding Tomcat url redirection
Hi Chris, Sorry, If I did confuse. It’s important that https://server.lbg.com:8443/towl is always working. Goal is not to disable /towl, but just redirect or aliasing https//example.lbg.com/ to https://server.lbg.com:8443/towl Thanks, Lavanya On Monday, May 13, 2024, Christopher Schultz wrote: > Lavanya, > > On 5/13/24 05:57, lavanya tech wrote: > >> Somehow made it work now i can only access urls as you mentioned before >> https://example.lbg.com and https://server.lbg.com with port 8443 and >> with >> out >> >> https://example.lbg.com/towl and https://server.lbg.com/towl --> I >> have an >> error now File not found. >> >> So i think we need to make work https://example.lbg.com/ to >> https://server.lbg.com/towl >> > > I'm sorry, I'm still confused as to which way you want things. > > Do you want to redirect /towl -> / or do you want to redirect / - > /towl? > > Or does it depend upon the hostname? It would really be better if you > could settle on one specific beahvior. > > -chris > > On Mon, May 13, 2024 at 9:41 AM lavanya tech >> wrote: >> >> Hi Chris, >>> >>> Where are you defining the RewriteValve itself? >>> >>> Defined rewritevalve here >>>>> unpackWARs="true" autoDeploy="true"> >>> >>>>> className="org.apache.catalina.valves.rewrite.RewriteValve" /> >>> resource="conf/rewrite.config" /> >>> >>> 2) reated rewrite.config and added as below under conf/ >>> >>> RewriteCond %{REQUEST_URI} ^/towl/(.*) >>> RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] >>> >>> 3) After renaming towl to ROOT -> /webapps/ROOT/WEB-INF/web.xml ( I >>> already have this mappings /* in web.xml file) >>> >>> >>> >>> Logging Area >>> >>> Authentication for registered users. >>> >>> /* >>> /api/v1/search >>> /api/v1/suggest/* >>> >>> >>> LDAP_USER >>> api >>> >>> >>> >>> 4) Restarted Tomcat, Then I cannot access https://server.lbg.com:8443/to >>> wl >>> --> Have below error >>> >>> Message java.nio.file.NoSuchFileException: >>> /git/apache-tomcat-10.1.11/webapps/towl/WEB-INF/lib/xss-1.0.8.jar >>> >>> Description The server encountered an unexpected condition that prevented >>> it from fulfilling the request. >>> >>> 5) Also https://example.lbg.com doesnot work anymore >>> >>> Before you do anything with redirecting, can you just make sure you are >>> only deploying ROOT.war and nothing else? >>> How can I do that. I already changed towl.war to ROOT.war >>> >>> But still both the urls have error as mentioned above. >>> >>> >>> Si I revereted back the changes. >>> That's weird. Try stopping, deleting the work/ directory and restarting. >>> --> I have this wierd behavior for some reason, thoudh index.jsp is >>> located >>> no changes were made to file. After deleting cookies url works >>> >>> where Am I going wrong. >>> >>> Thanks, >>> Lavanya >>> >>> >>> On Fri, May 10, 2024 at 6:50 PM Christopher Schultz < >>> ch...@christopherschultz.net> wrote: >>> >>> Lavanya, >>>> >>>> On 5/10/24 04:37, lavanya tech wrote: >>>> >>>>> I tried the below and have the issues. >>>>> >>>>> 1)proxyPort="443" and proxyName="example.lbg.com" to the connector >>>>> 2) remanmed towl.war to ROOT.war >>>>> 3) created rewrite.config and added as below under conf/ >>>>> >>>> >>>> Where are you defining the RewriteValve itself? >>>> >>>> RewriteCond %{REQUEST_URI} ^/towl/(.*) >>>>> RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] >>>>> >>>> >>>> If this is being handled by the ROOT servlet then I think it's right. >>>> >>>> 4) added this in web.xml file of /webapps/towl/web.xml/ >>>>> >>>>> >>>>> >>>>> >>>>> >>>>&
Re: Regarding Tomcat url redirection
Hi Chris, Tried the below steps. I have the redirection working. But the URL is not in the browser anymore. 1) 2) /conf/Catalina/localhost --> I added the below in rewrite.config RewriteCond %{HTTP_HOST} ^example\.lbg\.com$ RewriteCond %{REQUEST_URI} !^/towl$ RewriteRule ^/(.*) https://server.lbg.com:8443/towl [R=301,L] Then it redirects from https://example.lbg.com --> https://server.lbg.com:8443/towl but the application team raised a concern the - alias https://example.lbg.com/--> url stays in the browser - towl indexer uses the internal address https:// <https://denue-lp-build001.nbg.nokia.net/grok>server.lbg.com.8443/towl rsp. localhost:8443/towl can we achieve this with tomcat or we need to setup an reverse proxy here. Pleaes kindly suggest Thanks, Lavanya On Mon, May 13, 2024 at 10:17 PM lavanya tech wrote: > Hi Chris, > > Sorry, If I did confuse. It’s important that > https://server.lbg.com:8443/towl is always working. Goal is not to > disable /towl, but just redirect or aliasing > > https//example.lbg.com/ to https://server.lbg.com:8443/towl > > > > > Thanks, > Lavanya > > On Monday, May 13, 2024, Christopher Schultz > wrote: > >> Lavanya, >> >> On 5/13/24 05:57, lavanya tech wrote: >> >>> Somehow made it work now i can only access urls as you mentioned before >>> https://example.lbg.com and https://server.lbg.com with port 8443 and >>> with >>> out >>> >>> https://example.lbg.com/towl and https://server.lbg.com/towl --> I >>> have an >>> error now File not found. >>> >>> So i think we need to make work https://example.lbg.com/ to >>> https://server.lbg.com/towl >>> >> >> I'm sorry, I'm still confused as to which way you want things. >> >> Do you want to redirect /towl -> / or do you want to redirect / - > /towl? >> >> Or does it depend upon the hostname? It would really be better if you >> could settle on one specific beahvior. >> >> -chris >> >> On Mon, May 13, 2024 at 9:41 AM lavanya tech >>> wrote: >>> >>> Hi Chris, >>>> >>>> Where are you defining the RewriteValve itself? >>>> >>>> Defined rewritevalve here >>>>>>> unpackWARs="true" autoDeploy="true"> >>>> >>>>>>> className="org.apache.catalina.valves.rewrite.RewriteValve" /> >>>> resource="conf/rewrite.config" /> >>>> >>>> 2) reated rewrite.config and added as below under conf/ >>>> >>>> RewriteCond %{REQUEST_URI} ^/towl/(.*) >>>> RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] >>>> >>>> 3) After renaming towl to ROOT -> /webapps/ROOT/WEB-INF/web.xml ( I >>>> already have this mappings /* in web.xml file) >>>> >>>> >>>> >>>> Logging Area >>>> >>>> Authentication for registered users. >>>> >>>> /* >>>> /api/v1/search >>>> /api/v1/suggest/* >>>> >>>> >>>> LDAP_USER >>>> api >>>> >>>> >>>> >>>> 4) Restarted Tomcat, Then I cannot access >>>> https://server.lbg.com:8443/towl >>>> --> Have below error >>>> >>>> Message java.nio.file.NoSuchFileException: >>>> /git/apache-tomcat-10.1.11/webapps/towl/WEB-INF/lib/xss-1.0.8.jar >>>> >>>> Description The server encountered an unexpected condition that >>>> prevented >>>> it from fulfilling the request. >>>> >>>> 5) Also https://example.lbg.com doesnot work anymore >>>> >>>> Before you do anything with redirecting, can you just make sure you are >>>> only deploying ROOT.war and nothing else? >>>> How can I do that. I already changed towl.war to ROOT.war >>>> >>>> But still both the urls have error as mentioned above. >>>> >>>> >>>> Si I revereted back the changes. >>>> That's weird. Try stopping, deleting the work/ directory and restarting. >>>> --> I have this wierd behavior for some reason, thoudh index.jsp is >>>> located >>>> no changes were made to file. After deleting cookies
Re: Regarding Tomcat url redirection
Hi Chris, > > IMHO removing the port number is always the preferred solution — I never > did it > >> >> can we achieve this with tomcat or we need to setup an reverse proxy here. >> > > Your application uses whatever internal URLs it wants. Are you building > those yourself, or are you asking Tomcat for the e.g. hostname, etc.? If > it's Tomcat, this is where the proxyName and proxyPort come in. - Yes, I have not built these UrLs before. It’s was working from the very beginning. As. I mentioned we are not able to reach goal or whatever. Rather than saying redirection, I would say it’s aliasing. Instead of moving applications or changing tomcat configuration it’s easier to achieve with reverse proxy ? https://example.lbg.com/ to https://server.lbg.com:8443/towl Kindly let me know what’s the best way. Thanks, Ammu > > -chris > > On Mon, May 13, 2024 at 10:17 PM lavanya tech > wrote: > > Hi Chris, > > Sorry, If I did confuse. It’s important that > https://server.lbg.com:8443/towl is always working. Goal is not to > disable /towl, but just redirect or aliasing > > https//example.lbg.com/ to https://server.lbg.com:8443/towl > > > > > Thanks, > Lavanya > > On Monday, May 13, 2024, Christopher Schultz > > wrote: > > Lavanya, > > On 5/13/24 05:57, lavanya tech wrote: > > Somehow made it work now i can only access urls as you mentioned before > https://example.lbg.com and https://server.lbg.com with port 8443 and > with > out > >https://example.lbg.com/towl and https://server.lbg.com/towl --> I > have an > error now File not found. > > So i think we need to make work https://example.lbg.com/ to > https://server.lbg.com/towl > > > I'm sorry, I'm still confused as to which way you want things. > > Do you want to redirect /towl -> / or do you want to redirect / - > /towl? > > Or does it depend upon the hostname? It would really be better if you > could settle on one specific beahvior. > > -chris > > On Mon, May 13, 2024 at 9:41 AM lavanya tech > > wrote: > > Hi Chris, > > > Where are you defining the RewriteValve itself? > > Defined rewritevalve here >unpackWARs="true" autoDeploy="true"> > > className="org.apache.catalina.valves.rewrite.RewriteValve" /> >resource="conf/rewrite.config" /> > > 2) reated rewrite.config and added as below under conf/ > >RewriteCond %{REQUEST_URI} ^/towl/(.*) >RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] > > 3) After renaming towl to ROOT -> /webapps/ROOT/WEB-INF/web.xml ( I > already have this mappings /* in web.xml file) > > > > Logging Area > > Authentication for registered users. > > /* > /api/v1/search > /api/v1/suggest/* > > > LDAP_USER > api > > > > 4) Restarted Tomcat, Then I cannot access > https://server.lbg.com:8443/towl > --> Have below error > > Message java.nio.file.NoSuchFileException: > /git/apache-tomcat-10.1.11/webapps/towl/WEB-INF/lib/xss-1.0.8.jar > > Description The server encountered an unexpected condition that > prevented > it from fulfilling the request. > > 5) Also https://example.lbg.com doesnot work anymore > > Before you do anything with redirecting, can you just make sure you are > only deploying ROOT.war and nothing else? > How can I do that. I already changed towl.war to ROOT.war > > But still both the urls have error as mentioned above. > > > Si I revereted back the changes. > That's weird. Try stopping, deleting the work/ directory and restarting. > --> I have this wierd behavior for some reason, thoudh index.jsp is > located > no changes were made to file. After deleting cookies url works > > where Am I going wrong. > > Thanks, > Lavanya > > > On Fri, May 10, 2024 at 6:50 PM Christopher Schultz < > ch...@christopherschultz.net> wrote: > > Lavanya, > > > On 5/10/24 04:37, lavanya tech wrote: > > I tried the below and have the issues. > > 1)proxyPort="443" and proxyName="example.lbg.com" to the connector > 2) remanmed towl.war to ROOT.war > 3) created rewrite.config and added as below under conf/ > > > Where are you defining the RewriteValve itself? > > RewriteCond %{REQUEST_URI} ^/towl/(.*) > > RewriteRule ^/towl/(.*) https://example.lbg.com/%1 [R] > > > If this is being handled by the ROOT servlet then I think it's right. &
Re: Regarding Tomcat url redirection
Hi Chris, You are right. We need aliasing here which means the URL in the browser does not change. May I know where should I put the below rewrite files ? # Redirect everything that is not server.lbg.com to # server.lbg.com. Don't worry about /towl yet. RewriteCond %{HTTP_HOST} !^server\.lbg\.com$ RewriteRule ^/(.*) https://server.lbg.com:8443/$1 [R=301,L] # Redirect anything that isn't already going to /towl # to go to /towl RewriteCond %{REQUEST_URI} !^/towl RewriteRule ^/(.*) https://server.lbg.com:8443/towl/$1 [R=301,L] Thanks, Lavanya On Tuesday, May 14, 2024, Christopher Schultz wrote: > Lavanya, > > On 5/14/24 09:12, lavanya tech wrote: > >> IMHO removing the port number is always the preferred solution — I never >>> did it >>> >>> >>>> can we achieve this with tomcat or we need to setup an reverse proxy >>>> here. >>>> >>>> >>> Your application uses whatever internal URLs it wants. Are you building >>> those yourself, or are you asking Tomcat for the e.g. hostname, etc.? If >>> it's Tomcat, this is where the proxyName and proxyPort come in. >>> >> >> - Yes, I have not built these UrLs before. It’s was working from the >> very >> beginning. As. I mentioned we are not able to reach goal or whatever. >> >> Rather than saying redirection, I would say it’s aliasing. >> > > Please be specific. "Aliasing" (to me) means "the URL does to the right > place but doesn't change in the browser's URL" and "redirection" (to > everybody) means "HTTP 301 or 302 response to a new URL". > > Instead of moving applications or changing tomcat configuration it’s easier >> to achieve with reverse proxy ? >> >> https://example.lbg.com/ to https://server.lbg.com:8443/towl >> > > This will be a nightmare. Do not try to rewrite URLs using a reverse > proxy. You should redirect users to the right place if necessary. You can > use a reverse-proxy if you want, but it won't be any less complicated than > having Tomcat do it. > > I think your rewrite.config file just needs a few tweaks: > > # Redirect everything that is not server.lbg.com to > # server.lbg.com. Don't worry about /towl yet. > RewriteCond %{HTTP_HOST} !^server\.lbg\.com$ > RewriteRule ^/(.*) https://server.lbg.com:8443/$1 [R=301,L] > > # Redirect anything that isn't already going to /towl > # to go to /towl > RewriteCond %{REQUEST_URI} !^/towl > RewriteRule ^/(.*) https://server.lbg.com:8443/towl/$1 [R=301,L] > > The application should be deployed as towl.war (or towl/ directory). You > should listen on ports 80, 443, and 8443, and you should always end up at > the right place. You should have proxyPort="8443" and proxyName=" > server.lbg.com" in your . > > You will not need a ROOT context, since the rewrite will take care of that > for you. > > -chris > > On Mon, May 13, 2024 at 10:17 PM lavanya tech >>> wrote: >>> >>> Hi Chris, >>> >>> Sorry, If I did confuse. It’s important that >>> https://server.lbg.com:8443/towl is always working. Goal is not to >>> disable /towl, but just redirect or aliasing >>> >>> https//example.lbg.com/ to https://server.lbg.com:8443/towl >>> >>> >>> >>> >>> Thanks, >>> Lavanya >>> >>> On Monday, May 13, 2024, Christopher Schultz < >>> ch...@christopherschultz.net >>> >>>> >>>> wrote: >>> >>> Lavanya, >>> >>> On 5/13/24 05:57, lavanya tech wrote: >>> >>> Somehow made it work now i can only access urls as you mentioned before >>> https://example.lbg.com and https://server.lbg.com with port 8443 and >>> with >>> out >>> >>> https://example.lbg.com/towl and https://server.lbg.com/towl --> I >>> have an >>> error now File not found. >>> >>> So i think we need to make work https://example.lbg.com/ to >>> https://server.lbg.com/towl >>> >>> >>> I'm sorry, I'm still confused as to which way you want things. >>> >>> Do you want to redirect /towl -> / or do you want to redirect / - > >>> /towl? >>> >>> Or does it depend upon the hostname? It would really be better if you >>> could settle on one specific beahvior. >>> >>> -chris >>> >>> On Mon, May 13, 2024 at 9:41 AM lavanya tech >>> >>> wrote: >>> >>> Hi Chris, >
Re: Regarding Tomcat url redirection
Hi Chris, > If i remove this from server.xml file i have the below error. Message java.lang.NoClassDefFoundError: org/towl/indexer/web/Prefix Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception jakarta.servlet.ServletException: java.lang.NoClassDefFoundError: org/towl/indexer/web/Prefix org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) The "aliasing" will always be weird. IMO it's better to redirect. If you change to redirect, does everything *work*, even if you don't like how the browser's URL bar displays? --> I tried but it didnot work ok apart from this tpic , we have one more issue found. Actually application team, they are deploying two applications one with towl (which you are already aware) the other one is (towl-app) they have defined seperate server.xml for both. Name:server.lbg.com Address: 192.168.200.120 Aliases: example.lbg.com Name:server.lbg.com Address: 192.168.200.120 Aliases: example-app.lbg.com which means we have two aliases for server.lbg.com , earlier we were concentrating only on one example.lbg.com , now i wanted to somehow enable access as the same for the other one also https://example-app.lbg.com --> https://server.lbg.com:8444/towl-app So i created iptable rule in the sameway as before redirect 443 to 8444 and i have the urls working same as example.lbg.com Both the server.xml files are here /git/towl/apachetomcat/conf/server.xml /git/towl-app/apachetomcat/conf/server.xml --> I changed the port of connectors and everything But now when i try to access https://example.lbg.com --> I get webpage of https://example-app.lbg.com and sometimes i get webpage of https://example.lbg.com after refresh itself which is wierd May i know why this is happening. If we fix this then I am thinking to disable the unwated urls leaving the required ones. for example the below ones. I think that would be easier ? rather than redirecting or aliasing--> Because we noticed that towl application is already pointing with https://example.lbg.com https://server.lbg.com:8443 https://example-lbg.com:8443 <https://example.lbg.com/towl> <https://server.lbg.com/towl> https://server.lbg.com:8444 https://example-lbg.com:8444 <https://example.lbg.com/towl-app> <https://server.lbg.com/towl-app> kindly suggest us a fix. Thanks once again for your time Regards, Lavanya On Wed, May 15, 2024 at 2:16 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Lavanya, > > On 5/15/24 04:43, lavanya tech wrote: > > Though to write you privately, regaridng the tomcat url redirection as > > the mail chain is getting more big big > > It's better to post to the list, so anyone in your situation can learn > from it. > > > Let me know if its fine for you and here is what I did. > > > > 1) > autoDeploy="true"> > > > > Don't do this. Just put towl.war into webapps/ and let it auto-deploy. > What you are doing here is double-deploying your "towl" application: > once as "" (ROOT) and once as "/towl". Remove this from server.xml. > > > > > > className="org.apache.catalina.valves.rewrite.RewriteValve" /> > > Okay. > > > 2) I have towl application and towl.war under webapps directory > > 3) added proxy port and proxyname to connector > > > > > protocol="org.apache.coyote.http11.Http11NioProtocol" > > maxThreads="150" SSLEnabled="true"> > > proxyPort="8443" proxyName="server.lbg.com > > <http://server.lbg.com>"> > > > className="org.apache.coyote.http2.Http2Protocol" /> > > > > > certificateKeystorePassword="pass" > > type="RSA" /> > > > > > > Okay. > > > 4) added rewrite.config under conf directory > > > # Redirect everything that is not server.lbg.com > > <http://server.lbg.com> to > > > # server.lbg.com <http://server.lbg.com>. Don't worry about /towl > yet. > > > RewriteCond %{HTTP_HOST} !^server\.lbg\.com$ > > > RewriteRule ^/(.*) https://server.lbg.com:8443/$1 > > <https://server.lbg.com:8443/$1> [L] > > > > > > # Redirect anything that isn't already going to /towl > > > # to go to /towl > > >
Re: Regarding Tomcat url redirection
Hello Chris, Separate server.xml files means that you have to have two separate Tomcat processes. --> ofcourse, we defined two seperate processes for it but still there was some bug with Tomcat as the webpage is fluctuatiting. The best fix is to deploy the two applications normally without any funny business. Put both applications into webapps/ with no elements in server.xml and let them deploy. Use the correct URLs to access them. It's obviously some internal thing to your company because nobody is going to use :8443 in the real world. - Definitely, its an internal thing and thats the reason I have posted here for suggestions and I always tried the things that were suggested by you. I'm sorry, but it seems like you are being given arbitrary and weird requirements almost as a game - I have not given requirements as a game, please understand that those are the requirements that one needed to achieve with tomcat.I understood with Tomcat its getting complicated and hence solved it by installing an reverse proxy where my requirements are fulfilled. Thanks for your support. Thanks, Lavanya On Thu, May 16, 2024 at 11:52 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Lavanya, > > On 5/15/24 09:09, lavanya tech wrote: > > Hi Chris, > > > >> > > > > If i remove this from server.xml file i have the below error. > > > > Message java.lang.NoClassDefFoundError: org/towl/indexer/web/Prefix > > > > Description The server encountered an unexpected condition that prevented > > it from fulfilling the request. > > > > Exception > > > > jakarta.servlet.ServletException: java.lang.NoClassDefFoundError: > > org/towl/indexer/web/Prefix > > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) > > jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) > > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) > > That smells like a CLASSPATH problem where your application is not > actually packaged properly. It could be something else, but it looks > suspicious. > > > The "aliasing" will always be weird. IMO it's better to redirect. If you > > change to redirect, does everything *work*, even if you don't like how > > the browser's URL bar displays? > >--> I tried but it didnot work > > ok apart from this tpic , we have one more issue found. > > > > > > Actually application team, they are deploying two applications one with > > towl (which you are already aware) the other one is (towl-app) they have > > defined seperate server.xml for both. > > Separate server.xml files means that you have to have two separate > Tomcat processes. > > > Name:server.lbg.com > > Address: 192.168.200.120 > > Aliases: example.lbg.com > > > > > > Name:server.lbg.com > > Address: 192.168.200.120 > > Aliases: example-app.lbg.com > > > > which means we have two aliases for server.lbg.com , earlier we were > > concentrating only on one example.lbg.com , now i wanted to somehow > enable > > access as the same for the other one also > > https://example-app.lbg.com --> https://server.lbg.com:8444/towl-app > > > > So i created iptable rule in the sameway as before redirect 443 to 8444 > and > > i have the urls working same as example.lbg.com > > > > Both the server.xml files are here > > > > /git/towl/apachetomcat/conf/server.xml > > /git/towl-app/apachetomcat/conf/server.xml --> I changed the port of > > connectors and everything > > > > But now when i try to access https://example.lbg.com --> I get webpage > of > > https://example-app.lbg.com and sometimes i get webpage of > > https://example.lbg.com after refresh itself which is wierd > > > > May i know why this is happening. If we fix this then I am thinking to > > disable the unwated urls leaving the required ones. for example the below > > ones. I think that would be easier ? rather than redirecting or > aliasing--> > > Because we noticed that towl application is already pointing with > > https://example.lbg.com > > > > https://server.lbg.com:8443 > >https://example-lbg.com:8443 > ><https://example.lbg.com/towl> > > <https://server.lbg.com/towl> > > https://server.lbg.com:8444 > >https://example-lbg.com:8444 > ><https://example.lbg.com/towl-app> > > <https://server.lbg.com/towl-app> > > > > kindly suggest us a fix. > > The best fix is to deploy the two applications normally without any > funny business.