
fi.evolver.basics.spring.auth.JwtController Maven / Gradle / Ivy
package fi.evolver.basics.spring.auth;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import fi.evolver.basics.spring.auth.entity.JwtToken;
import fi.evolver.basics.spring.http.MessageType;
import fi.evolver.basics.spring.http.crud.CrudController;
import fi.evolver.basics.spring.log.LogPolicy;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
@RestController
@RequestMapping("/jwt")
@ConditionalOnProperty("authorization.secret")
public class JwtController extends CrudController {
private final JwtAuthorization jwtAuthorization;
@Autowired
public JwtController(JwtAuthorization jwtAuthorization, JwtTokenRepository jwtTokenRepository) {
super(jwtTokenRepository);
this.jwtAuthorization = jwtAuthorization;
}
@Operation(summary = "Generates a new Jwt token")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "Generated JWT token including it's ID"),
@ApiResponse(responseCode = "500", description = "Failed handling request", content = @Content)
})
@GetMapping("/generate")
@LogPolicy(LogPolicy.Policy.NONE)
@MessageType("Token")
public ResponseEntity generateToken() {
String jwtId = UUID.randomUUID().toString();
String token = jwtAuthorization.generateJwtToken(jwtId);
return ResponseEntity.ok(String.format("%s: %s", jwtId, token));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy