2012-05-12 19 views
15

私はNTLM認証を設定しようとしていますが、エラーが表示されます。私は話題をたくさん読ん 「マッチングのワイルドカードは厳しいですが、何の宣言は、要素 『HTTP』のため見つからない」エラー

cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'http'.

同様のエラーが、私の問題の解決策を見つけることができませんでした。エラーが発生し

私のsecurity.xmlファイルは次のとおりです。

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

    <http access-denied-page="forms/error403.jsp" entry-point-ref="ntlmEntryPoint" servlet-api-provision="false"> 
     <intercept-url pattern="forms/error403.jsp" filters="none"/> 
     <intercept-url pattern="forms/**" access="ROLE_GUEST,ROLE_OPERATOR,ROLE_ADMIN" /> 
       <custom-filter position="PRE_AUTH_FILTER"/> 
    </http> 

    <authentication-manager alias="mainAuthenticationManager"/> 
    <authentication-provider user-service-ref='userDetailsService' /> 

    <beans:bean id="userDetailsService" 
     class="service.UserInfoService"> 
     <beans:property name="dataSource" ref="dataSource" /> 
     <beans:property name="usersByUsernameQuery" value="select distinct name, ' ' as password, 1 as enabled from TMP_SPRING_USERS where name=?" /> 
     <beans:property name="authoritiesByUsernameQuery" value="select name, role from TMP_SPRING_USERS where name=?" /> 
    </beans:bean> 

    <beans:bean id="ntlmEntryPoint" 
     class="org.springframework.security.ui.ntlm.NtlmProcessingFilterEntryPoint"> 
     <beans:property name="authenticationFailureUrl" value="forms/error403.html" /> 
    </beans:bean> 

    <beans:bean id="exceptionTranslationFilter" 
     class="org.springframework.security.ui.ExceptionTranslationFilter"> 
     <beans:property name="authenticationEntryPoint" ref="ntlmEntryPoint" /> 
    </beans:bean> 

    <beans:bean id="ntlmFilter" 
     class="org.springframework.security.ui.ntlm.NtlmProcessingFilter"> 
     <custom-filter position="NTLM_FILTER" /> 
     <beans:property name="authenticationManager" ref="mainAuthenticationManager" /> 
     <beans:property name="retryOnAuthFailure" value="true" /> 
     <beans:property name="stripDomain" value="true"/> 
     <beans:property name="domainController" value="company.com" /> 
     <beans:property name="jcifsProperties"> 
      <beans:props> 
       <beans:prop key="jcifs.smb.lmCompatibility">0</beans:prop> 
       <beans:prop key="jcifs.smb.client.useExtendedSecurity">false</beans:prop> 
       <beans:prop key="jcifs.smb.client.domain">COMPANY</beans:prop> 
       <beans:prop key="jcifs.smb.client.username">somenycuser</beans:prop> 
       <beans:prop key="jcifs.smb.client.password">AReallyLoooongRandomPassword</beans:prop> 
      </beans:props> 
     </beans:property> 
    </beans:bean> 


</beans:beans> 

バージョン3.X春のセキュリティは、私がhttp://aloiscochard.blogspot.com/2010/03/spring-security-ntlm-3.html記事から、それを使用し、もはやNTLM拡張子が含まれていないため、のよう。

私を助けてください。

答えて

10

問題が解決しました。私はspring-security-config.jarを追加するのを忘れていました。また、いくつかの設定を変更しました。正しいsecurity.xmlは::

<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.0.xsd 
          http://www.springframework.org/schema/security 
          http://www.springframework.org/schema/security/spring-security-3.0.4.xsd" > 

    <http access-denied-page="forms/error403.jsp" entry-point-ref="ntlmEntryPoint" servlet-api-provision="false"> 
       <intercept-url pattern="/**" access="ROLE_GUEST,ROLE_OPERATOR,ROLE_ADMIN" /> 
       <custom-filter position="PRE_AUTH_FILTER" ref="ntlmFilter"/> 
     </http> 

    <authentication-manager alias="mainAuthenticationManager"> 
      <authentication-provider user-service-ref="userDetailsService" /> 
     </authentication-manager> 

    <beans:bean id="userDetailsService" 
     class="service.UserInfoService"> 
     <beans:property name="dataSource" ref="dataSource" /> 
     <beans:property name="usersByUsernameQuery" value="select distinct name, ' ' as password, 1 as enabled from TMP_SPRING_USERS where name=?" /> 
     <beans:property name="authoritiesByUsernameQuery" value="select name, role from TMP_SPRING_USERS where name=?" /> 
    </beans:bean> 

    <beans:bean id="ntlmEntryPoint" 
     class="org.springframework.security.ui.ntlm.NtlmAuthenticationFilterEntryPoint"> 
     <beans:property name="authenticationFailureUrl" value="forms/error403.html" /> 
    </beans:bean> 



    <beans:bean id="ntlmFilter" 
     class="org.springframework.security.ui.ntlm.NtlmAuthenticationFilter"> 
       <beans:property name="authenticationManager" ref="mainAuthenticationManager" /> 
     <beans:property name="retryOnAuthFailure" value="true" /> 
     <beans:property name="stripDomain" value="true"/> 
     <beans:property name="domainController" value="company.com" /> 
     <beans:property name="jcifsProperties"> 
      <beans:props> 
       <beans:prop key="jcifs.smb.lmCompatibility">0</beans:prop> 
       <beans:prop key="jcifs.smb.client.useExtendedSecurity">false</beans:prop> 
       <beans:prop key="jcifs.smb.client.domain">COMPANY</beans:prop> 
       <beans:prop key="jcifs.smb.client.username">somenycuser</beans:prop> 
       <beans:prop key="jcifs.smb.client.password">AReallyLoooongRandomPassword</beans:prop> 
      </beans:props> 
     </beans:property> 
    </beans:bean> 


</beans:beans> 
です。