From c8c05a03b685e88185568736d6b434e18e9bf2ad Mon Sep 17 00:00:00 2001 From: Eneko Nieto Date: Fri, 22 Jan 2021 02:32:55 +0100 Subject: [PATCH] CORS corregido --- .../eu/fosil/okupamicoche/entities/ApiResponse.kt | 8 +++++--- .../okupamicoche/spring/conf/JWTSecurityConfig.kt | 12 ++++++------ .../spring/controller/ApiRestController.kt | 6 ++++-- .../spring/controller/TravelRestController.kt | 8 +++----- .../spring/controller/UserRestController.kt | 4 +++- 5 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/main/kotlin/eu/fosil/okupamicoche/entities/ApiResponse.kt b/src/main/kotlin/eu/fosil/okupamicoche/entities/ApiResponse.kt index 76579bc..1fc965a 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/entities/ApiResponse.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/entities/ApiResponse.kt @@ -3,7 +3,9 @@ package eu.fosil.okupamicoche.entities import com.fasterxml.jackson.annotation.JsonInclude @JsonInclude(JsonInclude.Include.NON_NULL) -class ApiResponse(val success: Boolean, val data: T?, val error: Exception?) { +class ApiResponse(val success: Boolean, val data: T?, val error: ApiError?) { constructor(success: Boolean, data: T) : this(success, data, null) - constructor(success: Boolean, error: Exception) : this(success, null, error) -} \ No newline at end of file + constructor(success: Boolean, error: ApiError) : this(success, null, error) +} + +class ApiError(val code: String, val msg: String?) \ No newline at end of file diff --git a/src/main/kotlin/eu/fosil/okupamicoche/spring/conf/JWTSecurityConfig.kt b/src/main/kotlin/eu/fosil/okupamicoche/spring/conf/JWTSecurityConfig.kt index 221dc3e..f3e9175 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/spring/conf/JWTSecurityConfig.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/spring/conf/JWTSecurityConfig.kt @@ -7,14 +7,14 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur @Configuration class JWTSecurityConfig : WebSecurityConfigurerAdapter() { @Throws(Exception::class) - override fun configure(http: HttpSecurity) {// @formatter:off + override fun configure(http: HttpSecurity) {//@formatter:off http.cors() - .and() - .authorizeRequests() - .anyRequest() - .hasAuthority("SCOPE_profile") +// .and() +// .authorizeRequests() +// .anyRequest() +// .hasAuthority("SCOPE_profile") .and() .oauth2ResourceServer() - .jwt(); + .jwt() }//@formatter:on } \ No newline at end of file diff --git a/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/ApiRestController.kt b/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/ApiRestController.kt index a848424..aa11dbc 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/ApiRestController.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/ApiRestController.kt @@ -1,17 +1,19 @@ package eu.fosil.okupamicoche.spring.controller +import eu.fosil.okupamicoche.entities.ApiError import eu.fosil.okupamicoche.entities.ApiResponse import eu.fosil.okupamicoche.entities.UserIdNotFoundException import org.springframework.security.core.context.SecurityContextHolder import org.springframework.security.oauth2.jwt.Jwt -open class ApiRestController { +interface ApiRestController { fun response(function: () -> T): ApiResponse { return try { val data = function() ApiResponse(true, data) } catch (e: Exception) { - ApiResponse(false, e) + e.printStackTrace() + ApiResponse(false, ApiError(e.javaClass.canonicalName, e.message)) } } diff --git a/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/TravelRestController.kt b/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/TravelRestController.kt index 0244385..22efb6a 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/TravelRestController.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/TravelRestController.kt @@ -9,18 +9,16 @@ import eu.fosil.okupamicoche.spring.dto.TravelDto import eu.fosil.okupamicoche.usecases.travel.* import org.springframework.data.repository.findByIdOrNull import org.springframework.validation.annotation.Validated -import org.springframework.web.bind.annotation.ModelAttribute -import org.springframework.web.bind.annotation.RequestMapping -import org.springframework.web.bind.annotation.RequestParam -import org.springframework.web.bind.annotation.RestController +import org.springframework.web.bind.annotation.* @RestController @RequestMapping("/api/travel") +@CrossOrigin(origins = ["http://localhost:4200"]) class TravelRestController( private val userRepository: UserRepository, private val travelRepository: TravelRepository -) : ApiRestController() { +) : ApiRestController { @RequestMapping("/create") fun createTravel(@ModelAttribute @Validated travel: TravelDto): ApiResponse { diff --git a/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/UserRestController.kt b/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/UserRestController.kt index e2535ff..6ceae90 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/UserRestController.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/spring/controller/UserRestController.kt @@ -7,13 +7,15 @@ import eu.fosil.okupamicoche.spring.dto.CreateUserDto import eu.fosil.okupamicoche.spring.dto.UserDto import eu.fosil.okupamicoche.usecases.user.* import org.springframework.validation.annotation.Validated +import org.springframework.web.bind.annotation.CrossOrigin import org.springframework.web.bind.annotation.RequestBody import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @RestController @RequestMapping("/api/user") -class UserRestController(private val userRepository: UserRepository) : ApiRestController() { +@CrossOrigin(origins = ["http://localhost:4200"]) +class UserRestController(private val userRepository: UserRepository) : ApiRestController { @RequestMapping("/create") fun createUser(@RequestBody @Validated createUserDto: CreateUserDto): ApiResponse {