首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Boot,Spring Security返回状态401而不是404,表示“没有找到HTTP请求的映射”

Spring Boot是一个用于快速构建基于Spring框架的Java应用程序的开发框架。它提供了一种简化的方式来配置和部署应用程序,并集成了许多常用的开发工具和库,使开发人员能够更加专注于业务逻辑的实现。

Spring Security是Spring框架的一个模块,用于处理应用程序的安全性需求。它提供了一套强大的认证和授权机制,可以保护应用程序的资源免受未经授权的访问。当Spring Security返回状态码401而不是404时,表示请求需要进行身份验证,但未提供有效的凭据。

状态码401表示“未授权”或“未经身份验证”。与状态码404表示“未找到”不同,401表示请求的资源需要进行身份验证,但请求未提供有效的凭据。这通常发生在需要登录或提供有效的令牌才能访问的受保护资源上。

对于Spring Boot和Spring Security的应用程序,返回状态码401而不是404可能是因为请求的资源需要进行身份验证,但请求未提供有效的凭据。这可能是由于用户未登录或提供了无效的凭据。

要解决这个问题,可以采取以下步骤:

  1. 确保应用程序的安全配置正确。检查Spring Security的配置文件,确保已正确配置身份验证和授权机制。
  2. 检查请求是否包含有效的凭据。如果请求需要身份验证,确保请求中包含了有效的用户名和密码、令牌或其他凭据。
  3. 检查用户是否已登录。如果请求需要用户登录,确保用户已经成功登录,并且会话仍然有效。
  4. 检查用户是否具有访问请求资源的权限。如果请求需要特定的角色或权限才能访问资源,确保用户具有所需的角色或权限。
  5. 检查请求的URL映射是否正确。确保请求的URL与应用程序中定义的URL映射匹配,以便正确路由到相应的处理程序。

对于Spring Boot和Spring Security的应用程序,可以使用腾讯云的云服务器(CVM)来部署和运行应用程序。腾讯云的CVM提供了高性能、可靠性和安全性,适用于各种规模的应用程序。

推荐的腾讯云产品:

  • 云服务器(CVM):提供可扩展的计算能力,用于部署和运行Spring Boot和Spring Security应用程序。详情请参考:腾讯云云服务器
  • 云数据库MySQL版:提供高性能、可扩展的关系型数据库服务,适用于存储应用程序的数据。详情请参考:腾讯云云数据库MySQL版
  • 云安全中心:提供全面的安全服务,包括DDoS防护、Web应用防火墙等,用于保护应用程序的安全。详情请参考:腾讯云云安全中心

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和项目要求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Boot WebFlux 2.1.7 中文翻译文档

不是 WebFlux。...Spring Boot 提供自动配置主要做了以下两个工作: 为 HttpMessageReader 和 HttpMessageWriter 实例配置 HTTP 编解码器 支持服务静态资源映射,包括对...Boot 默认将静态资源映射在 /** 路径下,当然,你可以通过修改 spring.webflux.static-path-pattern 属性来调整默认映射,例如,将所有资源映射到 /resources...过滤器 Spring WebFlux 提供了一个 WebFilter 接口,用来对 HTTP 请求-响应路由进行过滤,在应用程序上下文中找到 WebFilter bean 将自动用于过滤每个路由!...以下是一个简单鉴权过滤器 demo — 对于 没有 token 参数请求返回 401 错误: @Component public class CustomWebFilter implements WebFilter

2K40

打造REST风格Spring Security配置

认证成功返回200不是301 3.5. 认证失败返回 401 不是 302 3.6. AuthenticationManager和Provider 3.7....请注意,映射是相对于web应用程序根上下文不是REST Servlet;这是因为整个安全配置都存在于Spring根上下文中,不是在Servlet子上下文中。...然而,对于REST Web服务而言,这种行为没有多大意义——身份认证只能通过请求正确URI来完成,如果用户没有经过身份认证,则所有其他请求都只需要简单返回一个401 UNAUTHORIZED状态码来表示失败即可...规范要求在没有WWW-Authenticate头时返回401状态码(Forbidden)——当然,如果需要的话,我们也可以手动设置这个值。...3.4.认证通过应该返回200不是301 默认情况下,一个请求在身份认证成功后,组件将使用 301 MOVED PERMANENTLY HTTP状态码进行响应;这在实际表单登录上下文中是有意义

85920

Spring Security 实战干货: 401和403状态

今天来谈谈两个和认证授权息息相关两个状态401和403以及它们如何在Spring Security融入体系中。 2. 401 未授权 我在RFC 7235[1]中找到了相关表述。...当客户端收到401状态码时,表明了该请求因为缺乏了被信任认证凭据被拒绝访问目标资源。 如果用户在请求中携带了认证凭据,那么401响应表明该凭据是未授信,不能访问目标资源。...403状态代码表示服务器已理解了客户端请求,但拒绝授权。如果请求中提供了身份验证凭据,则服务器认为它们不足以授予访问权限。客户端不应自动携带相同重复证书再次请求。...Spring Security这两种状态 通常情况Spring Security401和403两种状态都是以异常形式来进行体现,由AuthenticationException和AccessDeniedException...仅仅当登录认证失败返回401,其它情况这两种异常都返回了403。 ? Spring Security异常处理体系 默认情况下他们都会被转发到异常页面。

3.1K30

Spring Boot 中如何实现 HTTP 认证?

中定义,后续有关安全信息可以在 HTTP 1.1 规范(RFC 2616)和 HTTP 认证规范(RFC 2617)中找到。...HttpBasic 最大优势在于使用非常简单,没有复杂页面交互,只需要在请求头中携带相应信息就可以认证成功,而且它是一种无状态登录,也就是 session 中并不会记录用户登录信息。...我们再来稍微总结一下 HttpBasic 认证流程: 浏览器发出请求,说要访问 /hello 接口。 服务端返回 401表示未认证。...服务端返回 401表示未认证,同时在响应头中携带 WWW-Authenticate 字段来描述认证形式。...同时,服务端返回字段还有一个 qop,表示保护级别,auth 表示只进行身份验证;auth-int 表示还要校验内容。

1.1K30

Spring Security技术栈开发企业级认证与授权(四)RESTful API服务异常处理

当我们从浏览器访问不存在Spring BootRESTful API时候,往往会返回Spring Boot内置404错误界面,但是作为前后端分离应用,相同API也许会在其他终端访问,比如手机...那么问题来了,Spring Boot是如何确定当前请求来自浏览器还是客户端?我们可以从它源代码中找到答案。...二、自定义服务异常处理 在实际开发过程中,如果出现404或者500错误时候,返回给浏览器是Spring Boot默认处理界面,这并不友好,我们可以实现自定义页面来给出更好温馨提示。...404.html和500.html,在访问出现404错误时候,就会跳转到我们自己定义HTML中,不是Spring Boot默认界面。...有时候我们前端不需要这么多信息,只需要部分信息,这个时候就需要自定义异常处理了,不是采用Spring Boot默认处理方式了,在这里,我们可以写一个异常处理类,专门用来处理自定义异常。

77931

Springboot之Security前后端分离登录

什么是Spring Security Spring Security是一个功能强大且高度可定制身份验证和访问控制框架。它是用于保护基于Spring应用程序实际标准。...Springboot集成SpringSecurity 附代码 关于SpringBoot应用中集成Spring Security你必须了解那些事 Spring Boot Security 具体代码实现...方式走 Spring Security 过滤器链,在过滤器链中,给请求放行,web方式是不走 Spring Security 过滤器链。...* 3 根据用户账号,密码,权限构建对应UserDetails对象返回 * 这里实际上是没有进行用户认证功能,真正验证是在UsernamePasswordAuthenticationFilter...自带登录界面不美观,所以需要提供一个登录接口给前端调用,该接口需要在配置当中放行,未授权访问需要授权请求时,会返回401或者403状态码,前端可以根据这个进行路由提示处理 @RestController

9.2K31

Spring Cloud Edgware新特性之四:Zuul routes端点功能增强

访问 $ZUUL_URL/routes 即可查看当前Zuul路由规则,从而在很多情况下能够帮助我们定位Zuul问题——当Zuul没有按照我们计划去转发请求时, /routes 就会很有用,可通过该端点查看...访问结果类似如下: { /sample-service/**: "sample-service" } // 这段JSON表示:如果请求$ZUUL_URL/sample-service/**,Zuul...TIPS:使用 routes 端点前提: Zuul Server需要有Spring Boot Actuator依赖,否则访问 /routes 端点将会返回404;。...设置 management.security.enabled=false ,否则将会返回401;也可添加Spring Security依赖,这样可通过账号、密码访问 routes 端点。.../routes 端点相关文档,可详见http://cloud.spring.io/spring-cloud-static/Dalston.SR4/single/spring-cloud.html#_the_routes_endpoint

62480

微服务架构之Spring Boot(七十三)

JSON请求正文中每个根属性都可以映射到端点参数。...Web端点响应状态 端点操作默认响应状态取决于操作类型(读取,写入或删除)以及操作返回内容(如果有)。 @ReadOperation 返回一个值,响应状态为200(OK)。...如果它未返回值,则响应状态将为404(未找到)。 如果 @WriteOperation 或 @DeleteOperation 返回值,则响应状态将为200(OK)。...如果它没有返回值,则响应状态将为204(无内容)。 如果在没有必需参数情况下调用操作,或者使用无法转换为所需类型参数,则不会调用操作方法,并且响应状态将为400(错误请求)。...Web端点范围请求 HTTP范围请求可用于请求HTTP资源一部分。

2.2K10

Spring Boot 1.X和2.X优雅重启实战

Spring Boot 1.X优雅地停止应用 项目在重新发布过程中,如果有的请求时间比较长,还没执行完成,此时重启的话就会导致请求中断,影响业务功能,优雅重启可以保证在停止时候,不接收外部请求...://127.0.0.1:8080/shutdown 此时会返回401状态表示没有认证 需要关闭权限验证,在配置文件添加 endpoints.shutdown.sensitive=false 表示shutdown...这时并没有出现我们期待响应状态是200Shutting down, bye...消息出现,而是 HTTP/1.1 401 Set-Cookie: JSESSIONID=6B5EF5B52BB5D9B57CD8CE5F405D264F...为什么还是未授权状态,这里补充一点Spring Security知识。...有兴趣同学可以试一下请求 curl -i -v --user admin:123456 http://127.0.0.1:8080/actuato 是可以返回,也就是说Spring Security

1K00

Spring Security 自定义用户认证

Spring Boot 集成 Spring Security 这篇文章中,我们介绍了如何在 Spring Boot 项目中快速集成 Spring Security,同时也介绍了如何更改系统默认生成用户名和密码...接下来本文将基于 Spring Boot 集成 Spring Security 这篇文章中所创建项目,进一步介绍在 Spring Security 中如何实现自定义用户认证。...二、处理不同类型请求 默认情况下,当用户通过浏览器访问被保护资源时,会默认自动重定向到预设登录地址。这对于传统 Web 项目来说,是没有多大问题,但这种方式就不适用于前后端分离项目。...如果是以 .html 结尾,那么重定向到登录页面,否则返回 ”访问资源需要身份认证!” 信息,并且 HTTP 状态码为401(HttpStatus.UNAUTHORIZED)。...三、自定义处理登录成功和失败逻辑 在前后端分离项目中,当用户登录成功或登录失败时,需要向前端返回相应信息,不是直接进行页面跳转。

1.3K20

重磅推荐:保姆级Java技术图谱!够学到元宵节了,赶紧收藏!

最近因为参与社群交流时间比较多,除了唠唠白酒嗑之外,很大一部分时间都是看到群里问到一些关于Spring BootSpring Cloud应用过程中碰到问题以及一些开发过程中报错信息。...比如: HTTP协议中请求方法、请求类型、状态码等基础协议知识匮乏,导致经常出现: 怎么报了个405错误,是哪里写有问题呢? 怎么报了个401错误,又是哪里写不对呢?...比如,报了401错误,不是Spring Security配置拦截去帮他解决,而是告诉他401本质含义是什么,同时让他去延伸学习HTTP协议其他状态码。...Spring Boot开发者会碰到很多疑问,他们通过搜索去找到解决方法,但由于这样解决问题方式只是完成解决,没有帮助他们知道原因。...很多时候,我们开发人员之间差距往往就体现在对这些基础知识掌握上,因为有了这些基础知识积累,才能让我们在使用Spring BootSpring Cloud时候有厚实基础支持,当出现问题时候

24920

Spring Boot Security 基本使用一

目录 前言 Spring Boot SecuritySpring Secutrity关系 简单权限控制 进一步探究 准备工作 编写权限代码(解决三个问题) 第一个问题:框架是如何从数据库里拿到用户信息...Spring Boot SecuritySpring Secutrity关系 在Spring Security框架中,主要包含两个jar,即spring-security-web依赖和spring-security-config...spring-boot-starter-security起步依赖,就使用默认配置自动开启了安全校验功能。...官方文档参考 进一步探究 初步体验了spring boot security,框架已经做了大量工作,设置什么都不需要做,仅仅简单把依赖引入进来,像是打开了一个开关,就开启了安全校验功能.然而实际实际开发中应用场景要比这复杂多..."); } } /** * 表示此AccessDecisionManager是否能够处理传递ConfigAttribute呈现授权请求 */ @Override

37420

微服务架构之Spring Boot(三十四)

这可能导致Spring Boot无法在类路径上找到模板。如果遇到此问题,可以在 IDE中重新排序类路径,以便首先放置模块类和资源。...28.1.11错误处理 默认情况下,Spring Boot提供 /error 映射,以合理方式处理所有错误,并在servlet容器中注册为“全局”错误页面。...对于计算机客户端, 它会生成一个JSON响应,其中包含错误,HTTP状态和异常消息详细信息。...,则使用 CustomErrorType POJOJSON表示 不是 ErrorAttributes 表示。...小心:当部署到servlet容器时,Spring Boot使用其错误页面过滤器将具有错误状态请求转发到相应错误页面。如果尚未提交响应,则只能 将请求转发到正确错误页面。

92510

springboot(十九):使用Spring Boot Actuator监控应用

暴露监控接口安全性,需要添加安全控制依赖spring-boot-start-security依赖,访问应用监控端点时,都需要输入验证信息。...描述全部URI路径,以及它们和控制器(包含Actuator端点)映射关系 GET /metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 GET /metrics/{name}...HTTP计数器和度量值需要做一点说明。counter.status 后值是HTTP状态码,随后是所请求路径。...举个例子,counter.status.200.metrics 表明/metrics端点返回 200(OK) 状态次数。 HTTP度量信息在结构上也差不多,却在报告另一类信息。...这就是为什么你经常会看到 counter.status.404.star-star,这是返回HTTP 404 (NOT FOUND) 状态请求数。

1.2K71

Spring Security入门(二) 基于内存存储表单登录实战

处理单个http 请求过滤链角色示意图如下所示: 图片来源:https://docs.spring.io/spring-security/site/docs/5.4.1/reference/html5...实现基于内存存储登录表单认证 3.1 在SpringBoot web项目中加入Spring Security依赖 在本人之前boot-demo项目的pom.xml文件中引入spring-boot-starter-security...通常情况下,我们会在application.properties或者application.yaml文件中配置用户名、登录密码和角色等信息,不是每次拿着一个随机生成UUID作为密码去登录 spring.security.user.name...security默认登录接口 //自定义不同路径认证接口时在登录时报302错误且笔者一时没有找到有效解决办法 .and().formLogin...(2) 继续在浏览器中输入 http://localhost:8088/apiBoot/index/admin 后回车,浏览器会得到下面的响应信息,状态码为403说明当前用户没有权限访问 Whitelabel

69530
领券