Thanks man :) About the filters, where do you implement them? I see they are in Java but still don't know where to put them :) And where do you put the filter mapping?
Thanks! Lyallex wrote: > > Hi > > Ah, yes, well I'm not really an 'expert' myself but I have been through > this > recently. > > The first thing I would say is that the following looks different to my > own > config > > <url-pattern>/cas/WEB-INF/view/jsp/simple/ui</url-pattern> > > here is one of my constraints > > <security-constraint> > <display-name>Standard user constraint used for checkout and account > modification</display-name> > <web-resource-collection> > <web-resource-name>my super new site</web-resource-name> > <url-pattern>/user/LoginPreCheck</url-pattern> > <url-pattern>/user/loggedin/*</url-pattern> > </web-resource-collection> > <auth-constraint> > <role-name>wpcustomer</role-name> > </auth-constraint> > <user-data-constraint> > <transport-guarantee>CONFIDENTIAL</transport-guarantee> > </user-data-constraint> > </security-constraint> > > the url-pattern should be a relative path from the root of your > application > or some mapped path to a resource (experts correct me if I am wrong > please). > If you want everything protected then just use * (or /* I think actually). > > Now when a user tries this URL > http://www.mywebapp.co.uk/user/loggedin/editAccount.jsp Tomcat > automatically > ''redirects' to https. > > As for the filter, well I'm a bit new to them as well. At the moment I > have > decided that as long as a user is logged in then I'd like the session to > be > secure. When they hit the logout button then I don't need secure I just > need > straight http. > > Here is my filter > > public class HttpsRedirectFilter implements Filter{ > > ... > > public void doFilter(ServletRequest request, ServletResponse response, > FilterChain chain) throws IOException, ServletException { > if((request instanceof HttpServletRequest) && (response instanceof > HttpServletResponse)){ > String redirectTarget = > ((HttpServletRequest)request).getRequestURL().toString().replaceFirst("https", > "http"); > if(request.isSecure()){ > > ((HttpServletResponse)response).sendRedirect(redirectTarget); > } > else{ > chain.doFilter(request, response); > } > } > } > > ... > > Very basic and primitive I'm sure but it does the job > > The filter is mapped to the /logout url thus > > <filter> > <filter-name>redirectFilter</filter-name> > <filter-class>com.foo.bar.baz.HttpsRedirectFilter</filter-class> > </filter> > <filter-mapping> > <filter-name>redirectFilter</filter-name> > <url-pattern>/logout</url-pattern> > </filter-mapping> > > Anytime anyone logs out this filter fires and redirects to 'standard' > http. > > Now of course the filter could be a lot more sophisticated but it proved > the > concept to me, now all I need is that little bit of 'majik' > > Hope all this helps. > > All criticism welcome > > Cheers > Duncan > > > On 7/6/07, christianhau <[EMAIL PROTECTED]> wrote: >> >> >> Thanks man! >> >> I have tried a similar approach with the web.xml but no luck. This is >> what >> I >> wrote in web.xml >> <security-constraint> >> <web-resource-collection> >> <web-resource-name>Entire >> Application</web-resource-name> >> >> <url-pattern>/cas/WEB-INF/view/jsp/simple/ui</url-pattern> >> </web-resource-collection> >> <user-data-constraint> >> >> <transport-guarantee>CONFIDENTIAL</transport-guarantee> >> </user-data-constraint> >> </security-constraint> >> >> Now I am not 100% sure if the pattern is correct, how would I check that? >> And another thing, you mentioned a suitable servlet filter? How would you >> go >> about making a servlet filter for this purpose and where would you put >> it? >> As you can tell from my question I have little experience with servlet >> filters.. >> >> Thanks again :) >> >> >> >> >> Lyallex wrote: >> > >> > Hi >> > >> > This is my first contribution to this list and I expect others will >> have >> > better ways of doing it but ... >> > >> > The way I managed to get his working is to set the ssl connector port >> to >> > the >> > default ssl port (443) >> > and my non-ssl connector port to the default http port (80) >> > Obviously there are issues starting Tomcat on these ports on *NIX >> systems >> > but judging by the following >> > entry in your ssl connector (keystoreFile="/root/.keystore") you appear >> to >> > have access to root. >> > >> > That should do it >> > >> > Also in my etc/hosts file I have set 127.0.0.1 www.mywebapp.co.uk and >> my >> > app is the root web app >> > >> > so now, combined with the following in web.xml >> > >> > <security-constraint> >> > ... >> > <user-data-constraint> >> > <transport-guarantee>CONFIDENTIAL</transport-guarantee> >> > </user-data-constraint> >> > ... >> > </security-constraint> >> > >> > and a suitable servlet filter I can switch between http and https >> almost >> > at >> > will with no messing about with ports just by asking for >> > http://www.mywebapp.co.uk >> > >> > Hope this helps >> > >> > Cheers >> > Duncan >> > >> > >> > On 7/6/07, christianhau <[EMAIL PROTECTED]> wrote: >> >> >> >> >> >> Hi! >> >> >> >> I have set up a tomcat server with ssl that works fine as long as I go >> to >> >> the adress https://adress:8443 I want to get rid of the port number, >> is >> >> there any easy way to do this so that tomcat understands the https >> >> request >> >> that comes in? >> >> >> >> <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" >> >> maxThreads="150" scheme="https" secure="true" >> >> clientAuth="false" keystorePass="changeit" sslProtocol="TLS" >> >> keystoreFile="/root/.keystore" >> >> truststoreFile="/usr/lib/jvm/java-1.5.0-sun/jre/lib/security/cacerts" >> /> >> >> >> >> This is my ssl connector in my server.xml. I tried getting a redirct >> from >> >> http to https going but couldn't do that in tomcat alone, any tips on >> >> that >> >> aswell? I have done this: >> >> >> >> <Connector port="8080" protocol="HTTP/1.1" >> >> >> >> redirectPort="8443" /> >> >> >> >> With no luck... Thanks for any help!! >> >> -- >> >> View this message in context: >> >> >> http://www.nabble.com/How-to-remove-port-number-from-https-adress-and-redirect-http-to-https-tf4034030.html#a11459871 >> >> Sent from the Tomcat - User mailing list archive at Nabble.com. >> >> >> >> >> >> --------------------------------------------------------------------- >> >> To start a new topic, e-mail: users@tomcat.apache.org >> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >> >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/How-to-remove-port-number-from-https-adress-and-redirect-http-to-https-tf4034030.html#a11462081 >> Sent from the Tomcat - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To start a new topic, e-mail: users@tomcat.apache.org >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > -- View this message in context: http://www.nabble.com/How-to-remove-port-number-from-https-adress-and-redirect-http-to-https-tf4034030.html#a11496915 Sent from the Tomcat - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]