deployerConfigContext.xml无效

时间:2017-03-08 09:05:28

标签: spring maven cas

我尝试使用https://github.com/apereo/cas-overlay-template启动并运行CAS服务器作为辅助项目(我是学生),但我以前从未使用过maven或spring。

我试图将自己的IPersonAttributeDao挂钩到CAS服务器中。但是,当我将deployerConfigContext.xml放在src/main/webapp/WEB-INF/下时,当我重新打包(使用构建脚本)并部署到tomcat8时,实际上没有任何改变。 (是的,我确实重启了tomcat)。

在我的deployerConfigContent.xml文件的内容下面

<?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:p="http://www.springframework.org/schema/p"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:sec="http://www.springframework.org/schema/security"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
       http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">

    <bean id="authenticationManager" class="org.jasig.cas.authentication.AuthenticationManagerImpl">
        <property name="credentialsToPrincipalResolvers">
            <list>
                <bean id="primaryPrincipalResolver"
                      class="org.jasig.cas.authentication.principal.PersonDirectoryPrincipalResolver">
                    <property name="attributeRepository" ref="attributeRepository"/>
                </bean>
                <bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver">
                    <property name="attributeRepository" ref="attributeRepository"/>
                </bean>

                <bean class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver">
                    <property name="attributeRepository" ref="attributeRepository"/>
                </bean>
            </list>
        </property>
        <property name="authenticationHandlers">
            <list>
                <bean id="primaryAuthenticationHandler"
                      class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
                    <property name="users">
                        <map>
                            <!-- Login stays the default casuser:Mellon, no idea why -->
                            <entry key="test" value="1234"/>
                        </map>
                    </property>
                </bean>
                <!-- DO NOT EVER PUT THIS BEAN IN PRODUCTION!!! -->
                <bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"/>
            </list>
        </property>
    </bean>

   <!-- <bean id="attributeRepository" class="class.i.am.trying.to.hook.in">
    </bean>-->

    <!-- This doesn't seem to work -->
    <bean id="attributeRepository"
          class="org.jasig.services.persondir.support.StubPersonAttributeDao">
        <property name="backingMap">
            <map>
                <entry key="uid" value="uid" />
                <entry key="eduPersonAffiliation" value="eduPersonAffiliation" />
                <entry key="groupMembership" value="groupMembership" />
            </map>
        </property>
    </bean>
</beans>

我错过了什么?

更新:

我重读了文档(https://apereo.github.io/cas/5.0.x/),发现deployerConfigContext.xml应该在resources中,而不是在webapp/WEB-INF中,就像我在互联网上找到的那样。我移动它,现在我终于在日志中出现错误(这意味着正在读取文件)。

以下错误:

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.jasig.cas.authentication.PolicyBasedAuthenticationManager] for bean with name 'authenticationManager' defined in class path resource [deployerConfigContext.xml]

我在文档中找到了对PolicyBasedAuthenticationManager的引用,但尝试了同样的错误(使用了其他类名)。

1 个答案:

答案 0 :(得分:0)

  

必须在bean归档中部署已启用Bean的Bean类。

     

库jar,EJB jar,应用程序客户端jar或rar存档是一个   bean存档,如果它在META-INF中有一个名为beans.xml的文件   目录。战争的WEB-INF / classes目录是一个bean归档文件   在战争的WEB-INF目录中有一个名为beans.xml的文件。一个   JVM类路径中的目录是一个bean归档,如果它有一个文件   在META-INF目录中命名为beans.xml。

一个建议,如果你使用的是Spring,你也可以设置@Annotation来定义bean。