为了账号安全,请及时绑定邮箱和手机立即绑定

无法解析 spring boot 应用程序中的符号“security”

无法解析 spring boot 应用程序中的符号“security”

翻阅古今 2023-02-23 10:30:34
我正在尝试学习 Java Spring 并像这里一样做:https ://spring.io/guides/gs/securing-web/但是我的 IDE 在导入配置时说“无法解析‘安全’符号”。我使用相同版本的 spring 并具有相同的代码。我不知道出了什么问题。package com.github.SpringSite.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;import org.springframework.security.core.userdetails.User;import org.springframework.security.core.userdetails.UserDetails;import org.springframework.security.core.userdetails.UserDetailsService;import org.springframework.security.provisioning.InMemoryUserDetailsManager;@Configuration@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {    @Override    protected void configure(HttpSecurity http) throws Exception {        http                .authorizeRequests()                .antMatchers("/", "/home").permitAll()                .anyRequest().authenticated()                .and()                .formLogin()                .loginPage("/login")                .permitAll()                .and()                .logout()                .permitAll();    }    @Bean    @Override    public UserDetailsService userDetailsService() {        UserDetails user =                User.withDefaultPasswordEncoder()                        .username("user")                        .password("password")                        .roles("USER")                        .build();        return new InMemoryUserDetailsManager(user);    }}
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

看起来您当前的spring-security依赖项仅适用于test范围。


如果我们按照教程进行操作,它会声明您必须为添加以下依赖项WebSecurityConfig:


<dependencies>

    ...

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-security</artifactId>

        </dependency>

    ...

</dependencies>

请注意,此处未设置范围,即它将是默认范围,即compile.


您可能需要在更改依赖项后手动重新导入 maven 项目:

//img1.sycdn.imooc.com//63f6d03e00012ee905950448.jpg

重新导入后,里面的依赖pom.xml应该不会显示为红色了。


轻微更新

可以 146% 确定,这是我的 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>


    <groupId>org.springframework</groupId>

    <artifactId>gs-securing-web</artifactId>

    <version>0.1.0</version>


    <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>2.1.6.RELEASE</version>

    </parent>


    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-thymeleaf</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>org.springframework.security</groupId>

            <artifactId>spring-security-test</artifactId>

            <scope>test</scope>

        </dependency>


        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-security</artifactId>

        </dependency>


    </dependencies>


    <properties>

        <java.version>1.8</java.version>

    </properties>



    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

            </plugin>

        </plugins>

    </build>


</project>

更新 2 - 修复实际当前问题

实际上问题(以及问题文本本身)import只是.HttpSecurityWebSecurityConfig


所以加入


import org.springframework.security.config.annotation.web.builders.HttpSecurity;

将使代码编译并SpringSiteApplication启动。


更新 3 - 我们通过 TeamViewer 调查后真正的问题是什么。

尚未下载 Spring 依赖项,因为计算机无法访问中央 Maven 存储库 ( https://repo.maven.apache.org/maven2 )。禁用 Windows 防火墙后,连接开始工作。


IDEA 在更新 repo 索引时太慢了,但命令行mvn install帮助最终下载了库。之后,IDEA 也开始显示导入的类。


查看完整回答
反对 回复 2023-02-23
  • 1 回答
  • 0 关注
  • 220 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信