无法获取认证路径的数据 - Springboot JWT Auth

问题描述 投票:0回答:1

我有一个 JWT Auth 的基本演示,在其中我可以注册、登录(生成令牌)并进行正确身份验证,但是一旦我在邮递员中添加令牌,我只能获得“正常”状态,但无法从我的帐户中获取任何数据控制器


`@GetMapping
    public ResponseEntity<String>  getHome(){

        return ResponseEntity.ok("Hello world");


        //return userService.getUsers();
    }`


如果我从路径中删除身份验证并添加 .permitAll(),它确实有效:


`http.csrf(AbstractHttpConfigurer::disable)
     .authorizeHttpRequests(rq -> {
                        rq.requestMatchers("/api/user/**").permitAll();
                        rq.requestMatchers("/home/**").permitAll(); 
                        rq.anyRequest().authenticated();
                    });`


谢谢!

我尝试添加“rq.requestMatchers("/home/**").permitAll();”,并且restcontroller确实可以工作,但只是没有身份验证!

java spring-boot jwt
1个回答
0
投票

首先,您可以检查在授权选项卡下的 postmant 中选择了什么类型的令牌,也许它可以与 OAuth 2.0 等其他类型一起使用。

其次,确保您的应用程序中有一个像 JwtRequestFilter 这样的过滤器来拦截传入请求、提取 JWT 令牌并基于该令牌设置 Spring Security 的身份验证上下文。如果您不确定,请在您的拦截器中放置制动点并检查安全性是否识别该令牌

您还可以尝试添加通配符“/”并检查它是否可以在没有特定游行者的情况下工作:

http
.csrf(AbstractHttpConfigurer::disable)
.authorizeRequests(authorize -> authorize
    .antMatchers("/**").permitAll() // Allow all requests
    .anyRequest().authenticated()
);
© www.soinside.com 2019 - 2024. All rights reserved.