【问题标题】:Error using SSL and Tomcat on web-portal在 Web 门户上使用 SSL 和 Tomcat 时出错
【发布时间】:2014-06-18 06:49:15
【问题描述】:

我有一个门户网站。每个用户都必须授权使用门户的所有功能。所以每个用户都必须有个人证书。我的网站上有一个链接 Sign in。如果用户有证书,一切顺利。但是如果他没有我得到空白页(标准Web page is not available)并且在Tomcat 7.0 日志中我有这个错误

org.apache.coyote.http11.AbstractHttp11Processor process
INFO: Error parsing HTTP request header
Note: further occurrences of HTTP header parsing 
errors will be logged at DEBUG level.

在这种情况下,我想在我的门户上创建一个错误页面,例如The page you requested was not found! Back to homepage!。但我不知道怎么做。

这是我的server.xml SSL 配置

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />

也许我不能完全理解 SSL 和 Tomcat 是如何工作的。这个错误是关于什么以及如何解决我的问题?谢谢。

【问题讨论】:

    标签: tomcat ssl tomcat7


    【解决方案1】:

    实际上,您可以通过创建servelt 并将其映射到欢迎文件来重定向到您想要的任何页面。这就是如何实现的。在你的 web.xml 中你应该做一些这样的事情

    <servlet>
        <servlet-name>UrlRedirectServlet </servlet-name>
        <servlet-class>com.UrlRedirectServlet </servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UrlRedirectServlet </servlet-name>
        <url-pattern>/index</url-pattern>
    </servlet-mapping>
    
    <welcome-file-list>
        <welcome-file>index</welcome-file>
      </welcome-file-list>
    

    然后像下面这样创建一个servlet

    public class UrlRedirectServlet extends HttpServlet
    {
        public UrlRedirectServlet() {
            super();
        }       
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            urlRedirecting(request, response);
        }   
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            urlRedirecting(request, response);
    
        }   
    
     private void   urlRedirecting(request , respone)
    { //do what ever you want
    }
    
    }
    

    希望这会有所帮助 如果您有任何疑问,请返回 莫汉

    【讨论】:

    • 顺便说一下正在尝试进行基于证书的登录?第二件事从您的连接器端口我看不到服务器证书?如果 clientauth 为 false,则忽略客户端证书。参考link
    • 我不使用登录名/密码,只使​​用客户端证书。所以你说,我必须有一个服务器证书。如果客户端有自己的证书,则服务器将忽略。如果客户端没有他的证书,那么服务器使用的是什么?正确吗?
    • 没有。它基于相互身份验证工作,客户端和服务器应具有有效证书。为了构建成功的握手。如果双方相互信任,那么只有您才能登录应用程序。希望它清除。给我看一下 tomcat 的配置?
    • 谢谢,很清楚。如果客户没有证书怎么办?您需要哪些特定的 Tomcat 配置设置?
    • 您可以定义上面给出的servlet,以便您可以使用它。在所有情况下,您都可以在指尖控制 url 重定向。一般来说,它会考虑辅助登录类型(如果存在)或错误页面。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2013-11-13
    • 2011-02-16
    • 1970-01-01
    相关资源
    最近更新 更多