Link to home
Start Free TrialLog in
Avatar of chalie001
chalie001

asked on

You would need to provide the Jwt Token to Access This resource

hi am geting this error
User generated image
Avatar of girionis
girionis
Flag of Greece image

Obviously you need to pass the JWT (probably in the Bearer).
for JWT standard, you can refer to: https://jwt.io/
Avatar of chalie001
chalie001

ASKER

i do have
package com.in28minutes.rest.webservices.restfulwebservices.jwt.resource;


import java.util.Objects;


import javax.servlet.http.HttpServletRequest;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.DisabledException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;


import com.in28minutes.rest.webservices.restfulwebservices.jwt.JwtTokenUtil;
import com.in28minutes.rest.webservices.restfulwebservices.jwt.JwtUserDetails;


@RestController
@CrossOrigin(origins = "http://localhost:4200")
public class JwtAuthenticationRestController {


   @Value("${jwt.http.request.header}")
   private String tokenHeader;


   @Autowired
   private AuthenticationManager authenticationManager;


   @Autowired
   private JwtTokenUtil jwtTokenUtil;


   @Autowired
   private UserDetailsService jwtInMemoryUserDetailsService;


   @RequestMapping(value = "${jwt.get.token.uri}", method = RequestMethod.POST)
   public ResponseEntity<?> createAuthenticationToken(@RequestBody JwtTokenRequest authenticationRequest)
         throws AuthenticationException {


      authenticate(authenticationRequest.getUsername(), authenticationRequest.getPassword());


      final UserDetails userDetails = jwtInMemoryUserDetailsService
            .loadUserByUsername(authenticationRequest.getUsername());


      final String token = jwtTokenUtil.generateToken(userDetails);


      return ResponseEntity.ok(new JwtTokenResponse(token));
   }


   @RequestMapping(value = "${jwt.refresh.token.uri}", method = RequestMethod.GET)
   public ResponseEntity<?> refreshAndGetAuthenticationToken(HttpServletRequest request) {
      String authToken = request.getHeader(tokenHeader);
      final String token = authToken.substring(7);
      String username = jwtTokenUtil.getUsernameFromToken(token);
      JwtUserDetails user = (JwtUserDetails) jwtInMemoryUserDetailsService.loadUserByUsername(username);


      if (jwtTokenUtil.canTokenBeRefreshed(token)) {
         String refreshedToken = jwtTokenUtil.refreshToken(token);
         return ResponseEntity.ok(new JwtTokenResponse(refreshedToken));
      } else {
         return ResponseEntity.badRequest().body(null);
      }
   }


   @ExceptionHandler({ AuthenticationException.class })
   public ResponseEntity<String> handleAuthenticationException(AuthenticationException e) {
      return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(e.getMessage());
   }


   private void authenticate(String username, String password) {
      Objects.requireNonNull(username);
      Objects.requireNonNull(password);


      try {
         authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, password));
      } catch (DisabledException e) {
         throw new AuthenticationException("USER_DISABLED", e);
      } catch (BadCredentialsException e) {
         throw new AuthenticationException("INVALID_CREDENTIALS", e);
      }
   }
}



Open in new window

This question needs an answer!
Become an EE member today
7 DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform.
View membership options
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.