[SPRING] "일치하는 와일드 카드는 엄격하지만 'http'요소에 대한 선언을 찾을 수 없습니다."오류
SPRING"일치하는 와일드 카드는 엄격하지만 'http'요소에 대한 선언을 찾을 수 없습니다."오류
NTLM 인증을 구성하려고하는데 오류가 발생합니다.
비슷한 오류로 많은 주제를 읽었지만 내 문제에 대한 해결책을 찾을 수 없었습니다.
오류를 발생시키는 내 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부터 스프링 시큐리티에는 NTLM 확장이 더 이상 포함되지 않으므로 http://aloiscochard.blogspot.com/2010/03/spring-security-ntlm-3.html 문서에서 사용합니다.
도와주세요.
해결법
-
==============================
1.문제가 해결되어 spring-security-config.jar을 추가하는 것을 잊었다. 또한 일부 설정을 변경했습니다. 올바른 security.xml은 ::
문제가 해결되어 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>
from https://stackoverflow.com/questions/10561579/the-matching-wildcard-is-strict-but-no-declaration-can-be-found-for-element-h by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] HQL 쿼리에서 Hibernate 테이블 매핑 오류가 발생했습니다. (0) | 2019.01.19 |
---|---|
[SPRING] Spring @Async 한계 스레드 수 (0) | 2019.01.18 |
[SPRING] 오류 발생 [javax.persistence.EntityManagerFactory] 유형의 정규 Bean이 정의되지 않았습니다. 예상되는 단일 일치하는 bean이지만 발견 됨 2 (0) | 2019.01.18 |
[SPRING] 자동 와이어 링 및 고유 빈 없음의 문제점 (0) | 2019.01.18 |
[SPRING] Hibernate Validator로 어떻게 메시지 파라미터를 동적으로 해결하나요? (0) | 2019.01.18 |