2010-02-16 6 views
3

스프링 애플 리케이션에서 스프링 보안 2.5를 사용하려고하는데 구성 문제가 발생했습니다. 나는 몇 가지 예를 따라하고 그들이하는 일을 해왔지만, 내가 설정 한 다른 것이 문제를 일으키는 것 같아요. 여기 스프링 MVC 애플리케이션에서 스프링 보안 활성화

내 web.xml에 있습니다 : 내 보안의 context.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5"> 
<display-name>onBoardingUI</display-name> 


<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/security-context.xml 
    </param-value> 
</context-param> 

<!-- Enables Spring security --> 
<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> 

<listener> 
    <listener-class>org.apache.commons.fileupload.servlet.FileCleanerCleanup</listener-class> 
</listener> 

<servlet> 
    <servlet-name>testUI</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>testUI</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>testUI</servlet-name> 
    <url-pattern>*.form</url-pattern> 
</servlet-mapping> 

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

<jsp-config> 
    <taglib> 
     <taglib-uri>/spring</taglib-uri> 
     <taglib-location>/WEB-INF/tld/spring-form.tld</taglib-location> 
    </taglib> 
</jsp-config> 

하고 여기

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

<security:global-method-security 
    secured-annotations="enabled" /> 

<security:http auto-config="true"> 
    <!-- Restrict URLs based on role --> 
    <security:intercept-url pattern="/login*" 
     access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <security:intercept-url pattern="/logoutSuccess*" 
     access="IS_AUTHENTICATED_ANONYMOUSLY" /> 

    <security:intercept-url pattern="/css/main.css" 
     access="IS_AUTHENTICATED_ANONYMOUSLY" /> 

    <security:intercept-url pattern="/**" access="ROLE_USER" /> 

    <!-- Override default login and logout pages --> 
    <security:form-login login-page="/login.html" 
     login-processing-url="/login.html" default-target-url="/index.jsp" 
     authentication-failure-url="/login.jsp?login_error=1" /> 
    <security:logout logout-url="/logout" 
     logout-success-url="/login.html" /> 
</security:http> 

<security:authentication-provider> 
    <security:jdbc-user-service 
     data-source-ref="dataSource" /> 


</security:authentication-provider> 

전쟁 배포 실패

이있다 모든 로그에 있습니다 :

Feb 16, 2010 11:46:29 AM org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 

이것은 분명히 내 청취자가 실패하게 만드는 원인이지만, 나는 이유를 모르겠습니다.

이것은 Spring Security 2.5와 함께 Tomcat 6.0.20과 Spring MVC 2.5에 배포 중이다.

+2

봐 (표준 출력의 *의 .LOG, 표준 에러 * .LOG, 로컬 호스트 * .LOG) – axtavt

+0

언급 한 바와 같이 네 위의 더 로깅 정보를 사용할 수있을 것이다. log4j 또는 webapp 용으로 구성 했습니까? org.springframework에 대한 DEBUG 로그 임계 값을 설정하고 모든 것을 콘솔에 버리십시오. 또한 (아마도 이것은 깨지기 쉬운 것은 아니지만) 당신은 2.0 스프링 보안 XSD를 사용하고 있습니다. –

답변

2

'datasource'bean이 security-context.xml 파일에 정의되지 않았습니까?

security-context.xml이 WAR 내부의 올바른 위치에 있는지 확인하십시오. web.xml은 /WEB-INF/security-context.xml에 있어야합니다. - tomcat의 분해 된 디렉토리를 확인하십시오. 그것이 실제로 있는지보십시오. 다른 로그 파일의 실제 스택 트레이스에 대한

HTH

1
<servlet> 
    <servlet-name>testUI</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value></param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet>