使用名称' org.springframework.security.filterChains'创建bean时出现Spring Security错误

时间:2015-09-30 14:31:22

标签: java angularjs spring twitter-bootstrap spring-mvc

离开编程一段时间后,我正在尝试Angular Twitter Bootstrap Spring MVC, Data and Security的教程(用葡萄牙语写的)。

eclipse上的所有错误都得到纠正,一切似乎都很好,但是当我尝试用

运行它时
  

mvn clean install tomcat7:运行

我得到常规控制台输出和以下错误。我在调试时非常生气。

[ERROR] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#0' while setting bean property 'sourceList' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot resolve reference to bean 'org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0' while setting constructor argument with key [9]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Unsupported configuration attributes: [isAuthenticated(), permitAll]

我的spring-jpa.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:mvc="http://www.springframework.org/schema/mvc"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:jee="http://www.springframework.org/schema/jee"
   xmlns:jpa="http://www.springframework.org/schema/data/jpa"
   xmlns:tx="http://www.springframework.org/schema/tx"
   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.xsd
                       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
                       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
                       http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
                       http://www.springframework.org/schema/context http://www.springframework.org/schema/task/spring-context.xsd">

<!-- JPA Configurations -->
<jee:jndi-lookup id="myContactDataSource" jndi-name="jdbc/tomcatDataSource" lookup-on-startup="false"
                 proxy-interface="javax.sql.DataSource"/>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"/>

<tx:annotation-driven transaction-manager="transactionManager"/>

<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence"/>
    <property name="dataSource" ref="myContactDataSource"/>
    <property name="persistenceUnitName" value="debtsPU"/>
    <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />

</bean>

<!-- Spring Data -->
<jpa:repositories base-package="br.com.biologistica.debt.repository"
                  entity-manager-factory-ref="entityManagerFactory"
                  transaction-manager-ref="transactionManager"/>

我的春天安全是:

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

<security:global-method-security secured-annotations="enabled" />
   <security:http auto-config="true">
    <security:intercept-url pattern="/" access="permitAll" />
    <security:intercept-url pattern="/protected/**" access="isAuthenticated()" />

    <security:form-login login-page="/login" authentication-failure-url="/login?error=403" default-target-url="/protected/home" />

    <security:logout invalidate-session="true" logout-success-url="/login" logout-url="/logout" />
</security:http>
<security:authentication-manager>
    <security:authentication-provider>
        <security:jdbc-user-service
                data-source-ref="myContactDataSource"
                users-by-username-query="select email, password, enabled from system_user where email = ?"
                authorities-by-username-query="select u.email as login, u.user_role as role from system_user u where u.email = ?" />
    </security:authentication-provider>
</security:authentication-manager>
</beans>

数据库是PostgreSQL。

这里似乎有什么问题?

提前致谢,

gtludwig

1 个答案:

答案 0 :(得分:1)

this帖子中所述,请使用<http auto-config="true" use-expressions="true">