Cześć wszystkim ! W aplikacji mamy kilka tokenów... drugi do wyboru firmy logowania i trzeci do wyboru regionu. Dla testów integracyjnych muszę przejść po nim wszystkim , natomiast trzeci token jest robiony na podstawie drugiego( z wyborem firmy), oraz zawiera wybrany region. Przy tworzeniu trzeciego tokena - drugi jest wycinany z HttpServletRequest, w przeglądarce lub postamanie to jest domyślnie robione, natomiast w kodzie mam to robić własnoręcznie.
Moje pytanie: Jak zapisać token w header w HttpServlet Request? W żaden sposób nie mogę tego znaleźć
protected String getTokenWithoutBearer() {
HttpServletRequest bearer = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes()))
.getRequest();
return parseToken(bearer);
}
public String createToken(RegionSelection regionSelection, boolean isRefresh) {
var claims = jwtContext.getClaims();
return Jwts.builder()
.setSubject(jwtContext.getEmail())
.claim(ID_CLAIM, claims.get(ID_CLAIM, String.class))
.claim(ACCESS_ID_CLAIM, claims.get(ACCESS_ID_CLAIM, String.class))
.claim(ROLE_ID_CLAIM, claims.get(ROLE_ID_CLAIM, Role.class))
.claim(COMPANY_ID_CLAIM, claims.get(COMPANY_ID_CLAIM, String.class))
.claim(COMPANY_NAME_CLAIM, claims.get(COMPANY_NAME_CLAIM, String.class))
.claim(COMPANY_PRIVILEGE_CLAIM, claims.get(COMPANY_PRIVILEGE_CLAIM, Boolean.class))
.claim(COMPANY_RIGHTS_CLAIM, claims.get(COMPANY_RIGHTS_CLAIM, Rights.class))
.claim(REGION_ID_CLAIM, regionSelection.getRegionId())
.claim(REGION_NAME_CLAIM, regionSelection.getRegionName())
.setIssuedAt(new Date())
.setExpiration(new Date((new Date()).getTime() + (isRefresh ? JWT_REFRESH_TOKEN_VALIDITY : JWT_TOKEN_VALIDITY)))
.signWith(SignatureAlgorithm.HS256, jwtSettings.getSecret())
.compact();
}