KTor-Version MyBatis
Spring Boot - Security
Token-based API authentication with Spring and JWT
Spring Boot + KeyCloak
KeyCloak - Spring Security Adapter
- iBatis (works with SQLite or Postgres-DB)
- JWT support (mimics KeyCloak-Token)
- conditional Tests (e.g. ProtectedControllerTest)
- configurable WebSecurity (use.keycloak=true|false)
use.keycloak=false uses WebSecurityConfig
use.keycloak=true uses KeycloakConfig
- Chat
- Freemarker-Template-Response (StaticPages.kt)
Can be configured in application.properties
# catshostel.websocket=chatserver
catshostel.websocket=simple
You can send a "Ping" via Get-Request:
Check out my BasicController
# cd to DB-Directory
cd resources/db
# Import schema (Postgres works just fine here)
sqlite catshostel.db < sqlite-1-schema.sql
Set your working dir to
My additional settings:
Valid Redirect URIs: http://localhost:8081/*
Diese Variante hat am 12.3.2021 noch funktioniert:
Generell benötigt Swagger die Klasse SwaggerConfig
.
In GsonConfig
muss noch der SpringfoxJsonToGsonAdapter
eingebunden werden
package at.mikemitterer.catshostel.config
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import springfox.documentation.builders.PathSelectors
import springfox.documentation.builders.RequestHandlerSelectors
import springfox.documentation.spi.DocumentationType
import springfox.documentation.spring.web.plugins.Docket
import springfox.documentation.swagger2.annotations.EnableSwagger2
/**
* Swagger 2 is enabled through the @EnableSwagger2 annotation.
*
* @since 13.05.20, 15:36
*/
@Configuration
@EnableSwagger2
class SwaggerConfig {
@Bean
fun api(): Docket {
return Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
}
}
Der SpringfoxJsonToGsonAdapter
sieht so aus:
/**
* Serialization-Helper for Swagger
*
* Mehr:
* http://www.programmersought.com/article/7688804471/
*
* @since 11.05.20, 18:30
*/
class SpringfoxJsonToGsonAdapter : JsonSerializer<Json> {
override fun serialize(json: Json, type: Type, context: JsonSerializationContext): JsonElement
= JsonParser.parseString(json.value())
}