解决Spring Boot 整合Security后,所有接口提示Unauthorized、返回401、 跳转到登陆页面

SpringBoot只要依赖了Spring Security包后(pom.xml中多了spring-boot-starter-security的jar包),默认就已经开启了权限验证,如果当前工程是不需要纳入权限管理的话,就可以直接禁用掉Security的认证。下面是方法:

 

Spring Boot 2.x和Spring Security 5.x前禁用认证

在application.yml或application.properties中加入这么一段(yml与properties差异请自行搜索,这里示意)

security.basic.enabled=false
management.security.enabled=false

Spring Boot 2.x和Spring Security 5.x后禁用认证

由于改版之后,如下的一些配置均废弃


security.basic.authorize-mode
security.basic.enabled
security.basic.path
security.basic.realm
security.enable-csrf
security.headers.cache
security.headers.content-security-policy
security.headers.content-security-policy-mode
security.headers.content-type
security.headers.frame
security.headers.hsts
security.headers.xss
security.ignored
security.require-ssl

导致即使按照上面的配置配好后也无法生效

解决办法

在启动类前的@SpringBootApplication注解中加入exclude属性SecurityAutoConfigurationManagementWebSecurityAutoConfiguration,以排除安全认证

 


@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, 
        ManagementWebSecurityAutoConfiguration.class})
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class,args);
    }

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot中的"Unauthorized"(未授权)错误通常表示请求缺少有效的身份验证凭据或者提供的凭据不被接受。 要解决这个问题,你可以采取以下步骤: 1. 确保你的请求中包含了正确的身份验证凭据,比如用户名和密码、访问令牌等。 2. 检查你的Spring Boot应用程序的安全配置,确保安全配置正确。你可以使用Spring Security来添加身份验证和授权功能。 - 如果你使用基本身份验证(Basic Authentication),需要确保你的请求中包含了正确的Authorization头,格式为"Basic \<base64编码的用户名:密码\>"。 - 如果你使用令牌身份验证(Token Authentication),需要确保你的请求中包含了正确的令牌,通常是在Authorization头中的Bearer令牌,格式为"Bearer \<token\>"。 3. 检查你的Spring Boot应用程序的授权配置,确保只有授权用户才能访问需要授权的资源。你可以使用Spring Security来配置角色和权限。 - 如果你使用基于角色的授权,确保用户拥有访问资源所需的角色。 - 如果你使用基于权限的授权,确保用户拥有访问资源所需的权限。 4. 如果你的请求要求用户登录,确保用户已经通过认证并具有有效的凭据。 如果上述步骤都正确配置并且你仍然遇到"Unauthorized"错误,你可能需要进一步检查你的请求和服务器端的日志,查看是否有其他错误或者更详细的错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值