I am doing simple request of getting one user by id by Postman. But response status is 200 and it is not returning anything. However in my user table I have data. I thought that problem is with antMatchers but couldnt manage it. There is no log data in the console. i can access to other controllers but with this user controller there is a problem. Why am I not able to connect to my backend?
SecurityConfig
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private UserDetailsServiceImpl userDetailsService;
private JwtAuthenticationEntryPoint handler;
public SecurityConfig(UserDetailsServiceImpl userDetailsService, JwtAuthenticationEntryPoint handler) {
this.userDetailsService = userDetailsService;
this.handler = handler;
}
/*@Bean
public JwtAuthenticationFilter jwtAuthenticationFilter() {
return new JwtAuthenticationFilter();
}*/
@Bean(BeanIds.AUTHENTICATION_MANAGER)
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
public void configure(AuthenticationManagerBuilder authenticationManagerBuilder) throws Exception {
authenticationManagerBuilder.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOriginPattern("*");
config.addAllowedHeader("*");
config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET");
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE");
config.addAllowedMethod("PATCH");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
@Override
public void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.cors()
.and()
.csrf().disable()
.exceptionHandling().authenticationEntryPoint(handler).and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/type")
.permitAll()
.antMatchers(HttpMethod.GET, "/nation")
.permitAll()
.antMatchers(HttpMethod.GET, "/recept")
.permitAll()
.antMatchers(HttpMethod.GET, "/recept/**")
.permitAll()
.antMatchers(HttpMethod.GET, "/ingredient")
.permitAll()
.antMatchers(HttpMethod.GET, "/recept/{\\\\d+}")
.permitAll()
.antMatchers("/users/**")
.permitAll()
.antMatchers("/auth/**")
.permitAll()
.anyRequest().authenticated();
httpSecurity.addFilterBefore(new JwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
}
}
UserController
@Slf4j
@RestController
public class UserController {
private UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@RequestMapping(value="/users",method= RequestMethod.GET, headers = "Accept=application/json")
public List<UserResponse> getAllUsers(){
return userService.getAllUsers().stream().map(u -> new UserResponse(u)).collect(Collectors.toList());
}
@RequestMapping(value="/users",method= RequestMethod.POST, headers = "Accept=application/json")
public ResponseEntity<Void> createUser(@RequestBody User newUser) {
User user = userService.saveOneUser(newUser);
if(user != null)
return new ResponseEntity<>(HttpStatus.CREATED);
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
@RequestMapping(value="/users/{userId}",method= RequestMethod.GET, headers = "Accept=application/json")
public UserResponse getOneUser(@PathVariable Long userId) {
log.info (String.valueOf (userId));
User user = userService.getOneUserById(userId);
if(user == null) {
throw new UserNotFoundException ();
}
return new UserResponse(user);
}
@RequestMapping(value="/users/{userId}",method= RequestMethod.PUT, headers = "Accept=application/json")
public ResponseEntity<Void> updateOneUser(@PathVariable Long userId, @RequestBody User newUser) {
User user = userService.updateOneUser(userId, newUser);
if(user != null)
return new ResponseEntity<>(HttpStatus.OK);
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
@RequestMapping(value="/users/{userId}",method= RequestMethod.DELETE, headers = "Accept=application/json")
public void deleteOneUser(@PathVariable Long userId) {
userService.deleteById(userId);
}
}
I thing you need to add the word 'api' in your http request, for example http://localhost:8080/api/users
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.