Scott,
The response that's causing the exception at: edu.yale.its.tp.cas.client.ServiceTicketValidator.validate(ServiceTicketValidator.java:221) is literally "yes\ntms64\n", which is obviously not xml. Tim

Can you see what the XML response back from CAS was? There may be an invalid character in there (as evidenced by Content is not allowed in prolog.).

-Scott

On 5/17/07, * Tim Speevack* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:


    Apologies to all who have answered these questions a billion
    times, but...

    I'm trying to get tomcat/spring/acegi to talk to CAS.  I've gotten it
    working to some degree, but am now stuck on the following error:

    [Fatal Error] :1:1: Content is not allowed in prolog.
    May 17, 2007 2:06:14 PM edu.yale.its.tp.cas.client.CASReceipt
    getReceipt
    SEVERE: edu.yale.its.tp.cas.client.CASAuthenticationException:
    Unable to validate ProxyTicketValidator
    [ [edu.yale.its.tp.cas.client.ProxyTicketValidator proxyList=[null]
      [edu.yale.its.tp.cas.client.ServiceTicketValidator
        casValidateUrl=[https://secure.its.yale.edu/cas/servlet/validate
    <https://secure.its.yale.edu/cas/servlet/validate>]
        ticket=[ST-11059954-4vXxKMmEaRychGbtR62b]

    
service=[http%3A%2F%2Fyag-client-36.art.yale.edu%3A8080%2Fyuagit%2Fsecure%2Ftest.jsp]

        renew=false
        entireResponse=[yes
    <my netid>
    ]]]]

    I've gone through all the online references I can find, but can't get
    past this error.  Clearly I'm getting a valid ticket & login succeeds,
    so I'm assuming that this has something to do with SSL &
    Tomcat.  I've
    followed all the posts related to keytool, but still no luck.

    Here's how things are configured:

    JVM:    JAVA_HOME=C:\jdk1.6.0

    TOMCAT:    CATALINA_HOME=C:\tomcat
      server.xml was modified to enable SSL, and keystore & trust are
    explicitly defined:
        <Connector port="8443" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25"
    maxSpareThreads="75"
                   enableLookups="false" disableUploadTimeout="true"
                   acceptCount="100" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS"
                     keystoreFile="C:\DOCUME~1\<my netid>\.keystore"
                     keystorePass="changeit"
                     truststoreFile="C:/jdk1.6.0/jre/lib/security/cacerts"
                   />

    KEYSTORE: I created a batch file since I had to run this more than
    once:

      @echo off
      set USERKEYSTORE=C:\DOCUME~1\tms64\.keystore
      set JVMKEYSTORE=%JAVA_HOME%\jre\lib\security\cacerts

      keytool -delete -alias tomcat -keystore "%USERKEYSTORE%" \
        -keypass changeit -storepass changeit -keyalg RSA

      keytool -delete -alias tomcat -keystore "%JVMKEYSTORE%" \
        -keypass changeit -storepass changeit -keyalg RSA

      keytool -genkey -alias tomcat -keystore %USERKEYSTORE% \
        -validity 9999 -keypass changeit -storepass changeit -keyalg
    RSA \
        -dname "CN=<mymachinename>.art.yale.edu, OU=artgallery, O=yale,
    L=newhaven, S=ct, C=us"

      keytool -export -alias tomcat -keystore %USERKEYSTORE% \
        -file server.crt -keypass changeit -storepass changeit -keyalg
    RSA

      keytool -import -file server.crt -alias tomcat -keystore
    %JVMKEYSTORE% \
        -keypass changeit -storepass changeit -keyalg RSA


    All references I found on this process were somewhat vague.  For
    example
    http://www.ja-sig.org/products/cas/server/ssl/index.html shows:

    %JAVA_HOME%\bin\keytool -export -alias tomcat -keypass changeit  -file
    %FILE_NAME%
    %JAVA_HOME%\bin\keytool -import -file server.crt -keypass changeit
    -keystore %JAVA_HOME%/jre/lib/security/cacerts
    %JAVA_HOME%\bin\keytool -import -file server.crt -keypass changeit

    It's not clear from this example whether %FILE_NAME% and
    server.crt are
    intended to be the same files, though after reading
    http://tp.its.yale.edu/pipermail/cas-dev/2007-April/001751.html it
    would
    appear that that is the intention.

    I'm sure I've missed a critical point somewhere, but I'm not at all
    familiar with ssl setup so it's not obvious.  I'm fairly sure that the
    remainder of the setup is correct, but I can provide gory details
    of the
    webapp configuration, spring, acegi, etc.

    Any help will be much appreciated!
    Tim


_______________________________________________
Yale CAS mailing list
[email protected]
http://tp.its.yale.edu/mailman/listinfo/cas

Reply via email to