I am trying to get CAS working on my organisation's intranet over SSL. I
have installed the certificate on the apache HTTPD server, and am rewriting
any incoming http://logon.company.org.au/cas/login url as
https://logon.company.org.au/cas/login. The CAS authentication part is
working, however, the redirect to the client application is not.

Firstly, a bit of background on the current setup. I have CAS 3.3.2 running
on Apache Tomcat 6 and Java 6.0 update 19. Apache HTTPD server sits in front
of tomcat and proxies requests through to port 8080 like this:
        <Location /cas>
                Options +FollowSymlinks
                Order Deny,Allow
                Allow from All

                RewriteEngine on
                RewriteBase /cas/

                RewriteCond     %{HTTP_HOST}
!((^\d+\.\d+\.\d+\.\d+$)|(^([a-z0-9-_]+\.)company\.org\.au$)) [NC]
                RewriteRule     ^(.*)$
http://logon.company.org.au%{REQUEST_URI}
[R,NE]

                ProxyPass http://localhost:8080/cas/
                ProxyPassReverse http://localhost:8080/cas/
        </Location>

When I add the HTTPS redirect like this, things start breaking:
        <Location /cas>
                Options +FollowSymlinks
                Order Deny,Allow
                Allow from All

                RewriteEngine on
                RewriteBase /cas/

                RewriteCond     %{HTTP_HOST}
!((^\d+\.\d+\.\d+\.\d+$)|(^([a-z0-9-_]+\.)company\.org\.au$)) [NC]
                RewriteRule     ^(.*)$
http://logon.company.org.au%{REQUEST_URI}
[R,NE]
                RewriteCond     %{SERVER_PORT} ^80$
                RewriteRule     ^(.*)$
https://logon.company.org.au%{REQUEST_URI}
[L,R,NE]

                ProxyPass http://localhost:8080/cas/
                ProxyPassReverse http://localhost:8080/cas/
        </Location>

The certificate is installed correctly, and the
https://logon.company.org.au/cas/login link works well.

However when a client application (a java web app using spring security)
accesses CAS, the redirect back to the application fails with this error.
Does anyone know how I can troubleshoot this further. Or can anyone provide
some advice on how to get CAS working over HTTPS with a Apache HTTPD reverse
proxy and Apache tomcat server.

Thanks

SEVERE: org.xml.sax.SAXParseException: White spaces are required between
publicId and systemId.
org.xml.sax.SAXParseException: White spaces are required between publicId
and systemId.
        at
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Lorg.apache.xerces.xni.parser.XMLParseException;)Lorg.xml.sax.SAXParseException;(Unknown
Source)
        at
org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Ljava.lang.String;Ljava.lang.String;Lorg.apache.xerces.xni.parser.XMLParseException;)V(Unknown
Source)
        at
org.apache.xerces.impl.XMLErrorReporter.reportError(Lorg.apache.xerces.xni.XMLLocator;Ljava.lang.String;Ljava.lang.String;[Ljava.lang.Object;S)V(Unknown
Source)
        at
org.apache.xerces.impl.XMLErrorReporter.reportError(Ljava.lang.String;Ljava.lang.String;[Ljava.lang.Object;S)V(Unknown
Source)
        at
org.apache.xerces.impl.XMLScanner.reportFatalError(Ljava.lang.String;[Ljava.lang.Object;)V(Unknown
Source)
        at
org.apache.xerces.impl.XMLScanner.scanExternalID([Ljava.lang.String;Z)V(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl()Z(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Z)Z(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Z)Z(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Z)Z(Unknown
Source)
        at
org.apache.xerces.parsers.XML11Configuration.parse(Lorg.apache.xerces.xni.parser.XMLInputSource;)V(Unknown
Source)
        at
org.apache.xerces.parsers.XMLParser.parse(Lorg.apache.xerces.xni.parser.XMLInputSource;)V(Unknown
Source)
        at
org.apache.xerces.parsers.AbstractSAXParser.parse(Lorg.xml.sax.InputSource;)V(Unknown
Source)
        at
org.jasig.cas.client.util.XmlUtils.getTextForElement(XmlUtils.java:150)
        at
org.jasig.cas.client.validation.Cas20ServiceTicketValidator.parseResponseFromServer(Cas20ServiceTicketValidator.java:77)
        at
org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:188)

-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to