Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解决springboot 2 web应用中的401-未经授权_Java_Maven_Spring Boot_Cors - Fatal编程技术网

Java 如何解决springboot 2 web应用中的401-未经授权

Java 如何解决springboot 2 web应用中的401-未经授权,java,maven,spring-boot,cors,Java,Maven,Spring Boot,Cors,我的控制器: @CrossOrigin(origins="http://localhost:3000") @RequestMapping(value="", method = RequestMethod.GET) public ResponseEntity<List<Client>> getAllClients(/*@RequestParam("page") int page, @RequestParam("size") int

我的控制器:

    @CrossOrigin(origins="http://localhost:3000") 
        @RequestMapping(value="", method = RequestMethod.GET)
        public ResponseEntity<List<Client>> getAllClients(/*@RequestParam("page") int page, @RequestParam("size") int size*/) {

            List<Client> clientList = services.getClientsList(/*page,size*/);
            if(clientList != null) {
                return new ResponseEntity<>(clientList, HttpStatus.OK);
            }else{
                return  new ResponseEntity<>(HttpStatus.BAD_REQUEST);
            }
        }
应用程序属性文件:

server.port = 8009
spring.datasource.url = jdbc:mysql://localhost:3306/javaumsdb?useSSL=false
spring.datasource.username = root
spring.datasource.password = 
spring.datasource.driver-class-name=com.mysql.jdbc.Driver


spring.jpa.properties.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto = none
spring.jpa.show-sql=true
spring.datasource.name=javaumsdb
spring.datasource.validationQuery = SELECT 1
spring.datasource.whileIdle = true
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy


security.basic.enabled =false
management.security.enabled = false
POM文件,也许我的spring版本与@CrossOrigin不兼容:我真的不明白为什么这个错误不会消失

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-rest-service-cors</artifactId>
    <version>0.1.0</version>

    <name>Product</name>
    <description> project for Spring Boot</description>
        <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
                                <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                    <version>5.0.8.RELEASE</version>
                </dependency>

                 <dependency>
                       <groupId>com.transactioncompany</groupId>
                       <artifactId>cors-filter</artifactId>
                       <version>2.1.2</version>
                </dependency>
                <dependency>
                       <groupId>com.transactioncompany</groupId>
                       <artifactId>java-property-utils</artifactId>
                       <version>1.9.1</version>
                </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-neo4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-integration</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</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-webflux</artifactId>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
                <dependency>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-entitymanager</artifactId>
                        <version>5.2.3.Final</version>
                </dependency>
                <dependency>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-core</artifactId>
                        <version>5.2.17.Final</version>
                </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
                <dependency>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus</artifactId>
                        <version>3.3.1</version>
                </dependency>
                <!-- https://mvnrepository.com/artifact/org.codehaus.plexus/plexus-utils -->
                <dependency>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus-utils</artifactId>
                        <version>3.1.0</version>
                </dependency>

                <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/exec-maven-plugin -->
                <dependency>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.6.0</version>
                </dependency>

               <!-- <dependency>
                    <artifactId>gwt-maven-plugin</artifactId>
                    <groupId>org.codehaus.mojo</groupId>
                    <version>1.3.1</version>
                </dependency> -->
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
                        <plugin>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>exec-maven-plugin</artifactId>
                        </plugin>
        </plugins>
    </build>
</project>

4.0.0
org.springframework
gs休息服务cors
0.1.0
产品
springboot项目
org.springframework.boot
spring启动程序父级
2.0.3.1发布
UTF-8
UTF-8
1.8
org.springframework
弹簧芯
5.0.8.1发布
com.transaction公司
cors过滤器
2.1.2
com.transaction公司
java属性utils
1.9.1
org.springframework.boot
spring引导启动器数据jpa
org.springframework.boot
spring-boot-starter-data-neo4j
org.springframework.boot
弹簧启动启动器数据rest
org.springframework.boot
spring boot启动器集成
org.springframework.boot
弹簧靴启动器jdbc
org.springframework.boot
春季启动邮件
org.springframework.boot
弹簧启动安全
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧启动器webflux
com.h2数据库
氢
运行时
org.hibernate
休眠实体管理器
5.2.3.最终版本
org.hibernate
冬眠核心
5.2.17.最终版本
mysql
mysql连接器java
运行时
org.projectlombok
龙目
真的
org.springframework.boot
弹簧起动试验
测试
离子交换反应器
反应堆试验
测试
org.springframework.security
弹簧安全性试验
测试
org.codehaus.plexus
神经丛
3.3.1
org.codehaus.plexus
尾丛
3.1.0
org.codehaus.mojo
execmaven插件
1.6.0
org.springframework.boot
springbootmaven插件
org.codehaus.mojo
execmaven插件

您是否提供了WebMVCConfiguer的实现。请创建此配置类并重试

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

@Override
public void addCorsMappings(CorsRegistry registry) {
   registry.addMapping("/**").allowedMethods("HEAD", "GET", "PUT", "POST", "DELETE", 
"PATCH");
  }
}

401错误与CORS完全无关。这只是意味着你没有经过身份验证,试图访问一个需要你进行身份验证的资源。401意味着未经授权,请检查你的请求头或身份验证机制。在我使用用户名=用户和密码=spring日志生成的随机字符串登录后,我被重定向到localhost:8080/login。。。我只看到客户端infor,但在我的端口3000/s上什么也没发生。。。如何验证或绕过此问题。。。提前感谢你们的帮助。在邮递员中我得到401,在浏览器中我得到302;浏览器显示我已被重定向,不允许访问localhost:8009/clientI am lost@Emre您所说的身份验证机制是什么意思?我应该是使用数据库中某个用户的loggen吗?如果你检查一下我的应用程序,我以前就这么做过。Java我已经尝试过了,但它不起作用。。。然而,在PostMan中,我能够使用带有基本身份验证的get请求获得200OK。这是否意味着我必须为从angular到java的每个请求发送基本身份验证,我已经添加了btao头。现在我仍然得到401,但不同的Mesage:未能加载:飞行前的响应具有无效的HTTP状态代码401。。。有人能解释一下这部分吗,我需要忽略后端的选项吗?我能闻到我们离解决方案很近了
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

@Override
public void addCorsMappings(CorsRegistry registry) {
   registry.addMapping("/**").allowedMethods("HEAD", "GET", "PUT", "POST", "DELETE", 
"PATCH");
  }
}