2016-07-18 27 views
0

我在製作Spring User login接口,我需要將用戶詳細信息存儲在mongodb數據庫中。春季數據MongoDB不適用於Spring 3.0

我正在使用Spring 3.0,並且無法在我的項目中工作Spring-data-mongodb,因爲我在某處閱讀它需要更高版本的Spring。

如何讓Spring-mongo-db在我當前的項目中工作,或者如何在我的pom.xml中正確更新依賴關係?

這是我目前pom.xml

<modelVersion>4.0.0</modelVersion> 
<groupId>controller</groupId> 
<artifactId>spring-security-ldap-embedded</artifactId> 
<packaging>war</packaging> 
<version>1.0.0-SNAPSHOT</version> 
<name>spring-security-ldap-embedded Maven Webapp</name> 
<url>http://maven.apache.org</url> 

<dependencies> 

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.8.1</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-web</artifactId> 
    <version>3.0.5.RELEASE</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-core</artifactId> 
    <version>3.0.5.RELEASE</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.14</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-tx</artifactId> 
    <version>3.0.5.RELEASE</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>jstl</groupId> 
    <artifactId>jstl</artifactId> 
    <version>1.1.2</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>taglibs</groupId> 
    <artifactId>standard</artifactId> 
    <version>1.1.2</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>3.0.5.RELEASE</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-core</artifactId> 
    <version>3.0.5.RELEASE</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-aop</artifactId> 
    <version>3.0.5.RELEASE</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-config</artifactId> 
    <version>3.0.5.RELEASE</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-web</artifactId> 
    <version>3.0.5.RELEASE</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-ldap</artifactId> 
    <version>3.0.5.RELEASE</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.apache.directory.server</groupId> 
    <artifactId>apacheds-all</artifactId> 
    <version>1.5.5</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.5.6</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-log4j12</artifactId> 
    <version>1.5.6</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-mongodb</artifactId> 
    <version>1.8.4.RELEASE</version> 
    <type>jar</type> 
    <exclusions> 
    <exclusion> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

<dependency> 
    <groupId>org.mongodb</groupId> 
    <artifactId>mongo-java-driver</artifactId> 
    <version>3.2.2</version> 
    <type>jar</type> 
</dependency> 

</dependencies> 

<build> 
<finalName>spring-security-ldap-embedded</finalName> 
<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <source>1.5</source> 
     <target>1.5</target> 
    </configuration> 
    </plugin> 
</plugins>  
</build> 

這是當前mongo-java-drivermongo依賴關係:

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-mongodb</artifactId> 
    <version>1.8.4.RELEASE</version> 
    <type>jar</type> 
    <exclusions> 
    <exclusion> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 
<dependency> 
    <groupId>org.mongodb</groupId> 
    <artifactId>mongo-java-driver</artifactId> 
    <version>3.2.2</version> 
    <type>jar</type> 
</dependency> 

我securityconfig.xml:

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

<!-- This is where we configure Spring-Security --> 

<security:http auto-config="true" use-expressions="true" > 

     <security:intercept-url pattern="/login" access="permitAll"/> 
     <security:intercept-url pattern="/admin" access="hasRole('ROLE_ADMIN')"/> 
     <security:intercept-url pattern="/common" access="hasRole('ROLE_USER')"/> 

     <security:form-login 
      login-page="/login" 
      authentication-failure-url="/login?error=true" 
      default-target-url="/main/common"/> 

     <security:logout 
      invalidate-session="true" 
      logout-success-url="/login" 
      logout-url="/logout"/> 

</security:http> 

<!-- 
     For authentication: 
     user-search-filter: the attribute name that contains the user name 
    user-search-base: the base path where to find user information 

    For authorization: 
    group-search-filter: the attribute name that contains the full dn of a user 
    group-search-base: the base path where to find role information 
    group-role-attribute: the attribute name that contains the role type 
    role-prefix: the prefix to be added when retrieving role values 

     For server access: 
    manager-dn: the full dn of the person that has access to an LDAP server 
    manager-password: the password of the person that has access to an LDAP server 
--> 

<security:authentication-manager> 
     <security:ldap-authentication-provider 
       user-search-filter="(uid={0})" 
       user-search-base="ou=users" 
       group-search-filter="(uniqueMember={0})" 
       group-search-base="ou=groups" 
       group-role-attribute="cn" 
       role-prefix="ROLE_"> 
     </security:ldap-authentication-provider> 
</security:authentication-manager> 

<!-- 
     Use an embedded LDAP server. We need to declare the location of the LDIF file 
     We also need to customize the root attribute default is "dc=springframework,dc=org" 
    --> 

<security:ldap-server ldif="classpath:mojo.ldif" root="o=mojo"/> 

我的applicationContext.xml:

<?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:context="http://www.springframework.org/schema/context" 
xmlns:mvc="http://www.springframework.org/schema/mvc" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-4.3.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"> 

<!-- Activates various annotations to be detected in bean classes --> 
<context:annotation-config /> 

<!-- Scans the classpath for annotated components that will be auto-registered as Spring beans. 
     For example @Controller and @Service. Make sure to set the correct base-package--> 
<context:component-scan base-package="controller" /> 

<!-- Configures the annotation-driven Spring MVC Controller programming model. 
Note that, with Spring 3.0, this tag works in Servlet MVC only! --> 
<mvc:annotation-driven /> 

回答

0

只有這樣,才能得到它的工作是升級版的春天。

Spring數據MongoDB 1.x二進制文件需要JDK級別6.0和更高版本,以及Spring Framework 4.2.6.RELEASE及更高版本。

http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#requirements


編輯

  • 完全刪除您現有的.m2 /存儲庫或罐子和春天和蒙戈
  • 修改你的pom.xml,並指定相應的文件夾中的相關春天的版本。
  • 不要MVN全新安裝

希望它解決了問題,在你結束。

+0

但我嘗試升級我的pom.xml,但項目停止部署。我應該在我的項目中做哪些其他更改?我應該如何正確更新我的其他文件? – Jarvis

+0

嘗試在我的答案的編輯部分中添加的更改 –

+0

實際上,我使用的是IDE(Netbeans),其中我修改了pom.xml,並用最新版本替換了所有舊版本(用於彈簧安全的4.3和4.1 ),但我有一些其他'securityconfig.xml'和'applicationcontext.xml'文件,需要更改,如何執行此操作? – Jarvis

相關問題