Skip to content

Commit

Permalink
local setup on java code itself
Browse files Browse the repository at this point in the history
  • Loading branch information
mrFlick72 committed Dec 10, 2024
1 parent 364a88d commit 8ef1797
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 25 deletions.
45 changes: 38 additions & 7 deletions src/main/kotlin/com/vauthenticator/server/init/AccountSetUpJob.kt
Original file line number Diff line number Diff line change
@@ -1,17 +1,48 @@
package com.vauthenticator.server.init

import com.vauthenticator.server.oauth2.clientapp.adapter.cache.CachedClientApplicationRepository
import com.vauthenticator.server.oauth2.clientapp.domain.*
import com.vauthenticator.server.oauth2.clientapp.domain.AuthorizedGrantType.CLIENT_CREDENTIALS
import com.vauthenticator.server.oauth2.clientapp.domain.Scope.Companion.AVAILABLE_SCOPES
import com.vauthenticator.server.account.domain.Account
import com.vauthenticator.server.account.domain.AccountMandatoryAction
import com.vauthenticator.server.account.domain.AccountRepository
import com.vauthenticator.server.password.domain.VAuthenticatorPasswordEncoder
import com.vauthenticator.server.role.domain.Role
import com.vauthenticator.server.role.domain.RoleRepository
import org.springframework.boot.ApplicationArguments
import org.springframework.boot.ApplicationRunner
import org.springframework.stereotype.Service
import java.util.*

@Service
class AccountSetUpJob() : ApplicationRunner {
override fun run(args: ApplicationArguments?) {
TODO("Not yet implemented")
class AccountSetUpJob(
private val roleRepository: RoleRepository,
private val accountRepository: AccountRepository,
private val passwordEncoder: VAuthenticatorPasswordEncoder
) : ApplicationRunner {
override fun run(args: ApplicationArguments) {
val userRole = Role("ROLE_USER", "Generic user role")
val adminRole = Role("VAUTHENTICATOR_ADMIN", "VAuthenticator admin role")

roleRepository.save(userRole)
roleRepository.save(adminRole)

accountRepository.save(
Account(
accountNonExpired = true,
accountNonLocked = true,
credentialsNonExpired = true,
enabled = true,
"[email protected]",
passwordEncoder.encode("secret"),
authorities = setOf(userRole.name, adminRole.name),
email = "[email protected]",
emailVerified = true,
firstName = "Admin",
lastName = "",
birthDate = Optional.empty(),
phone = Optional.empty(),
locale = Optional.empty(),
mandatoryAction = AccountMandatoryAction.NO_ACTION
)
)
}

}
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
package com.vauthenticator.server.init

import com.vauthenticator.server.oauth2.clientapp.adapter.cache.CachedClientApplicationRepository
import com.vauthenticator.server.oauth2.clientapp.domain.*
import com.vauthenticator.server.oauth2.clientapp.domain.AuthorizedGrantType.*
import com.vauthenticator.server.oauth2.clientapp.domain.Scope.Companion.AVAILABLE_SCOPES
import com.vauthenticator.server.oauth2.clientapp.domain.Scope.Companion.MFA_ALWAYS
import com.vauthenticator.server.oauth2.clientapp.domain.WithPkce.Companion.disabled
import com.vauthenticator.server.password.domain.VAuthenticatorPasswordEncoder
import org.springframework.boot.ApplicationArguments
import org.springframework.boot.ApplicationRunner
import org.springframework.stereotype.Service

@Service
class ClientApplicationSetUpJob(
private val clientApplicationRepository: CachedClientApplicationRepository
private val clientApplicationRepository: ClientApplicationRepository,
private val passwordEncoder: VAuthenticatorPasswordEncoder
) : ApplicationRunner {
override fun run(args: ApplicationArguments) {
clientApplicationRepository.save(m2mDefaultAdminClientApp())
Expand All @@ -19,9 +22,9 @@ class ClientApplicationSetUpJob(

private fun managementUIDefaultClientApp() = ClientApplication(
clientAppId = ClientAppId("vauthenticator-management-ui"),
secret = Secret("secret"),
scopes = Scopes.from(*(AVAILABLE_SCOPES - Scope.MFA_ALWAYS).toTypedArray()),
withPkce = WithPkce.disabled,
secret = Secret(passwordEncoder.encode("secret")),
scopes = Scopes.from(*(AVAILABLE_SCOPES - MFA_ALWAYS).toTypedArray()),
withPkce = disabled,
authorizedGrantTypes = AuthorizedGrantTypes.from(AUTHORIZATION_CODE, REFRESH_TOKEN),
webServerRedirectUri = CallbackUri("http://local.management.vauthenticator.com:8080/login/oauth2/code/client"),
accessTokenValidity = TokenTimeToLive(3600),
Expand All @@ -34,9 +37,9 @@ class ClientApplicationSetUpJob(

private fun m2mDefaultAdminClientApp() = ClientApplication(
clientAppId = ClientAppId("admin"),
secret = Secret("secret"),
scopes = Scopes.from(*(AVAILABLE_SCOPES - Scope.MFA_ALWAYS).toTypedArray()),
withPkce = WithPkce.disabled,
secret = Secret(passwordEncoder.encode("secret")),
scopes = Scopes.from(*(AVAILABLE_SCOPES - MFA_ALWAYS).toTypedArray()),
withPkce = disabled,
authorizedGrantTypes = AuthorizedGrantTypes.from(CLIENT_CREDENTIALS),
webServerRedirectUri = CallbackUri(""),
accessTokenValidity = TokenTimeToLive(3600),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@ class JdbcClientApplicationRepository(private val jdbcTemplate: JdbcTemplate, pr
clientApp.clientAppId.content,

clientApp.secret.content,
clientApp.scopes.content.joinToString { it.content },
clientApp.scopes.content.joinToString(separator = ",") { it.content },
clientApp.withPkce.content,
clientApp.authorizedGrantTypes.content.joinToString { it.name },
clientApp.authorizedGrantTypes.content.joinToString(separator = ",") { it.name },
clientApp.webServerRedirectUri.content,
clientApp.accessTokenValidity.content,
clientApp.refreshTokenValidity.content,
Expand All @@ -95,9 +95,9 @@ class JdbcClientApplicationRepository(private val jdbcTemplate: JdbcTemplate, pr
clientApp.logoutUri.content,

clientApp.secret.content,
clientApp.scopes.content.joinToString { it.content },
clientApp.scopes.content.joinToString(separator = ",") { it.content },
clientApp.withPkce.content,
clientApp.authorizedGrantTypes.content.joinToString { it.name },
clientApp.authorizedGrantTypes.content.joinToString(separator = ",") { it.name },
clientApp.webServerRedirectUri.content,
clientApp.accessTokenValidity.content,
clientApp.refreshTokenValidity.content,
Expand All @@ -116,7 +116,7 @@ class JdbcClientApplicationRepository(private val jdbcTemplate: JdbcTemplate, pr

object JdbcClientApplicationConverter {

fun fromDbToDomain(rs: ResultSet, objectMapper : ObjectMapper) = ClientApplication(
fun fromDbToDomain(rs: ResultSet, objectMapper: ObjectMapper) = ClientApplication(
clientAppId = ClientAppId(rs.getString("client_app_id")),
secret = Secret(rs.getString("secret")),
scopes = Scopes(rs.getString("scopes").split(",").map { Scope(it.trim()) }.toSet()),
Expand All @@ -126,10 +126,12 @@ object JdbcClientApplicationConverter {
webServerRedirectUri = CallbackUri(rs.getString("web_server_redirect_uri")),
accessTokenValidity = TokenTimeToLive(rs.getLong("access_token_validity")),
refreshTokenValidity = TokenTimeToLive(rs.getLong("refresh_token_validity")),
additionalInformation = Optional.ofNullable(objectMapper.readValue(
rs.getString("additional_information"),
Map::class.java
) as Map<String, String>).orElse(emptyMap()),
additionalInformation = Optional.ofNullable(
objectMapper.readValue(
rs.getString("additional_information"),
Map::class.java
) as Map<String, String>
).orElse(emptyMap()),
autoApprove = AutoApprove(rs.getBoolean("auto_approve")),
postLogoutRedirectUri = PostLogoutRedirectUri(rs.getString("post_logout_redirect_uri")),
logoutUri = LogoutUri(rs.getString("logout_uri"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@ data class Scope(val content: String) {
MFA_ENROLLMENT,

READ_CLIENT_APPLICATION,
SAVE_CLIENT_APPLICATION
SAVE_CLIENT_APPLICATION,
DELETE_CLIENT_APPLICATION
)

}
Expand Down

0 comments on commit 8ef1797

Please sign in to comment.