Uploaded image for project: 'Crowd Data Center'
  1. Crowd Data Center
  2. CWD-1192

Provide support for versions of Resin newer than 3.0.26

    • Icon: Suggestion Suggestion
    • Resolution: Won't Fix
    • 2.0.2
    • Deployment
    • None
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

      At present, Crowd will only work with Resin versions 3.0.23 - 3.0.26. Something has changed in Resin 3.1.x and 3.2 that causes the remote_address value to be nulled out.

      User authenticates.
      Authentication is successful.
      Crowd attempts to redirect to start page.
      Token is checked again but the remote_address value is nulled out causing a redirect to the login page.

      We have tried enforcing the xerces XML parser with no change. This requires more investigation with the dev team.

        1. view_principal.zip
          8 kB
          dwimberger
        2. add_directorydelegated.zip
          6 kB
          dwimberger
        3. add_directoryconnector.zip
          7 kB
          dwimberger

            [CWD-1192] Provide support for versions of Resin newer than 3.0.26

            We have no realistic plans to update Crowd's support for Resin, so I'm going to close this issue.

            We recommend using Tomcat.

            David O'Flynn [Atlassian] added a comment - We have no realistic plans to update Crowd's support for Resin, so I'm going to close this issue. We recommend using Tomcat.

            Obviously not fixed... thanks Dieter for the detective work

            David O'Flynn [Atlassian] added a comment - Obviously not fixed... thanks Dieter for the detective work

            dwimberger added a comment -

            add_directoryconnector.jsp, same problem, same workaround.

            dwimberger added a comment - add_directoryconnector.jsp, same problem, same workaround.

            dwimberger added a comment -

            add_directorydelegated.jsp has the same problem. Uploading a package with the tabs split out into separate included jsp files as a workaround.

            Confirmed to work.

            dwimberger added a comment - add_directorydelegated.jsp has the same problem. Uploading a package with the tabs split out into separate included jsp files as a workaround. Confirmed to work.

            dwimberger added a comment -

            Split the tabs out into separate files, to avoid the compiler limitation on Resin (and probably Websphere).

            Tested and confirmed as a viable workaround.

            dwimberger added a comment - Split the tabs out into separate files, to avoid the compiler limitation on Resin (and probably Websphere). Tested and confirmed as a viable workaround.

            dwimberger added a comment -

            David:

            I have been trying now to cover as much of the pages possible to make sure it really works (apart from the authentication mechanism).

            Unfortunately I have found at least one (so far; still working on this) that runs into the Caucho Compiler Limit Issue:
            com.caucho.java.JavaCompileException: /console/secure/principal/view_principal.jsp:547: code too large for try statement } catch (java.lang.Throwable jsp_e) { ^ /opt/resin-3.1.9/webapps/crowd/WEB-INF/work/_jsp/_console/_secure/_principal/_view_0principaljsp.java:93: code too large for try statement try { ^ /opt/resin-3.1.9/webapps/crowd/WEB-INF/work/_jsp/_console/_secure/_principal/_view_0principal_jsp.java:16: code too large _jspService(javax.servlet.http.HttpServletRequest request, ^ 3 errors

            This seems to be related to:
            http://bugs.caucho.com/view.php?id=1530

            May require more work to get it running, but this limit may also hit you on Websphere, so it may be a good idea to fix it.

            Regards,
            Dieter

            dwimberger added a comment - David: I have been trying now to cover as much of the pages possible to make sure it really works (apart from the authentication mechanism). Unfortunately I have found at least one (so far; still working on this) that runs into the Caucho Compiler Limit Issue: com.caucho.java.JavaCompileException: /console/secure/principal/view_principal.jsp:547: code too large for try statement } catch (java.lang.Throwable jsp_e) { ^ /opt/resin-3.1.9/webapps/crowd/WEB-INF/work/_jsp/_console/_secure/_principal/_view_0principal jsp.java:93: code too large for try statement try { ^ /opt/resin-3.1.9/webapps/crowd/WEB-INF/work/_jsp/_console/_secure/_principal/_view_0principal _jsp.java:16: code too large _jspService(javax.servlet.http.HttpServletRequest request, ^ 3 errors This seems to be related to: http://bugs.caucho.com/view.php?id=1530 May require more work to get it running, but this limit may also hit you on Websphere, so it may be a good idea to fix it. Regards, Dieter

            Dieter,

            Thanks heaps for providing the workaround. It's much appreciated & will save people a bunch of heartache.
            Cheers,
            Dave.
            Crowd Product Manager.

            David O'Flynn [Atlassian] added a comment - Dieter, Thanks heaps for providing the workaround. It's much appreciated & will save people a bunch of heartache. Cheers, Dave. Crowd Product Manager.

            dwimberger added a comment -

            JAXP can be a pain when it comes to containers. That's actually why I would suggest you to use OSGi and do it through a Factory providing Service

            Now, to make Crowd work on Resin 3.1.9 (I am using Crod 2.0.2), what it really needs is to set all required parser factories using corresponding system properties. Now, Crowd uses XFire, XFire works best with WoodStox, and voila

                  <web-app id="/crowd" root-directory="webapps/crowd" >
                     <!-- xml -->
                     <system-property javax.xml.parsers.DocumentBuilderFactory=
                         "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>
                     <system-property javax.xml.parsers.SAXParserFactory=
                         "org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
                     <!--  xslt -->
                     <system-property javax.xml.transform.TransformerFactory=
                         "org.apache.xalan.processor.TransformerFactoryImpl"/>
                    
                     <!-- StAX for XFire! -->
                     <system-property javax.xml.stream.XMLInputFactory="com.ctc.wstx.stax.WstxInputFactory" />
                     <system-property javax.xml.stream.XMLOutputFactory="com.ctc.wstx.stax.WstxOutputFactory" />
                     <system-property javax.xml.stream.XMLEventFactory="com.ctc.wstx.stax.WstxEventFactory" />
                  
                  </web-app>
            

            Setting these properties on the web application itself, will isolate (not apply them for all, which may cause conflicts with other apps e.g. Solr).

            Enjoy, and I guess somebody can close this one.

            dwimberger added a comment - JAXP can be a pain when it comes to containers. That's actually why I would suggest you to use OSGi and do it through a Factory providing Service Now, to make Crowd work on Resin 3.1.9 (I am using Crod 2.0.2), what it really needs is to set all required parser factories using corresponding system properties. Now, Crowd uses XFire, XFire works best with WoodStox, and voila <web-app id= "/crowd" root-directory= "webapps/crowd" > <!-- xml --> <system-property javax.xml.parsers.DocumentBuilderFactory= "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl" /> <system-property javax.xml.parsers.SAXParserFactory= "org.apache.xerces.jaxp.SAXParserFactoryImpl" /> <!-- xslt --> <system-property javax.xml.transform.TransformerFactory= "org.apache.xalan.processor.TransformerFactoryImpl" /> <!-- StAX for XFire! --> <system-property javax.xml.stream.XMLInputFactory= "com.ctc.wstx.stax.WstxInputFactory" /> <system-property javax.xml.stream.XMLOutputFactory= "com.ctc.wstx.stax.WstxOutputFactory" /> <system-property javax.xml.stream.XMLEventFactory= "com.ctc.wstx.stax.WstxEventFactory" /> </web-app> Setting these properties on the web application itself, will isolate (not apply them for all, which may cause conflicts with other apps e.g. Solr). Enjoy, and I guess somebody can close this one.

            What is the current progress of this issue? This issue is a major blocker for our project of integrating JIRA and Confluence under common user authentication system on Resin 3.1.7a.

            Matti Jormakka added a comment - What is the current progress of this issue? This issue is a major blocker for our project of integrating JIRA and Confluence under common user authentication system on Resin 3.1.7a.

              Unassigned Unassigned
              donna@atlassian.com DonnaA
              Votes:
              3 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: