Мне удалось войти в систему с зашифрованным паролем и электронной почтой, но я хотел создать сеанс с токеном и столкнуться с трудностями с этой ошибкой.
Ошибка от почты:
403 Запрещено < /p>
Доступ к ресурсу запрещен. В почте -менеджере < /p>
Ошибка от java: < /p>
.s.security.web.filterchainproxy: защита Post /error < /p>
o.s.s.w.a.anonymousauthenticationfilter: установить SecurityContextholder в анонимный SecurityContext < /p>
.S.S.W.A.HTTP403ForbiddenEntRypoint: предварительная точка записи. Отклонение доступа < /p>
Я размещаю кодовые последовательности, из которых я предполагаю, что проблема: < /p>
public class JwtAuthentificationFilter extends OncePerRequestFilter {
private final JwtUtil jwtUtil;
private final CustomUserDetailsService userService;
@Override
protected void doFilterInternal(@NonNull HttpServletRequest request,
@NonNull HttpServletResponse response,
@NonNull FilterChain filterChain) throws ServletException, IOException {
final String authorizationHeader = request.getHeader("Authorization");
final String jwt;
final String userEmail;
if(authorizationHeader == null || !authorizationHeader.startsWith("Bearer ")) {
filterChain.doFilter(request, response);
return;
}
jwt = authorizationHeader.substring(7);
userEmail=jwtUtil.extractUserName(jwt);
if(userEmail != null && !userEmail.isEmpty() && SecurityContextHolder.getContext().getAuthentication() == null) {
UserDetails userDetails= userService.loadUserByUsername(userEmail);
if(jwtUtil.isValidToken(jwt, userDetails)) {
SecurityContext context = SecurityContextHolder.createEmptyContext();
UsernamePasswordAuthenticationToken authToken =new UsernamePasswordAuthenticationToken(userDetails,
null, userDetails.getAuthorities());
authToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
context.setAuthentication(authToken);
SecurityContextHolder.setContext(context);
}
}
filterChain.doFilter(request, response);
}
< /code>
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http, JwtAuthentificationFilter jwtAuthentificationFilter) throws Exception {
http
.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(auth ->
auth.requestMatchers("/api/users", "/api/user/**","/api/authenticate").permitAll() // Allow login request
.anyRequest().authenticated()
).sessionManagement(manager->manager.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authenticationProvider(authenticationProvider())
.addFilterBefore(jwtAuthentificationFilter, UsernamePasswordAuthenticationFilter.class)
.formLogin(AbstractHttpConfigurer::disable) ;// Prevent redirect to login page
return http.build();
}
@Bean
public AuthenticationProvider authenticationProvider() {
DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
authProvider.setUserDetailsService(customUserDetailsService);
authProvider.setPasswordEncoder(passwordEncoder());
return authProvider;
}
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration config) throws Exception {
return config.getAuthenticationManager();
}
< /code>
I tried to modify the code, I would get the same error no matter what I did. I watched a tutorial being the beginning. I did the same thing and it doesn't work
Подробнее здесь: https://stackoverflow.com/questions/794 ... in-postman
У меня есть эта ошибка в браузере, а также в почтальоне ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение