Registered Services and Themes
Scott Battaglia
scott_battaglia at rutgers.edu
Thu Jun 8 17:38:57 EDT 2006
Michael,
You would probably need to implement your own ViewResolver. That's just
a guess on my part as I've never tried it before (I generally use themes).
-Scott
Michael Olson wrote:
> Hi Scott,
>
> Thanks for the reply. It seems I greatly misspoke when I used the
> word "theme". The word I should have used was "view". Is there a way
> to control which view is used based on the current service? I looked
> through the ViewResolver interface and a handful of the implementations
> and did not see any way to do this.
>
>
> Thanks
> Mike
>
> ------------------
> Mike Olson
> <A HREF="http://www.spitfiregroup.com/">The Spitfire Group</A>
> Senior Technology Specialist
> ph: 303-532-0984
>
> -----Original Message-----
> From: cas-bounces at tp.its.yale.edu [mailto:cas-bounces at tp.its.yale.edu]
> On Behalf Of Scott Battaglia
> Sent: Saturday, June 03, 2006 12:36 AM
> To: Yale CAS mailing list
> Subject: Re: Registered Services and Themes
>
> Michael,
>
> Generally with the themes you have one set of views and then within the
> views, anything that is "theme" specific is written using the Spring
> theme tag
> (http://static.springframework.org/spring/docs/1.2.x/taglib/tag/ThemeTag
> .html).
>
> i.e.
> <spring:theme code="css_file" />
>
> You would also need to register this within your applicationContext:
> org.jasig.cas.services.web.ServiceThemeResolver
>
> Check this out for more information:
> http://static.springframework.org/spring/docs/2.0.x/reference/mvc.html#m
> vc-themeresolver
>
> Hope that helps!
> -Scott
>
> Scott Battaglia
> Application Developer, Architecture & Engineering Team
> Enterprise Systems and Services, Rutgers University
> v: 732.445.0097 | f: 732.445.5493 | scott_battaglia at rutgers.edu
>
>
>
> Michael Olson wrote:
>
>> Hello,
>>
>> I'm new to CAS but like what I have found so far. I'm trying to add it
>>
>
>
>> to an existing project. This project has a finite set of initial
>> access URLs. The URL controls what login screen the user sees as well
>> as how the user is authenticated. With what I have read and what I
>> have seen in the code, it seems a set of registered services is the
>> best way to accomplish the first goal using the "theme" member on the
>> RegisteredService. What I have been able to accomplish is to modify
>> web.xml and services.xml. Then using the yale client filter to access
>> my site I can get redirected to /login?service=accessURL. The CAS
>> server logs show that it does find the list of registered services.
>> Here is an example of one of my registered services
>>
>> <bean id="registeredService1"
>> class="org.jasig.cas.services.RegisteredService">
>>
>> <constructor-arg
>>
>>
> index="0"><value>http://localhost/LoginDemo/LoginURL1.html</value></cons
> tructor-arg>
>
>> <constructor-arg index="1"><value>true</value></constructor-arg>
>>
>> <constructor-arg index="2"><value>true</value></constructor-arg>
>>
>> <constructor-arg index="3"><value>theme1</value></constructor-arg>
>>
>> <constructor-arg
>>
>>
> index="4"><value>http://localhost/LoginDemo/LoginURL1.html</value></cons
> tructor-arg>
>
>> </bean>
>>
>> This is about as far as I can get. Every request goes to the default
>> theme, always. To implement the themes I have done the following:
>>
>> 1) Copied the default theme into sibling sub directories with names
>> such as theme1, theme2, etc. I made slight modifications to the login
>> screen so I would know which theme I am logging into
>>
>> 2) Added property files to WEB-INF/classes with names like
>> theme1_views.properties. These are copies of the
>> simple_views.properties with the URL links appropriately changed.
>> Example from theme2_views.properties:
>> casLoginView.url=/WEB-INF/view/jsp/theme2/ui/casLoginView.jsp
>>
>> 3) Modified the bean definition of viewResolver to include these new
>> base names. New definition is:
>>
>> a. <bean
>>
>> b. id="viewResolver"
>>
>> c.
>>
>>
> class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
>
>> d. <property
>>
>> e. name="basenames">
>>
>> f. <list>
>>
>> g. <value>default_views</value>
>>
>> h. <value>theme1_views</value>
>>
>> i. <value>theme2_views</value>
>>
>> j. </list>
>>
>> k. </property>
>>
>> l. <property
>>
>> m. name="order"
>>
>> n. value="0" />
>>
>> o. </bean>
>>
>> Then I try to access my URL again and am sent to the default login
>>
> page.
>
>> Here is the URL I get redirected to:
>>
>>
>>
> http://localhost:8084/cas/login?service=http%3A%2F%2Flocalhost%2FLoginDe
> mo%2FLoginURL1.html
>
>> Any help would be greatly appreciated.
>>
>> Here is a snippet from the log file.
>>
>> 2006-06-02 09:43:12,786 INFO
>> [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] -
>>
>
>
>> <Starting cleaning of expired tickets from ticket registry at [Fri Jun
>>
>
>
>> 02 09:43:12 MDT 2006]>
>>
>> 2006-06-02 09:43:12,786 INFO
>> [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] -
>>
>
>
>> <0 found to be removed. Removing now.>
>>
>> 2006-06-02 09:43:12,786 INFO
>> [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] -
>>
>
>
>> <Finished cleaning of expired tickets from ticket registry at [Fri Jun
>>
>
>
>> 02 09:43:12 MDT 2006]>
>>
>> 2006-06-02 09:43:13,114 INFO
>>
>>
> [org.jasig.cas.services.support.SpringApplicationContextServiceRegistryR
> eloader]
>
>> - <Checking if service list changed since last reload.>
>>
>> 2006-06-02 09:43:13,114 INFO
>>
>>
> [org.jasig.cas.services.support.SpringApplicationContextServiceRegistryR
> eloader]
>
>> - <Last modified time changed on services.xml. File most likely
>> modified. Regenerating ServiceRegistry.>
>>
>> 2006-06-02 09:43:13,114 INFO
>> [org.springframework.beans.factory.support.DefaultListableBeanFactory]
>>
>
>
>> - <Destroying singletons in factory
>> {org.springframework.beans.factory.support.DefaultListableBeanFactory
>> defining beans [registeredService1,registeredService2]; root of
>> BeanFactory hierarchy}>
>>
>> 2006-06-02 09:43:13,145 INFO
>> [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] -
>> <Loading XML bean definitions from class path resource [services.xml]>
>>
>> 2006-06-02 09:43:13,161 INFO
>> [org.springframework.context.support.ClassPathXmlApplicationContext] -
>>
>
>
>> <Bean factory for application context
>>
>>
> [org.springframework.context.support.ClassPathXmlApplicationContext;hash
> Code=12514145]:
>
>> org.springframework.beans.factory.support.DefaultListableBeanFactory
>> defining beans [registeredService1,registeredService2]; root of
>> BeanFactory hierarchy>
>>
>> 2006-06-02 09:43:13,254 INFO
>> [org.springframework.context.support.ClassPathXmlApplicationContext] -
>>
>
>
>> <2 beans defined in application context
>>
>>
> [org.springframework.context.support.ClassPathXmlApplicationContext;hash
> Code=12514145]>
>
>> 2006-06-02 09:43:13,254 INFO
>> [org.springframework.context.support.ClassPathXmlApplicationContext] -
>>
>
>
>> <Unable to locate MessageSource with name 'messageSource': using
>> default
>> [org.springframework.context.support.DelegatingMessageSource at bafdff]>
>>
>> 2006-06-02 09:43:13,254 INFO
>> [org.springframework.context.support.ClassPathXmlApplicationContext] -
>>
>
>
>> <Unable to locate ApplicationEventMulticaster with name
>> 'applicationEventMulticaster': using default
>>
>>
> [org.springframework.context.event.SimpleApplicationEventMulticaster at 798
> 01c]>
>
>> 2006-06-02 09:43:13,364 INFO
>> [org.springframework.beans.factory.support.DefaultListableBeanFactory]
>>
>
>
>> - <Pre-instantiating singletons in factory
>> [org.springframework.beans.factory.support.DefaultListableBeanFactory
>> defining beans [registeredService1,registeredService2]; root of
>> BeanFactory hierarchy]>
>>
>> 2006-06-02 09:43:13,364 DEBUG
>>
>>
> [org.jasig.cas.services.support.SpringApplicationContextServiceRegistryR
> eloader]
>
>> - <Clearing out previous ServiceRegistry entries.>
>>
>> 2006-06-02 09:43:13,364 DEBUG
>> [org.jasig.cas.services.DefaultServiceRegistry] - <Clearing all
>> entries from Service Registry>
>>
>> 2006-06-02 09:43:13,473 DEBUG
>>
>>
> [org.jasig.cas.services.support.SpringApplicationContextServiceRegistryR
> eloader]
>
>> - <Adding [http://localhost/LoginDemo/LoginURL1.html] to
>>
> ServiceRegistry>
>
>> 2006-06-02 09:43:13,473 DEBUG
>> [org.jasig.cas.services.DefaultServiceRegistry] - <Adding service
>> [http://localhost/LoginDemo/LoginURL1.html] to serviceRegistry>
>>
>> 2006-06-02 09:43:13,473 DEBUG
>>
>>
> [org.jasig.cas.services.support.SpringApplicationContextServiceRegistryR
> eloader]
>
>> - <Adding [http://localhost/LoginDemo/LoginURL2.html] to
>>
> ServiceRegistry>
>
>> 2006-06-02 09:43:13,583 DEBUG
>> [org.jasig.cas.services.DefaultServiceRegistry] - <Adding service
>> [http://localhost/LoginDemo/LoginURL2.html] to serviceRegistry>
>>
>> 2006-06-02 09:44:21,926 DEBUG
>> [org.jasig.cas.web.flow.TicketGrantingTicketExistsAction] - <Action
>> 'org.jasig.cas.web.flow.TicketGrantingTicketExistsAction' beginning
>> execution>
>>
>> 2006-06-02 09:44:21,989 DEBUG
>> [org.jasig.cas.web.flow.TicketGrantingTicketExistsAction] - <Action
>> 'org.jasig.cas.web.flow.TicketGrantingTicketExistsAction' completed
>> execution; result event is [Event at 1127b52 source =
>> org.jasig.cas.web.flow.TicketGrantingTicketExistsAction at 5e7020, id =
>> 'noTicketGrantingTicketExists', stateId = [null], parameters =
>>
> [null]]>
>
>> 2006-06-02 09:44:21,989 DEBUG
>> [org.jasig.cas.web.flow.GatewayRequestCheckAction] - <Action
>> 'org.jasig.cas.web.flow.GatewayRequestCheckAction' beginning
>>
> execution>
>
>> 2006-06-02 09:44:21,989 DEBUG
>> [org.jasig.cas.web.flow.GatewayRequestCheckAction] - <Action
>> 'org.jasig.cas.web.flow.GatewayRequestCheckAction' completed
>> execution; result event is [Event at 16b904d source =
>> org.jasig.cas.web.flow.GatewayRequestCheckAction at cec78d, id =
>> 'authenticationRequired', stateId = [null], parameters = [null]]>
>>
>> 2006-06-02 09:44:22,051 INFO
>> [org.springframework.web.context.support.GenericWebApplicationContext]
>>
>
>
>> - <11 beans defined in application context
>>
>>
> [org.springframework.web.context.support.GenericWebApplicationContext;ha
> shCode=28169315]>
>
>> 2006-06-02 09:44:22,051 INFO
>> [org.springframework.web.context.support.GenericWebApplicationContext]
>>
>
>
>> - <Unable to locate MessageSource with name 'messageSource': using
>> default
>> [org.springframework.context.support.DelegatingMessageSource at 498713]>
>>
>> 2006-06-02 09:44:22,051 INFO
>> [org.springframework.web.context.support.GenericWebApplicationContext]
>>
>
>
>> - <Unable to locate ApplicationEventMulticaster with name
>> 'applicationEventMulticaster': using default
>>
>>
> [org.springframework.context.event.SimpleApplicationEventMulticaster at 143
> 23d5]>
>
>> 2006-06-02 09:44:22,114 INFO
>> [org.springframework.ui.context.support.UiApplicationContextUtils] -
>> <Unable to locate ThemeSource with name 'themeSource': using default
>> [org.springframework.ui.context.support.DelegatingThemeSource at e580e1]>
>>
>> 2006-06-02 09:44:22,114 INFO
>> [org.springframework.beans.factory.support.DefaultListableBeanFactory]
>>
>
>
>> - <Pre-instantiating singletons in factory
>> [org.springframework.beans.factory.support.DefaultListableBeanFactory
>> defining beans
>>
>>
> [serviceErrorView,casLoginView,casServiceFailureView,casLogoutView,casLo
> ginConfirmView,casProxySuccessView,casLoginGenericSuccessView,cas1Servic
> eSuccessView,casServiceSuccessView,casProxyFailureView,cas1ServiceFailur
> eView];
>
>> parent:
>> org.springframework.beans.factory.support.DefaultListableBeanFactory
>> defining beans
>>
>>
> [themeResolver,viewResolver,localeResolver,localeChangeInterceptor,urlBa
> sedViewResolver,errorHandlerResolver,loginFlow,handlerMappingA,handlerMa
> ppingB,loginController,proxyValidateController,serviceValidateController
> ,legacyValidateController,proxyController,logoutController,simpleMapping
> HandlerExceptionResolver,abstractLoginAction,abstractCasLoginAction,auth
> enticationViaFormAction,gatewayRequestCheckAction,generateServiceTicketA
> ction,hasServiceCheckAction,renewRequestCheckAction,sendTicketGrantingTi
> cketAction,ticketGrantingTicketExistsAction,warnAction,warnCookieGenerat
> or,ticketGrantingTicketCookieGenerator];
>
>> parent:
>> org.springframework.beans.factory.support.DefaultListableBeanFactory
>> defining beans
>>
>>
> [messageSource,ticketGrantingTicketUniqueIdGenerator,serviceTicketUnique
> IdGenerator,serviceTicketExpirationPolicy,grantingTicketExpirationPolicy
> ,centralAuthenticationService,proxy10Handler,ticketRegistry,ticketRegist
> ryCleaner,jobDetailTicketRegistryCleaner,triggerJobDetailTicketRegistryC
> leaner,scheduler,advisorAutoProxyCreator,authenticationManager,serviceRe
> gistry,serviceAllowedMethodBeforeAdvice,serviceRequiresAuthenticationMet
> hodBeforeAdvice,serviceAllowedToProxyMethodBeforeAdvice,serviceAllowedMe
> thodBeforeAdviceAdvisor,serviceRequiresAuthenticationMethodBeforeAdviceA
> dvisor,serviceAllowedToProxyMethodBeforeAdviceAdvisor,serviceRegistryJob
> ,jobDetailServiceRegistry,triggerJobDetailServiceRegistry,scheduler2];
>
>> root of BeanFactory hierarchy]>
>>
>> 2006-06-02 09:44:25,473 INFO
>> [org.springframework.ui.context.support.ResourceBundleThemeSource] -
>> <Theme created: name 'default', basename [default]>
>>
>> 2006-06-02 09:44:25,489 INFO
>> [org.springframework.web.util.ExpressionEvaluationUtils] - <Using JSP
>> 2.0 ExpressionEvaluator>
>>
>>
>>
> ------------------------------------------------------------------------
>
>> _______________________________________________
>> Yale CAS mailing list
>> 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
>
> _______________________________________________
> Yale CAS mailing list
> cas at tp.its.yale.edu
> http://tp.its.yale.edu/mailman/listinfo/cas
>
More information about the cas
mailing list