Прежде всего, я не являюсь носителем языка, поэтому я, вероятно, сделаю много ошибок (поэтому я сейчас извиняюсь).
Хорошо, давайте представим мою проблему, допустим, у меня есть простой класс RestController в java:
@RestController
public class UserController {
// repository autowired
@GetMapping("/repository/{username}")
public Flux<Repository> getAllUserRepositories(@PathVariable String username) {
return repositoryService.getAllUserRepositories(new User(username));
}
@PostMapping("/user/login")
public String login(@RequestBody User user) {
long now = System.currentTimeMillis();
return Jwts.builder()
.setSubject(user.getLogin())
.claim("roles", "user")
.setIssuedAt(new Date(now))
.setExpiration(new Date(now + 1000 * 60))
.signWith(SignatureAlgorithm.HS512, "secretkey").compact();
}
}
Допустим, метод входа в систему возвращает токен JWT для аутентификации моего / репозитория / {имя пользователя}. И скажем, у меня есть фильтр для проверки токена (если он действителен и другие вещи) Если я сделаю это, то обеспечу целую конечную точку Но я хочу защитить его намного больше, я хочу позволить пользователю с указанным c именем пользователя использовать эту конечную точку {username}. Как я могу это сделать? Как я могу передать этот токен в контроллер? (В данный момент он остается на фильтре).