У меня есть такой фильтр, где я проверяю токен, я хочу перенести этот токен за пределы этого класса, потому что я хочу этот токен в другом классе для запроса.
@Override
public void filter(ContainerRequestContext requestContext) {
// Get the Authorization header from the request
String authorizationHeader = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);
// Validate the Authorization header
if (!isTokenBasedAuthentication(authorizationHeader)) {
abortWithUnauthorized(requestContext);
return;
}
// Extract the token from the Authorization header
token = authorizationHeader.substring(AUTHENTICATION_SCHEME.length()).trim();
try {
// Validate the token
validateToken(token);
}
и у меня есть метод в другом классе, подобный следующему: где мне нужен токен?
@Inject
AuthenticationFilter auth;
@GET
@Secured
@Path("/books")
@Produces("application/json")
public List<Book> getBooks() {
TypedQuery<Book> query = em.createQuery("SELECT s.books from Student s where s.token = :token", Book.class);
System.out.println("Token: ------- " + auth.getToken());
query.setParameter("token",auth.getToken());
List<Book> resultList = query.getResultList();
return resultList;
}
Что плохого в этом вводе для получения токена?