Spring XML error: Could not resolve placeholder 'cas.server.host'

I am trying to setup my Spring CAS.XML file but I dont know why the file is not seeing the values I have set in the file:

Can someone please tell me what I am getting the following error:

2012-09-10 11:16:00,396 ERROR org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'requestSingleLogoutFilter' defined in ServletContext resource [/WEB-INF/spring/CAS-Local.xml]: Could not resolve placeholder 'cas.server.host'
    at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:209)

if you look I do have the values setup at the end of the file...

Here is my CAS-Local.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:security="http://www.springframework.org/schema/security"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:util="http://www.springframework.org/schema/util"

    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                            http://www.springframework.org/schema/beans/spring-beans.xsd
                            http://www.springframework.org/schema/context 
                            http://www.springframework.org/schema/context/spring-context-3.1.xsd
                            http://www.springframework.org/schema/tx
                            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
                            http://www.springframework.org/schema/jdbc
                            http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
                            http://www.springframework.org/schema/security
                            http://www.springframework.org/schema/security/spring-security-3.1.xsd
                            http://www.springframework.org/schema/util 
                            http://www.springframework.org/schema/util/spring-util-3.1.xsd">


        <security:http entry-point-ref="casEntryPoint"
        use-expressions="true">
        <security:intercept-url pattern="/" access="permitAll" />

        <security:intercept-url pattern="/index.jsp"
            access="permitAll" />
        <security:intercept-url pattern="/cas-logout.jsp"
            access="permitAll" />
        <security:intercept-url pattern="/casfailed.jsp"
            access="permitAll" />

        <security:intercept-url access="hasRole('ROLE_MEMBER_INQUIRY')"
            pattern="/visit**" />

        <security:custom-filter ref="requestSingleLogoutFilter"
            before="LOGOUT_FILTER" />
        <security:custom-filter ref="singleLogoutFilter"
            before="CAS_FILTER" />
        <security:custom-filter ref="casFilter"
            position="CAS_FILTER" />


        <security:logout logout-success-url="/cas-logout.jsp" />
    </security:http>

    <security:authentication-manager alias="authManager">
        <security:authentication-provider
            ref="casAuthProvider" />
    </security:authentication-manager>



    <security:ldap-server id="ldapServer"
        url="ldaps://dvldap01.uftwf.dev:636/dc=uftwf,dc=dev" manager-dn="cn=xxx,dc=uftwf,dc=dev"
        manager-password="xxx" />

    <security:ldap-user-service id="userServiceLDAP"
        server-ref="ldapServer" user-search-base="ou=webusers"
        user-search-filter="(uid={0})" group-search-base="ou=groups"
        group-role-attribute="cn" group-search-filter="(uniqueMember={0})"
        role-prefix="ROLE_" />

    <!-- This filter handles a Single Logout Request from the CAS Server -->
    <bean id="singleLogoutFilter" class="org.jasig.cas.client.session.SingleSignOutFilter" />
    <!-- This filter redirects to the CAS Server to signal Single Logout should 
        be performed -->
    <bean id="requestSingleLogoutFilter"
        class="org.springframework.security.web.authentication.logout.LogoutFilter"
        p:filterProcessesUrl="/j_spring_cas_security_logout">
        <constructor-arg
            value="https://${cas.server.host}/cas-server-webapp/logout" />
        <constructor-arg>
            <bean
                class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler" />
        </constructor-arg>
    </bean>

    <bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties"
        p:service="http://wcmisdlin07.uftmasterad.org:8080/SchoolVisitLocked/j_spring_cas_security_check"
        p:authenticateAllArtifacts="true" />

    <bean id="casEntryPoint"
        class="org.springframework.security.cas.web.CasAuthenticationEntryPoint"
        p:serviceProperties-ref="serviceProperties"
        p:loginUrl="https://6dvews01.uftwf.dev:8443/cas-server-webapp/login" />

    <bean id="casFilter"
        class="org.springframework.security.cas.web.CasAuthenticationFilter"
        p:authenticationManager-ref="authManager" p:serviceProperties-ref="serviceProperties"
        p:proxyGrantingTicketStorage-ref="pgtStorage"
        p:proxyReceptorUrl="/j_spring_cas_security_proxyreceptor">
        <property name="authenticationDetailsSource">
            <bean
                class="org.springframework.security.cas.web.authentication.ServiceAuthenticationDetailsSource" />
        </property>

        <property name="authenticationFailureHandler">
            <bean
                class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler"
                p:defaultFailureUrl="/casfailed.jsp" />
        </property>


        <property name="authenticationSuccessHandler">
            <bean
                class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler"
                p:defaultTargetUrl="/visit" />
        </property>
    </bean>
    <!-- NOTE: In a real application you should not use an in memory implementation. 
        You will also want to ensure to clean up expired tickets by calling ProxyGrantingTicketStorage.cleanup() -->
    <bean id="pgtStorage"
        class="org.jasig.cas.client.proxy.ProxyGrantingTicketStorageImpl" />
    <bean id="casAuthProvider"
        class="org.springframework.security.cas.authentication.CasAuthenticationProvider"
        p:serviceProperties-ref="serviceProperties" p:key="casAuthProviderKey">
        <property name="authenticationUserDetailsService">
            <bean
                class="org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper">
                <constructor-arg ref="userServiceLDAP" />
            </bean>
        </property>



        <property name="ticketValidator">
            <bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
                <constructor-arg index="0"
                    value="https://6dvews01.uftwf.dev:8443/cas-server-webapp" />
            </bean>
        </property>
    </bean>

    <!-- Configuration for the environment can be overriden by system properties -->
    <context:property-placeholder
        system-properties-mode="OVERRIDE" properties-ref="environment" />

    <util:properties id="environment">
        <prop key="cas.service.host">wcmisdlin07.uftmasterad.org:8443</prop>
        <prop key="cas.server.host">6dvews01.uftwf.dev:8443</prop>
    </util:properties>
</beans>

Answers


you use placeholders for properties like "${cas.server.host}" which must be defined in a property file and resolved by spring. create a new property file "your.properties" in your classpath and add this into your context:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
    <value>your.properties</value>
</property>
</bean>

your.properties:

cas.server.host=http://localhost/abc


Need Your Help

getting a total value of array over a loop, python

python numpy

I have a loop which generates an array from a text file. Every time it passes through the loop I want it to add the new array to the old one but I'm not sure how to do this. For example:

NoClassDefFoundError when using URLClassLoader

java noclassdeffounderror urlclassloader

I am trying to make a plugin storage where my java code downloads the existing jars in the storage dynamically at run time . I implemented an interface which should be implemented by each plugin.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.