0

Spring Security Core と Spring Security cas から別のチームが作成したカスタム セキュリティ jar があり、それを Grails プロジェクトに追加したいと考えています。この<import resource=classpath:META-INF/security.xml>タグを applicationContext.xml に追加し、必要な xmlns および xsd 宣言を追加しようとしましたが、エラーが発生します。

Message: Configuration problem: Failed to import bean definitions from URL location [classpath:META-INF/security.xml]
Offending resource: ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]
Offending resource: class path resource [META-INF/security.xml]

この jar を使用するように純粋な Java プロジェクトをアップグレードしたときに、spring-security-core、spring-security-conf の依存関係を手動で追加する必要がありました。Grails で同じことを行う必要がありますか、それともより良い方法がありますか?

Grails 2.2 グルービー 2.0.6

また、security.jar は Spring Security 3.0 でビルドされました

ガイダンスはありますか?手元にある 3 冊の Grails ブックに目を通しましたが、プロジェクトへのカスタム ライブラリの追加について触れているものはありません。

ありがとう。

編集 1.

以下のように、春のセキュリティ依存関係を BuildConfig.groovy ファイルに追加しました

    dependencies {
    compile "org.springframework.security:spring-security-core:3.1.4.RELEASE"
    compile "org.springframework.security:spring-security-config:3.1.4.RELEASE"
}

古いエラーを乗り越えたようです。しかし今、私は素敵なものを手に入れています

Error 2013-06-25 16:20:34,982 [localhost-startStop-1] ERROR context.ContextLoader  - Context initialization failed
Message: Error creating bean with name 'org.springframework.security.authentication.dao.DaoAuthenticationProvider#0': Cannot resolve reference to bean 'userService' while setting bean property 'userDetailsService'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [edu.umt.security.NetIdAuthoritiesPopulator] for bean with name 'userService' defined in class path resource [META-INF/security.xml]; nested exception is java.lang.ClassNotFoundException: edu.umt.security.NetIdAuthoritiesPopulator
...
Caused by CannotLoadBeanClassException: Cannot find class [edu.umt.security.NetIdAuthoritiesPopulator] for bean with name 'userService' defined in class path resource [META-INF/security.xml]; nested exception is java.lang.ClassNotFoundException: edu.umt.security.NetIdAuthoritiesPopulator

通常、Eclipse プロジェクトを数回クリーニングすることでこれを修正しますが、今回はさいころがなく、どこに問題があるのか​​ わかりません。問題のクラスは jar ファイル内にあるので、そこにあることがわかります。

4

1 に答える 1

1

jar が Maven リポジトリで利用できず、BuildConfig.groovy で依存関係を追加できない場合は、それを lib ディレクトリに追加できますが、自動的には検出されません。実行grails compile --refresh-dependenciesしてクラスパスに追加します。

于 2013-06-25T18:16:42.237 に答える