【问题标题】:Spring security and spring boot弹簧安全和弹簧启动
【发布时间】:2018-09-08 10:39:45
【问题描述】:

我有一个问题。为什么弹簧安全只适用于弹簧靴? 我有以下配置:

AbstractSecurityWebApplicationInitializer

public class SecurityWebInitializer extends AbstractSecurityWebApplicationInitializer {
    }

WebSecurityConfigurerAdapter

    @Configuration
    @EnableWebSecurity
    public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

        @Autowired
        public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
        ...
        }

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            CharacterEncodingFilter filter = new CharacterEncodingFilter();
            filter.setEncoding("UTF-8");
            filter.setForceEncoding(true);
            http.addFilterBefore(filter,CsrfFilter.class);
            ...
    }

我试过这个只是添加spring安全依赖,例如:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>5.0.3.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>5.0.3.RELEASE</version>
</dependency>

但它不起作用,但是当我添加时

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
            <version>1.5.2.RELEASE</version>
        </dependency>

它开始工作了。为什么 spring security 只适用于 spring boot?

【问题讨论】:

    标签: java spring security spring-boot


    【解决方案1】:

    Spring Security 也可以在没有 Spring Boot 的情况下工作。使用以下依赖项即可。

        <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-core</artifactId>
                <version>4.1.3.RELEASE</version>
            </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring.ver}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>4.1.3.RELEASE</version>
    </dependency>
    

    【讨论】:

    • 我有这个错误:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“securityConfiguration”的bean时出错:通过方法“setContentNegotationStrategy”参数0表示的依赖关系不满足;
    【解决方案2】:

    Spring Security 与 Spring Boot 没有任何依赖关系。它是 spring 的一个模块,用于处理安全相关的功能。

    有不同的方式来实现 Spring Security

    1. 通过 maven :- 通过使用以下配置更新 pom.xml

      <dependency>
          <groupId>org.springframework.security</groupId>
          <artifactId>spring-security-core</artifactId>
      </dependency>
      
      <dependency>
          <groupId>org.springframework.security</groupId>
          <artifactId>spring-security-web</artifactId>
      </dependency>
      
      <dependency>
          <groupId>org.springframework.security</groupId>
          <artifactId>spring-security-ldap</artifactId>
      </dependency>
      
      <dependency>
          <groupId>org.springframework.security</groupId>
          <artifactId>spring-security-taglibs</artifactId>
      </dependency>
      
      <dependency>
          <groupId>org.springframework.security</groupId>
          <artifactId>spring-security-config</artifactId>
      </dependency>
      
    2. 通过 Gradle :- 通过添加以下配置 build.gradle

      compile "org.springframework.security:spring-security-core:$springSecurityVersion"
      
          compile "org.springframework.security:spring-security-web:$springSecurityVersion"
      
          compile "org.springframework.security:spring-security-ldap:$springSecurityVersion"
      
          compile "org.springframework.security:spring-security-taglibs:$springSecurityVersion"
      
          compile "org.springframework.security:spring-security-acl:$springSecurityVersion"
      
          compile "org.springframework.security:spring-security-config:$springSecurityVersion"
      
    3. 通过在项目构建路径中添加spring security jar文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-03
      • 2015-03-07
      • 2011-02-17
      • 2016-06-08
      • 1970-01-01
      • 2017-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多