zealot01 2016-04-27 08:49 采纳率: 0%
浏览 3312

配置Spring-Security报错,找不到元素 'b:beans' 的声明

Spring新手,现在想在SpringMVC的基础上使用Spring Security框架。但Spring Security配置报错,困扰了很久。先上代码

 <?xml version="1.0" encoding="UTF-8"?>

<b:beans xmlns="http://www.springframework.org/schema/security" 
        xmlns:b="http://www.springframework.org/schema/beans" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        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-3.1.xsd">

报错

 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 9 in XML document from class path resource [config/spring-security.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 99; cvc-elt.1: 找不到元素 'b:beans' 的声明。

尝试网上的方法,加入

 <!DOCTYPE b:beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

则报错

 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 9 in XML document from class path resource [config/spring-security.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 99; 必须声明元素类型 "b:beans"。

请指教

  • 写回答

1条回答 默认 最新

  • weixin_36038654 2016-11-02 13:51
    关注

    <?xml version="1.0" encoding="UTF-8"?>
    xmlns:security="http://www.springframework.org/schema/security"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security-3.1.xsd">

    <security:http auto-config='true'>
    
    <curity:http>
    <security:http auto-config="true" use-expressions="false" 
        access-denied-page="/login.jsp">
    
        <security:form-login login-page="/login.jsp"
            authentication-failure-url="/login.jsp?error=true"
            authentication-success-handler-ref="loginSuccessHandler"
            always-use-default-target="true" />
        <security:logout logout-url="/logout" logout-success-url="/login.jsp"/>
        <security:session-management>
            <security:concurrency-control
                max-sessions="1" error-if-maximum-exceeded="false" expired-url="/login.jsp?error=islogin"><curity:concurrency-control>
        <curity:session-management>
    
        <security:intercept-url pattern="rvices/**"
            access="IS_AUTHENTICATED_FULLY"><curity:intercept-url>
        <security:intercept-url pattern="/jsp/*.jsp"
            access="IS_AUTHENTICATED_FULLY"><curity:intercept-url>
        <security:custom-filter ref="myFilter"
            before="FILTER_SECURITY_INTERCEPTOR" />
    
    <curity:http>
    
    <security:authentication-manager alias="authenticationManager">
        <security:authentication-provider
            user-service-ref="myUserDetailService">
        <curity:authentication-provider>
    <curity:authentication-manager>
    
    <bean id="loginSuccessHandler" class="com.springsecurity.handler.LoginSuccessHandler">
        <property name="jdbcService" ref="jdbcService" />
    </bean>
    
    <bean id="myFilter" class="com.springsecurity.filter.MyFilterSecurityInterceptor">
        <property name="authenticationManager" ref="authenticationManager" />
        <property name="accessDecisionManager" ref="myAccessDecisionManagerBean" />
        <property name="securityMetadataSource" ref="mySecurityMetadataSource" />
    </bean>
    <bean id="myUserDetailService" class="com.springsecurity.handler.MyUserDetailService">
        <property name="userDao" ref="userDao" />
        <property name="jdbcService" ref="jdbcService" />
    </bean>
    
    <bean id="myAccessDecisionManagerBean" class="com.springsecurity.filter.MyAccessDecisionManager">
        <property name="myInvocationSecurityMetadataSource" ref="mySecurityMetadataSource" />
    </bean>
    
    <bean id="mySecurityMetadataSource"
        class="com.springsecurity.filter.MyInvocationSecurityMetadataSource">
        <constructor-arg>
            <ref bean="roleDao" />
        </constructor-arg>
    </bean>
    

    改成这种即可解决。

    评论

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?