2016-04-04 6 views
0

Ich bin neu in Java und mit Tomcat.Jsp Seiten öffnen in Https und Http

Ich habe Tomcat konfiguriert auf https laufen über diesen Link source

Ich habe Änderungen nur getan Datei in Tomcat directory.And Änderung sieht ungefähr so ​​aus server.xml.

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" 
      maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
      keystoreFile="C:\Users\sanjithkumar017\Desktop\myKey.keystore" keystorePass="qwerty" 
      clientAuth="false" sslProtocol="TLS" /> 

und dann bin ich in der Lage die URL für den Zugriff auf https://localhost:8443 erfolgreich.

Ich habe eine WAR-Datei (Mserv) meines Projekts erstellt und in den Webapps-Ordner von Tomcat gestellt.

Das Problem ist, wenn ich es traf die URL https://localhost:8443/mserv/dis.jsp Ich bekomme die Antwort (ich meine es funktioniert). Und auch wenn ich versuche http://localhost:8080/mserv/dis.jsp es funktioniert gut.

Das soll so funktionieren. Ich möchte, dass die JSP-Seiten nur auf https laufen.

Und was ich als nächstes getan habe, ist eine web.xml-Datei zu meinem Eclipse-Projekt hinzugefügt (weil ich einige JSP-Seiten in meinem Projekt auf http ausführen muss). Die web.xml-Datei sieht etwa so aus.

<security-constraint> 
<web-resource-collection> 
    <web-resource-name>secured page</web-resource-name> 
    <url-pattern>/mserv/dis.jsp</url-pattern> 
    <url-pattern>/mserv/index.jsp</url-pattern> 
    <url-pattern>/mserv/pcr.jsp</url-pattern> 
</web-resource-collection> 
<user-data-constraint> 
    <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
</user-data-constraint> 

Also, was ich jetzt davon aus, dass nur die Seiten oben (Anwendung web.xml) erwähnt auf https.But noch zugänglich sein müssen, ich bin in der Lage, alle Seiten für den Zugriff sowohl mit http und https.

Ich möchte, dass meine Seiten nur über https aufgerufen werden.

Wohin gehe ich falsch? Bitte helfen.

jdk :: jdk1.7.0_79

Kater :: Apache-tomcat-7.0.67

+0

Sie müssen schreiben. Ich werde sehen, ob ich später etwas Code posten kann. –

+0

oh ja bitte .. –

Antwort

0

Filter hinzufügen in Ihrem Projekt sagt HttpsFilter und Request-Objekt verwenden, um die Anfrage, ob zu finden, wenn https oder nicht verwenden isSecure() -Methode. Im Folgenden finden Sie den Code ein:

import java.io.IOException; 
import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
import javax.servlet.annotation.WebFilter; 
import javax.servlet.http.HttpServletResponse; 


public class HttpsFilter implements Filter { 

    /** 
    * Default constructor. 
    */ 
    public HttpsFilter() { 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see Filter#destroy() 
    */ 
    public void destroy() { 
     // TODO Auto-generated method stub 
    } 

    /** 
    * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) 
    */ 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
     // TODO Auto-generated method stub 
     // place your code here 
     HttpServletResponse resp = (HttpServletResponse) response; 
     if(!request.isSecure()) 
     { 
      /* Here you can redirect to error page or do permanent redirection using resp object */ 
     } 

     // pass the request along the filter chain 
     chain.doFilter(request, response); 
    } 

    /** 
    * @see Filter#init(FilterConfig) 
    */ 
    public void init(FilterConfig fConfig) throws ServletException { 
     // TODO Auto-generated method stub 
    } 

} 

In web.xml, das URL-Muster angeben, für die dieser Filter benötigen ein eigenes Servlet-Filter oder tomcat Ventil angelegt

<filter> 
    <filter-name>httpsFilter</filter-name> 
    <filter-class>HttpsFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>httpsFilter</filter-name> 
    <url-pattern>/mserv/dis.jsp</url-pattern> 
    <url-pattern>/mserv/index.jsp</url-pattern> 
    <url-pattern>/mserv/pcr.jsp</url-pattern> 
</filter-mapping>