Tom,

I am letting forms authentication do all the work so the "protected" page, 
which is in a subfolder with a separate web.config  that is referenced has no 
code in it but still generates the error described below.  Here's it's 
web.config:

<configuration>
    <system.web>
        <authorization>
            <deny users="?" />
        </authorization>
    </system.web>
</configuration>

Here is my main web.config modified to remove any sensitive server and 
application references.

I'm not sure if the TGT is really the problem or if something else is causing 
this.


<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <configSections>
    <section name="casClientConfig" 
type="DotNetCasClient.Configuration.CasClientConfiguration, DotNetCasClient" />
  </configSections>


  <system.web>
    <customErrors mode="Off">
      <error statusCode="503" redirect="/ServerBusy.aspx" />
    </customErrors>
  <!-- Other system.web elements here -->

    <httpModules>
      <add name="DotNetCasClient" 
type="DotNetCasClient.CasAuthenticationModule,DotNetCasClient" />
    </httpModules>
    <trace enabled="true" />

    <authentication mode="Forms">
      <forms loginUrl="https://example.edu/cas/login"; timeout="30" 
defaultUrl="~/Default.aspx" cookieless="UseCookies" slidingExpiration="true" 
path="/MyApp/" />
    </authentication>

        <compilation debug="true" />
  </system.web>
  <system.webServer>
  <validation validateIntegratedModeConfiguration="false" />

    <modules>
      <remove name="DotNetCasClient" />
      <add name="DotNetCasClient" 
type="DotNetCasClient.CasAuthenticationModule,DotNetCasClient" />
    </modules>
  </system.webServer>
    <system.diagnostics>
    <trace autoflush="true" useGlobalLock="false" />
    <sharedListeners>
      <!--

      Writing trace output to a log file is recommended.

      IMPORTANT:

      The user account under which the containing application pool runs

      must have privileges to create and modify the trace log file.

    -->
      <add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener" 
initializeData="E:\wwwroot\DotNetCasClient.Log" traceOutputOptions="DateTime" />
    </sharedListeners>
    <sources>
      <!-- Provides diagnostic information on module configuration parameters. 
-->
      <source name="DotNetCasClient.Config" switchName="Config" 
switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <add name="TraceFile" />
        </listeners>
      </source>
      <!-- Traces IHttpModule lifecycle events and meaningful operations 
performed therein. -->
      <source name="DotNetCasClient.HttpModule" switchName="HttpModule" 
switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <add name="TraceFile" />
        </listeners>
      </source>
      <!-- Provides protocol message and routing information. -->
      <source name="DotNetCasClient.Protocol" switchName="Protocol" 
switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <add name="TraceFile" />
        </listeners>
      </source>
      <!-- Provides details on security operations and notable security 
conditions. -->
      <source name="DotNetCasClient.Security" switchName="Security" 
switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <add name="TraceFile" />
        </listeners>
      </source>
    </sources>
    <switches>
      <!--

      Set trace switches to appropriate logging level.  Recommended values in 
order of increasing verbosity:

       - Off

       - Error

       - Warning

       - Information

       - Verbose

    -->
      <!--

      Config category displays detailed information about 
CasAuthenticationModule configuration.

      The output of this category is only displayed when the module is 
initialized, which happens

      for the first request following application/server startup.

    -->
      <add name="Config" value="Verbose" />
      <!--

      Set this category to Verbose to trace HttpModule lifecycle events in 
CasAuthenticationModule.

      This category produces voluminous output in Verbose mode and should be 
avoided except for

      limited periods of time troubleshooting vexing integration problems.

    -->
      <add name="HttpModule" value="Verbose" />
      <!--

      Set to Verbose to display protocol messages between the client and server.

      This category is very helpful for troubleshooting integration problems.

    -->
      <add name="Protocol" value="Verbose" />
      <!--

      Displays important security-related information.

    -->
      <add name="Security" value="Verbose" />
    </switches>
  </system.diagnostics>

  <casClientConfig casServerLoginUrl="https://example.edu/cas/login/"; 
casServerUrlPrefix="https://example.edu/cas/"; serverName="server.example.edu" 
notAuthorizedUrl="~/NotAuthorized.aspx" 
cookiesRequiredUrl="~/CookiesRequired.aspx" redirectAfterValidation="true" 
renew="false" singleSignOut="true" ticketValidatorName="Saml11" 
serviceTicketManager="CacheServiceTicketManager" />

</configuration>



Thanks!

**********************
Mark Reynolds
IT Manager
Parking Services Department
Joe Frank Harris Commons
University Of Georgia
80 Carlton Street
Athens, GA 30602-6004

706-542-7364
[email protected]<mailto:[email protected]>

From: Tom O'Neill [mailto:[email protected]]
Sent: Friday, May 15, 2015 3:25 PM
To: [email protected]
Subject: RE: [cas-user] .Net CAS Client error

Mark,

Would you be able to post a chunk of your .NET code?
Based on the error message and the feedback you received it sounds like you 
could be missing a step.
The lack of a TGT (Ticket Granting Ticket) would explain why you are seeing a 
ST (Service Ticket) error.
The TGT is assigned when a successful authentication occurs and is then used to 
request a ST for a particular service.

Thanks,

    Tom O'Neill
    Senior Consultant
    Strata Information Group
    [email protected]<mailto:[email protected]>
    Mobile : (401) 644-4847
    Corporate : (619) 296-0170

From: Mark B Reynolds [mailto:[email protected]]
Sent: Friday, May 15, 2015 2:37 PM
To: [email protected]<mailto:[email protected]>
Subject: RE: [cas-user] .Net CAS Client error

Our systems admin rep said our CAS server is version 3.5.1.

Again, any guidance in resolving the error below would be appreciated.

Thanks,

**********************
Mark Reynolds
IT Manager
Parking Services Department
Joe Frank Harris Commons
University Of Georgia
80 Carlton Street
Athens, GA 30602-6004

706-542-7364
[email protected]<mailto:[email protected]>

From: John Gasper [mailto:[email protected]]
Sent: Thursday, May 14, 2015 2:08 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: [cas-user] .Net CAS Client error

Hi Mark,

What version of CAS Server are you using?

John

From: Mark B Reynolds <[email protected]<mailto:[email protected]>>
Reply-To: <[email protected]<mailto:[email protected]>>
Date: Thursday, May 14, 2015 at 10:34 AM
To: <[email protected]<mailto:[email protected]>>
Subject: [cas-user] .Net CAS Client error

We're being asked to switch our web applications over to use CAS instead of 
LDAP.  I am a novice at this but I know I need to pull in some attributes, 
which requires the use of SAML 1.1 in the .Net CAS client.  Unfortunately, 
although it was working at one point, I have started getting errors that occur 
when I change the ticketValidatorName configuration from Cas20 to Saml11.

I have even tried using the sample website from the .Net CAS client on GitHub.  
It works when I set ticketValidatorName="Cas20" but when I change it to Saml11, 
the site errors.  I have also tried a blank website copying the web.config 
settings from the Wiki and updating them to point to our dev CAS server and 
application along with a "protected" ASP.NET folder (separate web.config with a 
deny ? entry) and that also fails.

I have been unable to determine whether the issue is with my server, the .Net 
CAS client, the configuration, or the CAS server.  I enlisted the help of our 
systems administration group which runs the CAS server but they could not 
determine why this error occurred only to say a ticket granting ticket (?)was 
not being requested.

Any assistance would be appreciated in helping resolve this issue.

The error I'm getting is:

{"failure":"true","exception.message":"org.springframework.webflow.execution.ActionExecutionException:
 Exception thrown executing 
org.jasig.cas.web.flow.GenerateServiceTicketAction@ad5b8da<mailto:org.jasig.cas.web.flow.GenerateServiceTicketAction@ad5b8da>
 in state 'generateServiceTicket' of flow 'login' -- action execution 
attributes were 
'map[[empty]]'","exception.stacktrace":"org.springframework.webflow.execution.ActionExecutionException:
 Exception thrown executing 
org.jasig.cas.web.flow.GenerateServiceTicketAction@ad5b8da<mailto:org.jasig.cas.web.flow.GenerateServiceTicketAction@ad5b8da>
 in state 'generateServiceTicket' of flow 'login' -- action execution 
attributes were 'map[[empty]]'\n\tat 
org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:60)\n\tat
 
org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.java:77)\n\tat
 
org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)\n\tat
 
org.springframework.webflow.execution.AnnotatedAction.execute(AnnotatedAction.java:145)\n\tat
 
org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)\n\tat
 
org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:101)\n\tat
 org.springframework.webflow.engine.State.enter(State.java:194)\n\tat 
org.springframework.webflow.engine.Transition.execute(Transition.java:227)\n\tat
 
org.springframework.webflow.engine.DecisionState.doEnter(DecisionState.java:51)\n\tat
 org.springframework.webflow.engine.State.enter(State.java:194)\n\tat 
org.springframework.webflow.engine.Transition.execute(Transition.java:227)\n\tat
 
org.springframework.webflow.engine.DecisionState.doEnter(DecisionState.java:51)\n\tat
 org.springframework.webflow.engine.State.enter(State.java:194)\n\tat 
org.springframework.webflow.engine.Transition.execute(Transition.java:227)\n\tat
 
org.springframework.webflow.engine.DecisionState.doEnter(DecisionState.java:51)\n\tat
 org.springframework.webflow.engine.State.enter(State.java:194)\n\tat 
org.springframework.webflow.engine.Flow.start(Flow.java:535)\n\tat 
org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:366)\n\tat
 
org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:225)\n\tat
 
org.springframework.webflow.executor.FlowExecutorImpl.launchExecution(FlowExecutorImpl.java:140)\n\tat
 
org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:193)\n\tat
 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)\n\tat
 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)\n\tat
 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)\n\tat
 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)\n\tat
 javax.servlet.http.HttpServlet.service(HttpServlet.java:617)\n\tat 
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)\n\tat 
org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody2(SafeDispatcherServlet.java:128)\n\tat
 
org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody3$advice(SafeDispatcherServlet.java:57)\n\tat
 
org.jasig.cas.web.init.SafeDispatcherServlet.service(SafeDispatcherServlet.java:1)\n\tat
 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)\n\tat
 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)\n\tat
 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)\n\tat
 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)\n\tat
 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)\n\tat
 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)\n\tat
 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)\n\tat
 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)\n\tat
 
com.github.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:63)\n\tat
 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)\n\tat
 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)\n\tat
 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)\n\tat
 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)\n\tat
 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)\n\tat
 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)\n\tat
 org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:600)\n\tat 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)\n\tat 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)\n\tat
 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)\n\tat
 
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:865)\n\tat
 
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)\n\tat
 org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1556)\n\tat 
java.lang.Thread.run(Thread.java:701)\nCaused by: 
java.lang.IllegalArgumentException: 'principal' cannot be null.\nCheck the 
correctness of @Audit annotation at the following audit point: execution(public 
abstract java.lang.String 
org.jasig.cas.CentralAuthenticationService.grantServiceTicket(java.lang.String,org.jasig.cas.authentication.principal.Service))\n\tat
 
com.github.inspektr.audit.AuditActionContext.assertNotNull(AuditActionContext.java:81)\n\tat
 
com.github.inspektr.audit.AuditActionContext.<init>(AuditActionContext.java:63)\n\tat
 
com.github.inspektr.audit.AuditTrailManagementAspect.executeAuditCode(AuditTrailManagementAspect.java:149)\n\tat
 
com.github.inspektr.audit.AuditTrailManagementAspect.handleAuditTrail(AuditTrailManagementAspect.java:139)\n\tat
 sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)\n\tat 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat
 java.lang.reflect.Method.invoke(Method.java:622)\n\tat 
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)\n\tat
 
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)\n\tat
 
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)\n\tat
 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)\n\tat
 
org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)\n\tat
 
org.perf4j.aop.AbstractTimingAspect$1.proceed(AbstractTimingAspect.java:47)\n\tat
 
org.perf4j.aop.AgnosticTimingAspect.runProfiledMethod(AgnosticTimingAspect.java:53)\n\tat
 
org.perf4j.aop.AbstractTimingAspect.doPerfLogging(AbstractTimingAspect.java:45)\n\tat
 sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)\n\tat 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat
 java.lang.reflect.Method.invoke(Method.java:622)\n\tat 
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)\n\tat
 
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)\n\tat
 
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)\n\tat
 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)\n\tat
 
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)\n\tat
 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)\n\tat
 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)\n\tat
 com.sun.proxy.$Proxy27.grantServiceTicket(Unknown Source)\n\tat 
org.jasig.cas.web.flow.GenerateServiceTicketAction.doExecute(GenerateServiceTicketAction.java:52)\n\tat
 
org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)\n\tat
 
org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)\n\t...
 52 more\n"}


Thanks in advance!

**********************
Mark Reynolds
IT Manager
Parking Services Department
Joe Frank Harris Commons
University Of Georgia
80 Carlton Street
Athens, GA 30602-6004

706-542-7364
[email protected]<mailto:[email protected]>


--

You are currently subscribed to 
[email protected]<mailto:[email protected]> as: 
[email protected]<mailto:[email protected]>

To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user



--

You are currently subscribed to 
[email protected]<mailto:[email protected]> as: 
[email protected]<mailto:[email protected]>

To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user



--

You are currently subscribed to 
[email protected]<mailto:[email protected]> as: 
[email protected]<mailto:[email protected]>

To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user



--

You are currently subscribed to 
[email protected]<mailto:[email protected]> as: 
[email protected]<mailto:[email protected]>

To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

-- 
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