首页
学习
活动
专区
圈层
工具
发布

SpringBoot Security 访问API始终报401

前言 用POSTMAN或者在页面前端登录访问后端API时,始终返回401.返回401有很多原因造成的,主要分为两个方面来看: 配置上的问题。确实没有权限。...一、 UserDetails实现类里的getAuthorities重写方法,返回null. public class UserDto extends DeepflowAbstractDto implements...,如果返回null的话,即使数据库里给用户配置了角色,框架也认为这个用户没有任何角色可以访问这个api,自然也就报401异常。...,没有用户的角色的话,在上一步return authorities;任然会返回一个null.所以这里把注释去掉应该就可以了。...三、访问@PreAuthorize修饰的方法报401 当访问某些被@PreAuthorize(“hasRole(‘ADMIN’)”)注解修饰的方法时,登录用户已经配置了ADMIN角色,可还是报401。

4.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mybatis使用generatedKey在插入数据时返回自增id始终为1,自增id实际返回到原对象当中的问题排查

    今天在使用数据库的时候,遇到一个场景,即在插入数据完成后需要返回此数据对应的自增主键id,但是在使用Mybatis中的generatedKey且确认各项配置均正确无误的情况下,每次插入成功后,返回的都是...终于凭借着一次Debugg发现的问题,原来在使用Mabatis中的insert或者insertSelective方式插入时,如使用int insert(TestGenKey testGenKey)时,返回值...int表示的是插入操作受影响的行数,而不是指的自增长id,那么返回的自增id到底去哪里了呢?...通过下面的Debugg我们知道自增id返回到testGenKey的原对象中去了。 举例示范配置 数据库示例表  generator的配置文件 <?...sex.trim(); } } 测试及Debugg 编写测试方法测试插入 插入成功后观察对应的变量对应的值 总结:调用Insert后插入操作之后,所得到自增长Id被赋值到原对象当中,而不是返回值

    5K10

    Spring Boot + Vue 项目部署到腾讯云后登录失败,返回 401 的完整排查过程

    但是部署到腾讯云服务器后,登录失败,前端提示:{"code":"401","msg":"认证失败,请重新登录"}浏览器开发者工具中看到请求:POST/api/user/login返回:401Unauthorized...二、最终结论本次登录失败主要由两个问题造成:问题1:Nginx代理路径错误前端请求/api/user/login但Nginx转发后,后端实际收到/user/login导致JWT白名单不匹配,直接返回401...这在普通接口里不一定有问题,但本项目的JWT过滤器白名单写的是:/api/user/login所以后端收到"/user/login"后,并不会认为这是公开接口,直接返回:{"code":"401","msg...如果返回:{"code":"401","msg":"认证失败,请重新登录"}说明可能被JWT或Security拦截。...、这次踩坑的核心教训401不一定是密码错如果返回:{"code":"401","msg":"认证失败,请重新登录"}优先怀疑:JWT过滤器SpringSecurity请求头tokenNginx路径转发而不是直接怀疑密码

    30010

    如何设计出优秀的Restful API?

    API接口的资源应始终为复数,如果我们要访问资源的一个实例,我们可以在URL中传递id或者name之类的。...服务器应始终返回正确的状态代码。 很多人喜欢把错误信息放在返回值中,典型的Code和Message,其实比较Low。...201 Created每当创建新实例时,都应返回此状态代码。 例如,使用POST方法创建新实例时,应始返回201状态代码。 204 No Content表示请求已成功处理,但未返回任何内容。...401 Unauthorized表示不允许客户端访问资源,并应使用所需凭据重新请求。 403 Forbidden表示请求有效且客户端已通过身份验证,但不允许客户端出于任何原因访问该页面或资源。...比如401表示用户身份认证失败,403表示你验证身份通过了,但是无权限操作资源。 在此,祝大家设计出优秀的Restful API!

    1.6K10

    # 从零搭建教学资源平台(四):用户认证与JWT鉴权实战 #WorkBuddy开发者分享季#

    ────────────────────────>││││⑥jwt.verify(token,secret)→解析出userId/roleLevel│⑦查DB获取完整用户信息→挂到req.user│⑧返回资源列表数据...valid){returnres.status(401).json({code:401,message:'用户名或密码错误'});}//3.签发JWT(payload只放非敏感信息)consttoken...user.role_level,//权限等级(给RBAC中间件用)roleName:user.role_name//角色名称(前端展示用)},JWT_SECRET,{expiresIn:JWT_EXPIRES});//4.返回令牌和用户信息...).json({code:401,message:'令牌已过期,请重新登录'});}returnres.status(401).json({code:401,message:'无效的认证令牌'});}}...res.json({code:200,data:[]});});运行后req.user始终是undefined,中间件好像没执行一样。控制台也不报错——因为代码本身没有语法错误。

    14610

    VFP AI 插件开发花絮17:WebSearch.dll 帮助文档

    Object – 始终返回一个 Collection 对象,结构如下: 集合属性/方法 类型 说明 ‎lError Logical 本次请求是否出错。‎....时,集合中仅有一个 Empty 对象,其属性含义变为: ‎Title – HTTP 状态码(如 ‎"401") ‎Link – 错误类型说明(如 ‎"API 密钥无效或缺失") ‎Snippet – 服务器返回的原始错误信息...备注 不同适配器返回的结果数量不同(例如 ‎AnythingLLMAdapter 只返回 1 条,‎ExaAdapter 最多返回 ‎nMaxResults 条)。...loResults.Item(1).Title && 例如 "401" ? loResults.Item(1).Link && 例如 "API 密钥缺失或无效" ?...错误处理建议 始终检查返回集合的 ‎lError 属性,不要假设 ‎Title/Link/Snippet 一定存在有效内容。

    27010
    领券