UnauthorizedServiceException doesn't display serviceErrorView?
John Thiltges
jthiltges2 at unl.edu
Tue Nov 7 18:46:05 EST 2006
Scott,
With CAS 3.0.5, applying your patch to UnauthorizedServiceException.java
and web.xml (MAIN:sbattaglia:20061106190331) doesn't appear to resolve
the problem. The error-page for java.lang.Exception still shows up. Are
there other changes required as well?
I tried adding org.jasig.cas.services.UnauthorizedServiceException to
the SimpleMappingExceptionResolver in cas-servlet.xml but again, the
java.lang.Exception error-page shows up. However, when I added
org.springframework.webflow.ActionExecutionException to the
SimpleMappingExceptionResolver, the correct view was shown.
It feels like the solution is close, but I can't see it. The
UnauthorizedServiceException is nested inside of
ActionExecutionException...how to get ahold of it?
Thanks,
John
2006-11-07 17:28:28,842 DEBUG
[org.springframework.web.context.support.XmlWebApplicationContext] -
<Publishing event in context [WebApplicationContext for namespace
'cas-servlet']: ServletRequestHandledEvent: url=[/cas/login];
client=[127.0.0.1]; method=[GET]; servlet=[cas];
session=[43D30D5B33CE84E8D0F5A7DD6723CAEC]; user=[null]; time=[19ms];
status=[failed: _org.springframework.webflow.ActionExecutionException_:
Exception thrown executing [AnnotatedAction at 13c952f targetAction =
org.jasig.cas.web.flow.GenerateServiceTicketAction at 666a53, attributes =
map[[empty]]] in state 'generateServiceTicket' of flow 'login-webflow'
-- action execution properties where 'map[[empty]]'; _nested exception
is org.jasig.cas.services.UnauthorizedServiceException_: Service:
[http://localhost/foo] not found in registry.]>
Scott Battaglia wrote:
> John,
>
> I'll be sure to switch it to a RuntimeException (I'm currently
> re-working the Services support). Once you change it to derive from
> Runtime Exception you should be able to use the traditional web.xml
> method or a Spring Error Handler without having to modify the actions.
>
> -Scott
>
> On 10/24/06, *John Thiltges* <jthiltges2 at unl.edu
> <mailto:jthiltges2 at unl.edu>> wrote:
>
> Scott,
>
> Thanks for the ideas, but unfortunately I didn't have any luck. I
> looked into the problem a little more and came up with the
> following solution:
>
> It appears that because UnauthorizedServiceException derives from
> Exception, it gets converted to an UndeclaredThrowableException.
> By changing it to derive from RuntimeException, the exception type
> does not get lost, and the exception can then be caught in
> GenerateServiceTicketAction.
>
> Next, I added a catch statement in GenerateServiceTicketAction and
> added to the webflow so that UnauthorizedServiceException goes to
> the serviceErrorView view.
>
> If it would be helpful, I can sort through my code and post a
> patch to cas-dev.
>
> Thanks,
> John
>
> Scott Battaglia wrote:
>> You can try adding the following to your web.xml:
>>
>> Either:
>> <error-page>
>>
>> <exception>java.lang.reflect.UndeclaredThrowableException</exception>
>>
>> <location>/WEB-INF/view/jsp/default/ui/serviceErrorView.jsp</location>
>>
>> </error-page>
>>
>> or
>>
>> <error-page>
>>
>> <exception>org.jasig.cas.services.UnauthorizedServiceException</exception>
>>
>> <location>/WEB-INF/view/jsp/default/ui/serviceErrorView.jsp</location>
>>
>> </error-page>
>>
>> Let me know if that works for you.
>>
>> -Scott
>>
>> On 10/24/06, *John Thiltges* < jthiltges2 at unl.edu
>> <mailto:jthiltges2 at unl.edu>> wrote:
>>
>> Hello group,
>>
>> When using approvedServices and a service is not found, an
>> UnauthorizedServiceException is thrown. This appears to cause
>> an error
>> and the end user sees "CAS is Unavailable. A general exception
>> occurred..." (WEB-INF/view/jsp/errors.jsp).
>>
>> Should the serviceErrorView be displayed instead? If not,
>> when is the
>> serviceErrorView used?
>>
>> Error message from CAS 3.0.5 (unmodified except for enabling
>> approvedServices in web.xml):
>> 2006-10-24 10:23:03,609 INFO
>> [org.jasig.cas.authentication.AuthenticationManagerImpl] -
>> <AuthenticationHandler:
>> org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler
>> successfully authenticated the user which provided the following
>> credentials: asdf>
>> 2006-10-24 10:23:03,678 ERROR
>> [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/cas305].[cas]]
>> - <Servlet.service() for servlet cas threw exception>
>> java.lang.reflect.UndeclaredThrowableException
>> at $Proxy1.grantServiceTicket(Unknown Source)
>> at
>> org.jasig.cas.web.flow.GenerateServiceTicketAction.doExecuteInternal(GenerateServiceTicketAction.java:33)
>> at
>> org.jasig.cas.web.flow.AbstractLoginAction.doExecute
>> (AbstractLoginAction.java:60)
>> at
>> org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:204)
>> ...
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by:
>> org.jasig.cas.services.UnauthorizedServiceException : Service:
>> [http://localhost/asdf] not found in registry.
>> at
>> org.jasig.cas.services.advice.ServiceAllowedMethodBeforeAdvice.before(ServiceAllowedMethodBeforeAdvice.java
>> :58)
>> at
>> org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52)
>> at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
>> (ReflectiveMethodInvocation.java:170)
>> at
>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
>> ... 63 more
>>
>> Thanks,
>> John
>> --
>> John Thiltges
>> Information Services-Systems Group
>> University of Nebraska - Lincoln
>> _______________________________________________
>> Yale CAS mailing list
>> cas at tp.its.yale.edu <mailto:cas at tp.its.yale.edu>
>> http://tp.its.yale.edu/mailman/listinfo/cas
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Yale CAS mailing list
>> cas at tp.its.yale.edu <mailto:cas at tp.its.yale.edu>
>> http://tp.its.yale.edu/mailman/listinfo/cas
>>
>
>
> _______________________________________________
> Yale CAS mailing list
> cas at tp.its.yale.edu <mailto:cas at tp.its.yale.edu>
> http://tp.its.yale.edu/mailman/listinfo/cas
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Yale CAS mailing list
> cas at tp.its.yale.edu
> http://tp.its.yale.edu/mailman/listinfo/cas
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://tp.its.yale.edu/pipermail/cas/attachments/20061107/15f3ddd2/attachment.html
More information about the cas
mailing list