【问题标题】:How can jsessionID be suppressed on OC4J?如何在 OC4J 上抑制 jsessionID?
【发布时间】:2008-10-08 18:52:53
【问题描述】:

我正在将一个 JSF(myfaces、restfaces 和 richfaces)应用程序部署到 OC4J。我不希望 jsessionid 出现在状态栏或 URL 地址中。我几乎在所有情况下都设法压制它。我仍然遇到问题的一种情况是,首次使用“干净”浏览器(没有缓存、历史记录等)访问该站点时。在这种情况下,jsessionid 会出现在每个链接上,直到单击任何链接,然后消失,并且在再次清除浏览器缓存之前不会回来(即使在后续会话中)。

似乎其他人遇到了这个问题,但我没有找到任何解决方案或解决方法:

【问题讨论】:

    标签: session jsf oc4j


    【解决方案1】:

    servlet 过滤器中的以下代码对我们有用。这个想法是通过使用自定义响应包装器来覆盖任何 URL 重写逻辑。

    public void doFilter( 
        ServletRequest req, 
        ServletResponse resp, 
        FilterChain filterChain ) 
        throws IOException, ServletException
    {
        if ( req instanceof HttpServletRequest && 
             resp instanceof HttpServletResponse )
        {
            doFilter( 
                (HttpServletRequest) req, 
                (HttpServletResponse) resp, 
                filterChain );
        }
        else
        {
            filterChain.doFilter( req, resp );
        }
    }
    
    private void doFilter( 
        HttpServletRequest request, 
        HttpServletResponse response, 
        FilterChain filterChain ) 
        throws IOException, ServletException
    {
        RequestHandler requestHandler = getRequestHandler( request );
    
        HttpServletResponse wrappedResponse = getWrappedResponse( response );
    
        filterChain.doFilter( request, wrappedResponse );
    }
    
    private HttpServletResponse getWrappedResponse( 
        HttpServletResponse response )
    {
        return
            new HttpServletResponseWrapper( response )
            {
                public String encodeRedirectUrl( String url ) { return url; }
    
                public String encodeRedirectURL( String url ) { return url; }
    
                public String encodeUrl( String url ) { return url; }
    
                public String encodeURL( String url ) { return url; }
            };
    }
    

    【讨论】:

      猜你喜欢
      • 2018-11-16
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 2021-12-21
      相关资源
      最近更新 更多