Программисты JAVA общаются здесь
Anonymous
@Autowired компонент Нуль
Сообщение
Anonymous » 25 май 2024, 05:21
Я не знаю почему, но мой компонент @Autowired (jwtService) возвращает исключение NullPointerException.
Вот мой код:
Это мой JwtTokenValidator класс:
Код: Выделить всё
@Component
@AllArgsConstructor
@NoArgsConstructor
public class JwtTokenValidator extends OncePerRequestFilter {
@Autowired
private JwtService jwtService;
@Override
protected void doFilterInternal(@NonNull HttpServletRequest request,
@NonNull HttpServletResponse response,
@NonNull FilterChain filterChain) throws ServletException, IOException {
final String authHeader = request.getHeader("Authorization");
if (authHeader == null || !authHeader.startsWith("Bearer ")) {
filterChain.doFilter(request, response);
return;
}
String token = authHeader.substring(7);
try {
String email = jwtService.extractEmail(token);
String authorities = jwtService.extractAuthorities(token);
List auth = AuthorityUtils.commaSeparatedStringToAuthorityList(authorities);
Authentication authentication = new UsernamePasswordAuthenticationToken(email, null, auth);
SecurityContextHolder.getContext().setAuthentication(authentication);
filterChain.doFilter(request, response);
} catch (Exception e) {
SecurityContextHolder.clearContext();
throw e;
}
}
}
а это мой класс JwtService:
Код: Выделить всё
@Service
public class JwtService {
private SecretKey key = Keys.hmacShaKeyFor(JwtConstant.SECRET_KEY.getBytes());
public String extractEmail(String token) {
return String.valueOf(extractAllClaims(token).get("email"));
}
public String extractAuthorities(String token) {
return String.valueOf(extractAllClaims(token).get("authorities"));
}
public Claims extractAllClaims(String token){
return Jwts.parserBuilder()
.setSigningKey(key)
.build()
.parseClaimsJws(token)
.getBody();
}
public String generateToken(Authentication authentication){
Collection
Подробнее здесь: [url]https://stackoverflow.com/questions/78531238/autowired-component-null[/url]
1716603682
Anonymous
Я не знаю почему, но мой компонент @Autowired (jwtService) возвращает исключение NullPointerException. Вот мой код: Это мой JwtTokenValidator класс: [code]@Component @AllArgsConstructor @NoArgsConstructor public class JwtTokenValidator extends OncePerRequestFilter { @Autowired private JwtService jwtService; @Override protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull FilterChain filterChain) throws ServletException, IOException { final String authHeader = request.getHeader("Authorization"); if (authHeader == null || !authHeader.startsWith("Bearer ")) { filterChain.doFilter(request, response); return; } String token = authHeader.substring(7); try { String email = jwtService.extractEmail(token); String authorities = jwtService.extractAuthorities(token); List auth = AuthorityUtils.commaSeparatedStringToAuthorityList(authorities); Authentication authentication = new UsernamePasswordAuthenticationToken(email, null, auth); SecurityContextHolder.getContext().setAuthentication(authentication); filterChain.doFilter(request, response); } catch (Exception e) { SecurityContextHolder.clearContext(); throw e; } } } [/code] а это мой класс JwtService: [code]@Service public class JwtService { private SecretKey key = Keys.hmacShaKeyFor(JwtConstant.SECRET_KEY.getBytes()); public String extractEmail(String token) { return String.valueOf(extractAllClaims(token).get("email")); } public String extractAuthorities(String token) { return String.valueOf(extractAllClaims(token).get("authorities")); } public Claims extractAllClaims(String token){ return Jwts.parserBuilder() .setSigningKey(key) .build() .parseClaimsJws(token) .getBody(); } public String generateToken(Authentication authentication){ Collection Подробнее здесь: [url]https://stackoverflow.com/questions/78531238/autowired-component-null[/url]