Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
b4a97845ca
|
+2
-2
@@ -2,9 +2,9 @@ org.gradle.configuration-cache=false
|
|||||||
org.gradle.parallel=true
|
org.gradle.parallel=true
|
||||||
org.gradle.caching=true
|
org.gradle.caching=true
|
||||||
|
|
||||||
rbcs.version = 0.5.0
|
rbcs.version = 0.5.1
|
||||||
|
|
||||||
lys.version = 2026.05.27
|
lys.version = 2026.06.08
|
||||||
|
|
||||||
gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven
|
gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven
|
||||||
docker.registry.url=gitea.woggioni.net
|
docker.registry.url=gitea.woggioni.net
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ Provider<EnvelopeJarTask> envelopeJarTaskProvider = tasks.named(EnvelopePlugin.E
|
|||||||
tasks.named(NativeImagePlugin.CONFIGURE_NATIVE_IMAGE_TASK_NAME, NativeImageConfigurationTask) {
|
tasks.named(NativeImagePlugin.CONFIGURE_NATIVE_IMAGE_TASK_NAME, NativeImageConfigurationTask) {
|
||||||
toolchain {
|
toolchain {
|
||||||
languageVersion = JavaLanguageVersion.of(25)
|
languageVersion = JavaLanguageVersion.of(25)
|
||||||
vendor = JvmVendorSpec.GRAAL_VM
|
vendor = JvmVendorSpec.ORACLE
|
||||||
}
|
}
|
||||||
mainClass = "net.woggioni.rbcs.cli.graal.GraalNativeImageConfiguration"
|
mainClass = "net.woggioni.rbcs.cli.graal.GraalNativeImageConfiguration"
|
||||||
classpath = project.files(
|
classpath = project.files(
|
||||||
@@ -108,10 +108,10 @@ tasks.named(NativeImagePlugin.CONFIGURE_NATIVE_IMAGE_TASK_NAME, NativeImageConfi
|
|||||||
nativeImage {
|
nativeImage {
|
||||||
toolchain {
|
toolchain {
|
||||||
languageVersion = JavaLanguageVersion.of(25)
|
languageVersion = JavaLanguageVersion.of(25)
|
||||||
vendor = JvmVendorSpec.GRAAL_VM
|
vendor = JvmVendorSpec.ORACLE
|
||||||
}
|
}
|
||||||
mainClass = mainClassName
|
mainClass = mainClassName
|
||||||
// mainModule = mainModuleName
|
mainModule = mainModuleName
|
||||||
useMusl = true
|
useMusl = true
|
||||||
buildStaticImage = true
|
buildStaticImage = true
|
||||||
linkAtBuildTime = false
|
linkAtBuildTime = false
|
||||||
@@ -127,7 +127,7 @@ Provider<UpxTask> upxTaskProvider = tasks.named(NativeImagePlugin.UPX_TASK_NAME,
|
|||||||
Provider<JlinkTask> jlinkTaskProvider = tasks.named(JlinkPlugin.JLINK_TASK_NAME, JlinkTask) {
|
Provider<JlinkTask> jlinkTaskProvider = tasks.named(JlinkPlugin.JLINK_TASK_NAME, JlinkTask) {
|
||||||
toolchain {
|
toolchain {
|
||||||
languageVersion = JavaLanguageVersion.of(25)
|
languageVersion = JavaLanguageVersion.of(25)
|
||||||
vendor = JvmVendorSpec.GRAAL_VM
|
vendor = JvmVendorSpec.ORACLE
|
||||||
}
|
}
|
||||||
|
|
||||||
mainClass = mainClassName
|
mainClass = mainClassName
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
Args=-O3 -march=x86-64-v2 --gc=serial --initialize-at-run-time=io.netty --enable-url-protocols=jpms -H:+UnlockExperimentalVMOptions -H:+SharedArenaSupport --initialize-at-build-time=net.woggioni.rbcs.common.RbcsUrlStreamHandlerFactory,net.woggioni.rbcs.common.RbcsUrlStreamHandlerFactory$JpmsHandler
|
Args=-O3 -march=x86-64-v2 --gc=serial --initialize-at-run-time=io.netty --enable-url-protocols=jpms --emit build-report -H:+UnlockExperimentalVMOptions -H:+SharedArenaSupport --initialize-at-build-time=net.woggioni.rbcs.common.RbcsUrlStreamHandlerFactory,net.woggioni.rbcs.common.RbcsUrlStreamHandlerFactory$JpmsHandler --add-opens=io.netty.common/io.netty.util=org.graalvm.nativeimage.builder --add-opens=io.netty.common/io.netty.util.internal.svm=org.graalvm.nativeimage.builder
|
||||||
#-H:TraceClassInitialization=io.netty.handler.ssl.BouncyCastleAlpnSslUtils
|
#-H:TraceClassInitialization=io.netty.handler.ssl.BouncyCastleAlpnSslUtils
|
||||||
@@ -188,7 +188,7 @@ class RemoteBuildCacheServer(private val cfg: Configuration) {
|
|||||||
?: return anonymousUserGroups?.let { AuthenticationResult(null, it) }
|
?: return anonymousUserGroups?.let { AuthenticationResult(null, it) }
|
||||||
val ldapName = try {
|
val ldapName = try {
|
||||||
LdapName(subjectDn)
|
LdapName(subjectDn)
|
||||||
} catch (e: Exception) {
|
} catch (_: Exception) {
|
||||||
log.debug(ctx) {
|
log.debug(ctx) {
|
||||||
"Invalid subject DN in header $headerName: $subjectDn"
|
"Invalid subject DN in header $headerName: $subjectDn"
|
||||||
}
|
}
|
||||||
@@ -354,7 +354,7 @@ class RemoteBuildCacheServer(private val cfg: Configuration) {
|
|||||||
}?.let {
|
}?.let {
|
||||||
pattern.matcher(it.value.toString())
|
pattern.matcher(it.value.toString())
|
||||||
}?.takeIf(Matcher::matches)?.group(1)
|
}?.takeIf(Matcher::matches)?.group(1)
|
||||||
cfg.users[userName] ?: throw java.lang.RuntimeException("Failed to extract user")
|
cfg.users[userName] ?: throw RuntimeException("Failed to extract user")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -368,7 +368,7 @@ class RemoteBuildCacheServer(private val cfg: Configuration) {
|
|||||||
}?.let {
|
}?.let {
|
||||||
pattern.matcher(it.value.toString())
|
pattern.matcher(it.value.toString())
|
||||||
}?.takeIf(Matcher::matches)?.group(1)
|
}?.takeIf(Matcher::matches)?.group(1)
|
||||||
cfg.groups[groupName] ?: throw java.lang.RuntimeException("Failed to extract group")
|
cfg.groups[groupName] ?: throw RuntimeException("Failed to extract group")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -344,14 +344,14 @@ object Parser {
|
|||||||
roles = parseRoles(child)
|
roles = parseRoles(child)
|
||||||
}
|
}
|
||||||
"group-quota" -> {
|
"group-quota" -> {
|
||||||
userQuota = parseQuota(child)
|
groupQuota = parseQuota(child)
|
||||||
}
|
}
|
||||||
"user-quota" -> {
|
"user-quota" -> {
|
||||||
groupQuota = parseQuota(child)
|
userQuota = parseQuota(child)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
groupName to Group(groupName, roles, userQuota, groupQuota)
|
groupName to Group(groupName, roles, groupQuota, userQuota)
|
||||||
}.toMap()
|
}.toMap()
|
||||||
val users = knownUsersMap.map { (name, user) ->
|
val users = knownUsersMap.map { (name, user) ->
|
||||||
name to User(name, user.password, userGroups[name]?.mapNotNull { groups[it] }?.toSet() ?: emptySet(), user.quota)
|
name to User(name, user.password, userGroups[name]?.mapNotNull { groups[it] }?.toSet() ?: emptySet(), user.quota)
|
||||||
|
|||||||
+6
-8
@@ -23,23 +23,21 @@ class ProxyProtocolHandler(private val trustedProxyIPs : List<Cidr>) : SimpleCha
|
|||||||
) {
|
) {
|
||||||
val sourceAddress = ctx.channel().remoteAddress()
|
val sourceAddress = ctx.channel().remoteAddress()
|
||||||
if (sourceAddress is InetSocketAddress &&
|
if (sourceAddress is InetSocketAddress &&
|
||||||
trustedProxyIPs.isEmpty() ||
|
(trustedProxyIPs.isEmpty() ||
|
||||||
trustedProxyIPs.any { it.contains((sourceAddress as InetSocketAddress).address) }.also {
|
trustedProxyIPs.any { it.contains(sourceAddress.address) }.also {
|
||||||
if(!it && log.isTraceEnabled) {
|
if(!it) {
|
||||||
log.trace {
|
log.trace {
|
||||||
"Received a proxied connection request from $sourceAddress which is not a trusted proxy address, " +
|
"Received a proxied connection request from $sourceAddress which is not a trusted proxy address, " +
|
||||||
"the proxy server address will be used instead"
|
"the proxy server address will be used instead"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}) {
|
})) {
|
||||||
val proxiedClientAddress = InetSocketAddress(
|
val proxiedClientAddress = InetSocketAddress(
|
||||||
InetAddress.ofLiteral(msg.sourceAddress()),
|
InetAddress.ofLiteral(msg.sourceAddress()),
|
||||||
msg.sourcePort()
|
msg.sourcePort()
|
||||||
)
|
)
|
||||||
if(log.isTraceEnabled) {
|
log.trace {
|
||||||
log.trace {
|
"Received proxied connection request from $sourceAddress forwarded for $proxiedClientAddress"
|
||||||
"Received proxied connection request from $sourceAddress forwarded for $proxiedClientAddress"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
ctx.channel().attr(RemoteBuildCacheServer.clientIp).set(proxiedClientAddress)
|
ctx.channel().attr(RemoteBuildCacheServer.clientIp).set(proxiedClientAddress)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,7 +171,6 @@ class ServerHandler(private val serverPrefix: Path, private val cacheHandlerSupp
|
|||||||
ctx.pipeline().addBefore(ExceptionHandler.NAME, null, cacheHandler)
|
ctx.pipeline().addBefore(ExceptionHandler.NAME, null, cacheHandler)
|
||||||
key.let(::CacheGetRequest)
|
key.let(::CacheGetRequest)
|
||||||
.let(ctx::fireChannelRead)
|
.let(ctx::fireChannelRead)
|
||||||
?: ctx.channel().write(CacheValueNotFoundResponse(key))
|
|
||||||
} else {
|
} else {
|
||||||
cacheRequestInProgress = false
|
cacheRequestInProgress = false
|
||||||
log.warn(ctx) {
|
log.warn(ctx) {
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
pluginManagement {
|
pluginManagement {
|
||||||
repositories {
|
repositories {
|
||||||
|
// mavenLocal {
|
||||||
|
// content {
|
||||||
|
// includeGroup 'net.woggioni.gradle'
|
||||||
|
// includeGroup 'net.woggioni.gradle.lombok'
|
||||||
|
// includeGroup 'net.woggioni.gradle.finalguard'
|
||||||
|
// }
|
||||||
|
// }
|
||||||
maven {
|
maven {
|
||||||
url = getProperty('gitea.maven.url')
|
url = getProperty('gitea.maven.url')
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user