spring_security.xml文件里面没有语法错误,但是旁边有红叉是怎么回事啊

解决方案 »

  1.   

    其实和这个错误很象:
    http://nassir.javaeye.com/admin/blogs/467058
      

  2.   

    web.xml<?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>mini-web</display-name>
    <!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔
    此参数用于后面的Spring Context Loader -->
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:/applicationContext*.xml</param-value>
    </context-param>

    <!-- SpringSecurity filter-->
    <filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping> <!-- Filter 定义  -->
    <!-- Character Encoding filter -->
    <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
    </init-param>
    </filter> <!-- Hibernate Open Session In View filter-->
    <filter>
    <filter-name>hibernateOpenSessionInViewFilter</filter-name>
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    </filter> <!-- Struts2 filter -->
    <filter>
    <filter-name>struts2CleanupFilter</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
    </filter> <filter>
    <filter-name>struts2Filter</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter> <!-- Filter 映射 -->
    <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping> <filter-mapping>
    <filter-name>hibernateOpenSessionInViewFilter</filter-name>
    <url-pattern>*.action</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>hibernateOpenSessionInViewFilter</filter-name>
    <url-pattern>/j_spring_security_check</url-pattern>
    </filter-mapping> <filter-mapping>
    <filter-name>struts2CleanupFilter</filter-name>
    <url-pattern>*.action</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    </filter-mapping> <filter-mapping>
    <filter-name>struts2Filter</filter-name>
    <url-pattern>*.action</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    </filter-mapping> <!--Spring的ApplicationContext 载入 -->
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener> <!-- Spring 刷新Introspector防止内存泄露 -->
    <listener>
    <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    </listener> <!-- session超时定义,单位为分钟 -->
    <session-config>
    <session-timeout>20</session-timeout>
    </session-config> <!-- 出错页面定义 -->
    <error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/common/500.jsp</location>
    </error-page>
    <error-page>
    <error-code>500</error-code>
    <location>/common/500.jsp</location>
    </error-page>
    <error-page>
    <error-code>404</error-code>
    <location>/common/404.jsp</location>
    </error-page>
    <error-page>
    <error-code>403</error-code>
    <location>/common/403.jsp</location>
    </error-page>
    </web-app>
      

  3.   

    spring_security.xml<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:s="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-2.5.xsd
        http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security-2.0.4.xsd"
    default-autowire="byType" default-lazy-init="true"> <description>SpringSecurity安全配置</description> <!-- http安全配置 -->
    <s:http auto-config="true"
    access-decision-manager-ref="accessDecisionManager">
    <s:form-login login-page="/login1.action" default-target-url="/"
    authentication-failure-url="/login1.action?error=true" />
    <s:logout logout-success-url="/" />
    <s:remember-me key="e37f4b31-0c45-11dd-bd0b-0800200c9a66" />
    </s:http>
    <!-- 认证配置 -->
    <s:authentication-provider user-service-ref="userDetailsService">
    <!-- 可设置hash使用sha1或md5散列密码后再存入数据库 -->
    <s:password-encoder hash="plaintext" />
    </s:authentication-provider> <!-- 项目实现的URL-授权查询服务 -->
    <bean id="resourceDetailsService"
    class="org.springside.service.security.ResourceDetailsServiceImpl" /> <!-- 重新定义的FilterSecurityInterceptor,使用databaseDefinitionSource提供的url-授权关系定义 -->
    <bean id="filterSecurityInterceptor"
    class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
    <s:custom-filter before="FILTER_SECURITY_INTERCEPTOR" />
    <property name="accessDecisionManager"
    ref="accessDecisionManager" />
    <property name="objectDefinitionSource"
    ref="databaseDefinitionSource" />
    </bean> <!-- DefinitionSource工厂,使用resourceDetailsService提供的URL-授权关系. -->
    <bean id="databaseDefinitionSource"
    class="org.springside.modules.security.springsecurity.DefinitionSourceFactoryBean">
    <property name="resourceDetailsService"
    ref="resourceDetailsService" />
    </bean> <!-- 项目实现的用户查询服务 -->
    <bean id="userDetailsService"
    class="org.springside.service.security.UserDetailsServiceImpl" /> <!-- 授权判断配置, 将授权名称的默认前缀由ROLE_改为A_. -->
    <bean id="accessDecisionManager"
    class="org.springframework.security.vote.AffirmativeBased">
    <property name="decisionVoters">
    <list>
    <bean
    class="org.springframework.security.vote.RoleVoter">
    <property name="rolePrefix" value="A_" />
    </bean>
    <bean
    class="org.springframework.security.vote.AuthenticatedVoter" />
    </list>
    </property>
    </bean>
    </beans>
      

  4.   

    <s:http auto-config="true"
    <s:authentication-provider user-service-ref="userDetailsService">
    <s:custom-filter before="FILTER_SECURITY_INTERCEPTOR" />
    这三个前面显示红叉