package com.aitrainer.api import org.jasypt.encryption.StringEncryptor import org.jasypt.encryption.pbe.PooledPBEStringEncryptor import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig import org.slf4j.LoggerFactory import org.springframework.boot.SpringApplication import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.builder.SpringApplicationBuilder import org.springframework.context.annotation.Bean @SpringBootApplication class ApiApplication { @Bean(name = ["jasyptStringEncryptor"]) fun stringEncryptor(): StringEncryptor? { val encryptor = PooledPBEStringEncryptor() val config = SimpleStringPBEConfig() config.password = "workouttest" config.algorithm = "PBEWithMD5AndDES" config.setKeyObtentionIterations("1000") config.setPoolSize("1") config.providerName = "SunJCE" config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator") config.stringOutputType = "base64" encryptor.setConfig(config) return encryptor } } private val logger = LoggerFactory.getLogger(ApiApplication::class.simpleName) @Override fun configure(application: SpringApplicationBuilder): SpringApplicationBuilder { return application.sources(ApiApplication::class.java) } fun main(args: Array) { logger.info(" ---- Start aitrainer API") val app = SpringApplication(ApiApplication::class.java) app.setAdditionalProfiles("ssl") app.run(*args) }