创建名称为'org.springframework.security.saml.SAMLBootstrap#0'的bean时出错

时间:2018-12-04 02:09:02

标签: spring-saml

我正在使用SAML在网页中添加SSO代码。为此,我为Maven添加了以下代码。

        <!-- Spring Framework Security -->
            <dependency>
          <groupId>org.springframework.security</groupId>
          <artifactId>spring-security-web</artifactId>
          <version>5.1.2.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-config -->
       <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>5.1.2.RELEASE</version>
       </dependency>    


        <!-- Spring Security SAML -->
        <dependency>
          <groupId>org.springframework.security.extensions</groupId>
          <artifactId>spring-security-saml2-core</artifactId>
          <version>1.0.2.RELEASE</version>
        </dependency>

然后我在应用程序上下文xml中添加了以下代码。

  <!-- Initialization of OpenSAML library -->
  <bean class="org.springframework.security.saml.SAMLBootstrap" />

但是我收到以下错误

  

org.springframework.beans.factory.BeanCreationException:错误   用名字创建bean   类中定义的“ org.springframework.security.saml.SAMLBootstrap#0”   路径资源[conf / spring / root-context.xml]:bean的实例化   失败嵌套异常为   org.springframework.beans.BeanInstantiationException:失败   实例化[org.springframework.security.saml.SAMLBootstrap]:否   找到默认构造函数;嵌套异常为   java.lang.NoClassDefFoundError:   org / springframework / beans / factory / access / BootstrapException

似乎缺少了一些罐子。如何添加这个罐子?

谢谢 Jae Kim

2 个答案:

答案 0 :(得分:1)

底线是:更新至1.0.3.RELEASE解决了该问题。

说明:类System.getRuntime().exec()抛出(第45行)SAMLBootstrap,该类存在于spring-4(spring-beans-4.2.4.RELEASE)中,但在spring中不存在-5。

在spring-security-saml2-core-1.0.3.RELEASE中,类BootstrapException中的依赖项已删除。

答案 1 :(得分:0)

根据此问题https://github.com/spring-projects/spring-security-saml/issues/211

您只需要将saml库更新到最新版本

1.0.4。发布