我正试图用Postman测试一个端点,但收到一个错误。我正在尝试测试一个搜索功能,该功能应该搜索保存在数据库中的所有酒店
- 路由:
http://localhost:8080/hotels
- 在邮递员中收到错误(作为输出(:
{
"timestamp": "2022-08-17T04:43:07.249+00:00",
"status": 401,
"error": "Unauthorized",
"path": "/hotels"
}
- 我不得不提到,在poster中,我使用的是GET HTTP方法+授权:"无授权">
- 如果我在";基本认证;我收到以下消息:
could not get a response
- 我的应用程序中的安全配置:
protected void configure(HttpSecurity security) throws Exception {
security
.csrf().disable()
.cors().disable()
.authorizeRequests()
.antMatchers("/trip", "/hotels")
.hasAnyAuthority("ADMIN")
.and()
.httpBasic()
.and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
为了帮助我,我可以发布代码中的其他部分,或者我可以在Github上上传项目并在这里放一个链接。
状态401表示您的凭据无效。您的代码在这里:
.antMatchers("/trip", "/hotels")
.hasAnyAuthority("ADMIN")
说你需要向拥有";ADMIN";角色然后,您的端点将处理请求并向您发送响应。否则,你总是会得到401。在poster中设置基本身份验证,并输入您的用户名和密码(具有ADMIN角色的用户(,然后它将工作
@pan leszeczek
-
我不认为是来自那个地方,下面你会发现我的代码中的另一部分。
System.out.println("Inserting roles in database");
Role userRole=新角色((;userRole.setName(RoleTypes.USER(;userRole.setDescription("此角色是为用户设计的"(;
Role userRole1=新角色((;userRole1.setName(RoleTypes.USER(;userRole1.setDescription("重复角色"(;
角色adminRole=新角色((;adminRole.setName(RoleTypes.ADMIN(;adminRole.setDescription("此角色可以添加酒店和旅行"(;
User adminUser=新用户((;adminUser.setUsername("admin"(;adminUser.setPassword("admin"(;
Role-adminRoleInDatbase=roleService.findByName(RoleTypes.ADMIN(;adminUser.setRole(adminRoleInDatbase(;
-
"何时使用";张贴";方法,在poster中,使用user+pass-admin-admin进行基本身份验证,我可以在数据库中插入新的酒店,但当我尝试使用GET方法时A( 无身份验证-我收到401错误b( 来自邮递员的admin+admin消息的基本身份验证:无法获得响应