Servlets 在WebSphere6.1中强制使用Https

Servlets 在WebSphere6.1中强制使用Https,servlets,https,websphere,rad,Servlets,Https,Websphere,Rad,我想知道如何强制使用Http请求页面的用户使用安全https版本 我使用WebSphere6.1作为我的应用服务器,RAD7作为我的开发环境 谢谢 DamienWebsphere不是一个完整的http服务器。它确实有“传输链”,其作用类似于HTTP服务器 通常,您将在前面放置一个HTTP服务器。IBM提供了IHS(IBM HTTP服务器),这是一个稍加修改的Apache HTTP服务器。HTTP服务器配置了httpd.conf文件。在这里,您添加重定向的方式是将http请求重定向到https 也

我想知道如何强制使用Http请求页面的用户使用安全https版本

我使用WebSphere6.1作为我的应用服务器,RAD7作为我的开发环境

谢谢
Damien

Websphere不是一个完整的http服务器。它确实有“传输链”,其作用类似于HTTP服务器

通常,您将在前面放置一个HTTP服务器。IBM提供了IHS(IBM HTTP服务器),这是一个稍加修改的Apache HTTP服务器。HTTP服务器配置了httpd.conf文件。在这里,您添加重定向的方式是将http请求重定向到https


也许您可以提供一些关于您的基础架构的详细信息。

Websphere不是一个完整的http服务器。它确实有“传输链”,其作用类似于HTTP服务器

通常,您将在前面放置一个HTTP服务器。IBM提供了IHS(IBM HTTP服务器),这是一个稍加修改的Apache HTTP服务器。HTTP服务器配置了httpd.conf文件。在这里,您添加重定向的方式是将http请求重定向到https


也许您可以提供一些有关基础结构的详细信息。

在应用程序中而不是在服务器配置中执行此操作的一种方法是使用(在web.xml中指定)检查
ServletRequest.getScheme()
是否为“http”或“https”,并将用户重新定向到适当的URL(使用
HttpServletResponse.sendRedirect(字符串url)
)。

在应用程序中而不是在服务器配置中执行此操作的一种方法是使用(在web.xml中指定)检查
ServletRequest.getScheme()
是否为“http”或“https”,并将用户重新定向到适当的url(使用
HttpServletResponse.sendRedirect(字符串url)
)。

我同意。我认为使用筛选器可以实现这一点。下面是我为负载平衡和端口重定向编写的筛选器,但应该很容易找到如何编辑它以满足您的需要

公共类RequestWrapperFilter实现过滤器{

public void doFilter(ServletRequest servletRequest,
        ServletResponse servletResponse, FilterChain filterChain)
        throws IOException, ServletException {

    HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
    HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;

    String requestWrapperClassName = (String) (httpRequest
            .getAttribute(LoadBalancerRequestWrapper.class.getName()));

    String initiatingServerName = httpRequest.getServerName();

    if (requestWrapperClassName == null
            && initiatingServerName.equals(loadBalancerHostName)) {

        httpRequest = new LoadBalancerRequestWrapper(AuthenticationUtil
                .getHttpServletRequest(httpRequest));
    }

    filterChain.doFilter(httpRequest, httpResponse);
}
}


}

我同意。我认为使用筛选器可以实现这一点。下面是我为负载平衡和端口重定向编写的筛选器,但应该很容易找到如何编辑它以满足您的需要

公共类RequestWrapperFilter实现过滤器{

public void doFilter(ServletRequest servletRequest,
        ServletResponse servletResponse, FilterChain filterChain)
        throws IOException, ServletException {

    HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
    HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;

    String requestWrapperClassName = (String) (httpRequest
            .getAttribute(LoadBalancerRequestWrapper.class.getName()));

    String initiatingServerName = httpRequest.getServerName();

    if (requestWrapperClassName == null
            && initiatingServerName.equals(loadBalancerHostName)) {

        httpRequest = new LoadBalancerRequestWrapper(AuthenticationUtil
                .getHttpServletRequest(httpRequest));
    }

    filterChain.doFilter(httpRequest, httpResponse);
}
}


}

您可以在web.xml中添加以下条目,它将确保所有请求都转换为https

<!--********************************
   *** SSL Security Constraint  ***
   *****************************-->
   <security-constraint>
       <web-resource-collection>
           <web-resource-name>SSL</web-resource-name>
           <url-pattern>/*</url-pattern>
       </web-resource-collection>
       <user-data-constraint>
           <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
   </security-constraint>

<!--********************************* -->

SSL
/*
保密的

您可以在web.xml中添加以下条目,它将确保所有请求都转换为https

<!--********************************
   *** SSL Security Constraint  ***
   *****************************-->
   <security-constraint>
       <web-resource-collection>
           <web-resource-name>SSL</web-resource-name>
           <url-pattern>/*</url-pattern>
       </web-resource-collection>
       <user-data-constraint>
           <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
   </security-constraint>

<!--********************************* -->

SSL
/*
保密的