2013-03-19 53 views
8

Tôi có ứng dụng bảo mật mùa xuân và sau đây là của tôi bảo mật contex.xmlCấu hình vấn đề về bảo mật mùa xuân

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

    <http auto-config='true'> 
     <intercept-url pattern='/login*' filters='none' /> 
     <intercept-url pattern='/**' access='ROLE_USER' /> 
     <form-login login-page='/login' default-target-url='/home' 
      always-use-default-target='true' /> 
    </http> 
    <authentication-manager> 
     <authentication-provider> 
      <user-service> 
       <user name="anto" password="anto" authorities="ROLE_USER, ROLE_ADMIN" /> 
       <user name="raj" password="raj" authorities="ROLE_USER" /> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 

</beans:beans> 

tôi nhận được ngoại lệ này:

Cấu hình vấn đề: Bạn không thể sử dụng một spring- lược đồ security-2.0.xsd với Spring Security 3.0. Vui lòng cập nhật các khai báo lược đồ của bạn thành lược đồ 3.0.

Tôi có thể hiểu được vấn đề nhưng không biết phải thay đổi ở đâu.

Tôi muốn biểu mẫu đăng nhập và đăng xuất tự động đến.

EDIT : 

My pom.xml 

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.anto</groupId> 
    <artifactId>simpleauthentication</artifactId> 
    <name>SimpleAuthentication</name> 
    <packaging>war</packaging> 
    <version>1.0.0-BUILD-SNAPSHOT</version> 
    <properties> 
     <java-version>1.6</java-version> 
     <org.springframework-version>3.1.1.RELEASE</org.springframework-version> 
     <org.aspectj-version>1.6.10</org.aspectj-version> 
     <org.slf4j-version>1.6.6</org.slf4j-version> 
     <spring-security.version>3.0.2.RELEASE</spring-security.version> 
    </properties> 
    <dependencies> 
     <!-- Spring --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${org.springframework-version}</version> 
      <exclusions> 
       <!-- Exclude Commons Logging in favor of SLF4j --> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${org.springframework-version}</version> 
     </dependency> 
       <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-core</artifactId> 
      <version>${spring-security.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
    <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      <version>${spring-security.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
    <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>${spring-security.version}</version> 
     </dependency> 
    <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-taglibs</artifactId> 
      <version>${spring-security.version}</version> 
     </dependency> 
       <dependency> 
      <groupId>commons-pool</groupId> 
      <artifactId>commons-pool</artifactId> 
      <version>1.5.4</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <!-- AspectJ --> 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>${org.aspectj-version}</version> 
     </dependency> 

     <!-- Logging --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${org.slf4j-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jcl-over-slf4j</artifactId> 
      <version>${org.slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>${org.slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.15</version> 
      <exclusions> 
       <exclusion> 
        <groupId>javax.mail</groupId> 
        <artifactId>mail</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>javax.jms</groupId> 
        <artifactId>jms</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jdmk</groupId> 
        <artifactId>jmxtools</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jmx</groupId> 
        <artifactId>jmxri</artifactId> 
       </exclusion> 
      </exclusions> 
      <scope>runtime</scope> 
     </dependency> 

     <!-- @Inject --> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 

     <!-- Servlet --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.1</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <!-- Test --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.7</version> 
      <scope>test</scope> 
     </dependency>   
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-eclipse-plugin</artifactId> 
       <version>2.9</version> 
       <configuration> 
        <additionalProjectnatures> 
         <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> 
        </additionalProjectnatures> 
        <additionalBuildcommands> 
         <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> 
        </additionalBuildcommands> 
        <downloadSources>true</downloadSources> 
        <downloadJavadocs>true</downloadJavadocs> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.5.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
        <compilerArgument>-Xlint:all</compilerArgument> 
        <showWarnings>true</showWarnings> 
        <showDeprecation>true</showDeprecation> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.2.1</version> 
       <configuration> 
        <mainClass>org.test.int1.Main</mainClass> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

Bạn có thể có Spring Security 2.0 trong đường dẫn lớp của mình. – Xaerxess

+0

vui lòng xem EDIT của tôi. –

Trả lời

9

Bạn có phiên bản Xuân An sai trong pom.xml của bạn và an ninh-contex.xml: các điểm cựu 3.0.2 nhưng sau này muốn 3.0.3, vì vậy một trong hai:

  • cập nhật pom.xml đến 3.0.3 (hoặc lớn hơn)
  • hoặc sử dụng http://www.springframework.org/schema/security/spring-security-3.0.xsd trong cấu hình bảo mật của bạn.

BTW Có lý do nào không sử dụng one of current Spring Security versions (3.0.8/3.1.3) không?

+0

xin lỗi đã không giải quyết được vấn đề –

+0

@Anto Chính xác bạn đã làm gì? – Xaerxess

+0

cũng cập nhật pom.xml cấu hình bảo mật cho phiên bản mới nhất. Phiên bản thực tế tương tự trong pom.xml và cấu hình bảo mật –

1

Thay thế vị trí xsd và lược đồ của bạn bằng mã dưới đây. Tôi nghĩ vấn đề này là thiếu bảo mật xsd.

<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" 
xmlns:security="http://www.springframework.org/schema/security" 
xmlns:mvc="http://www.springframework.org/schema/mvc" 
xmlns:context="http://www.springframework.org/schema/context" 
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://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.1.xsd 
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> 
+0

Không, điều này cũng không giúp tôi xin lỗi: ( –

0

Điều này đọc cho tôi như các vấn đề phụ thuộc transitive mà tôi thỉnh thoảng gặp phải. Chạy mvn dependency:tree để xác nhận rằng dự án của bạn nhập khẩu các phụ thuộc chính xác và không có phụ thuộc transitive gây ra rắc rối của bạn, sau đó loại trừ bất kỳ điều gì không phải là một phần của dự án của bạn.

0

Tôi có vấn đề tương tự và do sự phụ thuộc maven chuyển tiếp gây ra.

tôi web dự án phụ thuộc nhiều sau tôi pom.xml

<dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-core</artifactId> 
     <version>3.2.11.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
     <version>3.2.11.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-web</artifactId> 
     <version>3.2.11.RELEASE</version> 
    </dependency> 

dự án mô hình tôi có sự phụ thuộc sau đây trong pom.xml của nó

<dependency> 
     <groupId>org.springframework.security.extensions</groupId> 
     <artifactId>spring-security-saml2-core</artifactId> 
     <version>1.0.0.RELEASE</version> 
    </dependency> 

Các web dự án phụ thuộc vào dự án mô hình và vì vậy khi tôi chạy dự án web của mình, tôi đã nhận lỗi cấu hình

Vấn đề về cấu hình: Bạn không thể sử dụng lược đồ spring-security-3.0.xsd với Spring Security 3.1. Vui lòng cập nhật các khai báo lược đồ của bạn thành lược đồ 3.1.

Chạy phụ thuộc mvn: cây tiết lộ rằng spring-security-saml2-core phụ thuộc vào spring-security-config (ver 3.1.2.CÁO BÁO CHÍ)

[INFO] + -org.springframework.security.extensions: mùa xuân-an ninh-saml2 lõi: jar: 1.0.0.RELEASE: biên dịch

[INFO] | + -org.springframework.security: spring-security-config: jar: 3.1.2.RELEASE: biên dịch [INFO] | - xml-apis: xml-apis: jar: 1.4.01: biên dịch

Kể từ khi tôi đang sử dụng phiên bản 3.2.11.RELEASE trong dự án web, giải pháp là để loại trừ phụ thuộc bắc cầu xấu

<dependency> 
     <groupId>org.springframework.security.extensions</groupId> 
     <artifactId>spring-security-saml2-core</artifactId> 
     <version>1.0.0.RELEASE</version> 
     <exclusions> 
      <exclusion> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

Điều này giải quyết được vấn đề cho tôi.

Các vấn đề liên quan