mirror of
https://github.com/RayLabsHQ/gitea-mirror.git
synced 2025-12-11 05:56:46 +03:00
sso: drop legacy migration helper
This commit is contained in:
@@ -5,9 +5,6 @@ import { sso } from "@better-auth/sso";
|
|||||||
import { db, users } from "./db";
|
import { db, users } from "./db";
|
||||||
import * as schema from "./db/schema";
|
import * as schema from "./db/schema";
|
||||||
import { eq } from "drizzle-orm";
|
import { eq } from "drizzle-orm";
|
||||||
import { ensureValidSsoProviders } from "./sso/provider-maintenance";
|
|
||||||
|
|
||||||
await ensureValidSsoProviders();
|
|
||||||
|
|
||||||
export const auth = betterAuth({
|
export const auth = betterAuth({
|
||||||
// Database configuration
|
// Database configuration
|
||||||
|
|||||||
@@ -1,65 +0,0 @@
|
|||||||
import { db, ssoProviders } from "@/lib/db";
|
|
||||||
import { normalizeOidcProviderConfig, OidcConfigError } from "./oidc-config";
|
|
||||||
import { eq } from "drizzle-orm";
|
|
||||||
|
|
||||||
type Logger = Pick<typeof console, "info" | "warn" | "error">;
|
|
||||||
|
|
||||||
export async function ensureValidSsoProviders(logger: Logger = console): Promise<void> {
|
|
||||||
const providers = await db.select().from(ssoProviders);
|
|
||||||
|
|
||||||
for (const provider of providers) {
|
|
||||||
if (!provider.oidcConfig) continue;
|
|
||||||
|
|
||||||
let parsedConfig: any;
|
|
||||||
try {
|
|
||||||
parsedConfig = JSON.parse(provider.oidcConfig);
|
|
||||||
} catch (error) {
|
|
||||||
logger.warn(`[SSO] Skipping provider ${provider.providerId}: invalid JSON configuration`, error);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
const hasEndpoints =
|
|
||||||
parsedConfig.authorizationEndpoint &&
|
|
||||||
parsedConfig.tokenEndpoint;
|
|
||||||
|
|
||||||
const hasScopes = Array.isArray(parsedConfig.scopes) && parsedConfig.scopes.length > 0;
|
|
||||||
|
|
||||||
if (hasEndpoints && hasScopes) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const normalized = await normalizeOidcProviderConfig(provider.issuer, {
|
|
||||||
clientId: parsedConfig.clientId,
|
|
||||||
clientSecret: parsedConfig.clientSecret,
|
|
||||||
authorizationEndpoint: parsedConfig.authorizationEndpoint,
|
|
||||||
tokenEndpoint: parsedConfig.tokenEndpoint,
|
|
||||||
jwksEndpoint: parsedConfig.jwksEndpoint,
|
|
||||||
userInfoEndpoint: parsedConfig.userInfoEndpoint,
|
|
||||||
discoveryEndpoint: parsedConfig.discoveryEndpoint,
|
|
||||||
scopes: parsedConfig.scopes,
|
|
||||||
pkce: parsedConfig.pkce,
|
|
||||||
mapping: parsedConfig.mapping,
|
|
||||||
});
|
|
||||||
|
|
||||||
await db
|
|
||||||
.update(ssoProviders)
|
|
||||||
.set({
|
|
||||||
oidcConfig: JSON.stringify({
|
|
||||||
...normalized.oidcConfig,
|
|
||||||
mapping: normalized.mapping,
|
|
||||||
}),
|
|
||||||
updatedAt: new Date(),
|
|
||||||
})
|
|
||||||
.where(eq(ssoProviders.id, provider.id));
|
|
||||||
|
|
||||||
logger.info(`[SSO] Normalized OIDC configuration for provider ${provider.providerId}`);
|
|
||||||
} catch (error) {
|
|
||||||
if (error instanceof OidcConfigError) {
|
|
||||||
logger.warn(`[SSO] Unable to normalize provider ${provider.providerId}: ${error.message}`);
|
|
||||||
} else {
|
|
||||||
logger.error(`[SSO] Unexpected error normalizing provider ${provider.providerId}`, error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user