簡體   English   中英

Spring Security 3.1.1 + Jboss 7錯誤

[英]Spring Security 3.1.1 + Jboss 7 Error

當我嘗試在Jboss上部署使用spring安全性的應用程序時遇到了一些麻煩,錯誤是:

Caused by: java.lang.IllegalArgumentException: A universal match pattern ('/**') is defined  before other patterns in the filter chain, causing them to be ignored. Please check the ordering in your <security:http> namespace or FilterChainProxy bean configuration

這是我的applicationContext-securety.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security" 
    xmlns:beans="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-3.1.xsd
        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">

    <!-- HTTP security configurations -->      
    <!--<global-method-security pre-post-annotations="enabled"/>-->
   <http pattern="/ext/**" security="none" /> 
       <http pattern="/resources/**" security="none" /> 
      <http pattern="/**" security="none" /> 

<http auto-config="true" use-expressions="true" disable-url-rewriting="true" entry-point-ref="tendwebEntryPoint">            
    <!-- Configure these elements to secure URIs in your application -->        
    <intercept-url pattern="/index.jsp" access="isAuthenticated()" /> 
    <!-- Filter -->          
     <custom-filter ref="mockimiAuthenticationFilter" after="FORM_LOGIN_FILTER"/>       
</http>

<authentication-manager alias="authenticationManager" />    

 <beans:bean id="imiAuthenticationFilter" class="com.tend.imi.web.security.imiAuthenticationFilter">
    <beans:property name="tendwebFilter" ref="tendWebFilter" /> 
    <beans:property name="imiUserDetailsService" ref="imiUserDetailsService"/>          
</beans:bean>   

<!-- Filtro de la tendweb -->
<beans:bean id="tendWebFilter" class="Gci.utils.http.LoginFilter" /> 

<beans:bean id="tendwebEntryPoint" class="com.tend.imi.web.security.imiwebEntryPoint" />

<beans:bean id="imiUserDetailsService" class="com.tend.imi.web.security.imiUserDetailsService" />

我在web.xml中使用它

<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>

有誰能夠幫助我? 我搜索了很多,但是沒有用。

這個問題可能加倍。

問題是您說/**對任何用戶都開放,但是隨后您嘗試使用auto-config

根據錯誤代碼,這將導致沖突,因為spring不知道/index.jsp應該對所有用戶開放還是僅對經過身份驗證的用戶開放。

感謝Celius先生的回答。

最后,我解決了我的問題。 錯誤是在web.xml中的contextConfigLocation的聲明中,我有這個:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value>
</context-param>

我不知道為什么,但是Jboss不喜歡使用特殊字符“ *”,我只是更改了此設置,一切正常。

我將這個應用程序部署在了tomcat和weblogic中,但從未發生過……我認為Jboss必須修復它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM