gpt4 book ai didi

java - Rest API 的基本身份验证

转载 作者:行者123 更新时间:2023-12-02 02:17:50 24 4
gpt4 key购买 nike

我使用 springboot 创建了一些 api。现在我想保留其余 api 的身份验证。只有特定用户才能访问他的数据。我在 postgress 数据库中有两个表,如下所示。

enter image description here

1.点击没有 header 的api,使用正确的响应代码可以正常工作

enter image description here

2.使用基本身份验证访问 api,其中用户 ID 和密码应与数据库匹配 enter image description here

enter image description here

我的期望是正确的 json 响应,状态代码为 200,但仍然出现 401 Unauthorized。为什么?

我的SecurityConfig.java文件

package com.demo.itemservice.config;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter
{

@Autowired
private DataSource dataSource;



@Override
protected void configure(HttpSecurity http) throws Exception
{
http
.csrf().disable()
.authorizeRequests().anyRequest().authenticated()
.and()
.httpBasic();


}


@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(dataSource)
.usersByUsernameQuery("select userid,pgp_sym_decrypt(password,'mySecretKey') from users where userid=?")
.authoritiesByUsernameQuery("select userid, role from userroles where userid=?");
}

}

最佳答案

你能尝试一下下面的代码吗?我用 antMatchers() 替换了 anyRequest()

 http
.csrf().disable()
.authorizeRequests().antMatchers("/barista/**").authenticated()
.and()
.httpBasic();

关于java - Rest API 的基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57290489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com