Repository Analysis

casdoor/casdoor

An open-source Agent-first Identity and Access Management (IAM) /LLM MCP & agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID, Google Workspace, Azure AD

4.3 Likely human-written View on GitHub
4.3
Adjusted Score
4.3
Raw Score
100%
Time Factor
2026-05-30
Last Push
13,690
Stars
Go
Language
196,508
Lines of Code
840
Files
834
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 0LOW 834

Pattern Findings

834 matches across 4 categories. Click a row to expand file-level details.

Over-Commented Block772 hits · 772 pts
SeverityFileLineSnippet
LOWmain.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWrouters/theme_filter.go1// Copyright 2025 The Casdoor Authors. All Rights Reserved.
LOWrouters/auto_signin_filter.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWrouters/mcp_util.go1// Copyright 2026 The Casdoor Authors. All Rights Reserved.
LOWrouters/cors_filter.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWrouters/authz_filter.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWrouters/static_filter.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWrouters/lightweight_auth_filter.go1// Copyright 2026 The Casdoor Authors. All Rights Reserved.
LOWrouters/record.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWrouters/request_body_filter.go1// Copyright 2026 The Casdoor Authors. All Rights Reserved.
LOWrouters/timeout_filter.go1// Copyright 2024 The Casdoor Authors. All Rights Reserved.
LOWrouters/base.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWrouters/router.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWrouters/field_validation_filter.go1// Copyright 2025 The Casdoor Authors. All Rights Reserved.
LOWfaceId/provider.go1// Copyright 2025 The Casdoor Authors. All Rights Reserved.
LOWfaceId/aliyun.go1// Copyright 2025 The Casdoor Authors. All Rights Reserved.
LOWidp/okta.go1// Copyright 2022 The Casdoor Authors. All Rights Reserved.
LOWidp/provider.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/kwai.go1// Copyright 2024 The Casdoor Authors. All Rights Reserved.
LOWidp/custom.go1// Copyright 2022 The Casdoor Authors. All Rights Reserved.
LOWidp/web3onboard.go1// Copyright 2023 The Casdoor Authors. All Rights Reserved.
LOWidp/dingtalk.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/wecom_internal.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/infoflow_internal.go1// Copyright 2022 The Casdoor Authors. All Rights Reserved.
LOWidp/qq.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/qq.go101// "city": "安道尔城",
LOWidp/google.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/alipay.go1// Copyright 2022 The Casdoor Authors. All Rights Reserved.
LOWidp/douyin.go1// Copyright 2022 The Casdoor Authors. All Rights Reserved.
LOWidp/lark.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/telegram.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/gitlab.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/adfs.go1// Copyright 2022 The Casdoor Authors. All Rights Reserved.
LOWidp/linkedin.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/bilibili.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/wecom_third_party.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/twitter.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/twitter.go121//{
LOWidp/azuread_b2c.go1// Copyright 2023 The Casdoor Authors. All Rights Reserved.
LOWidp/weibo.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/wechat.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/wechat.go141 }
LOWidp/facebook.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/facebook.go101 token := oauth2.Token{
LOWidp/wechat_mobile.go1// Copyright 2025 The Casdoor Authors. All Rights Reserved.
LOWidp/wechat_miniprogram.go1// Copyright 2022 The Casdoor Authors. All Rights Reserved.
LOWidp/gitee.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/casdoor.go1// Copyright 2022 The Casdoor Authors. All Rights Reserved.
LOWidp/infoflow_third_party.go1// Copyright 2022 The Casdoor Authors. All Rights Reserved.
LOWidp/metamask.go1// Copyright 2023 The Casdoor Authors. All Rights Reserved.
LOWidp/baidu.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/github.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWidp/github.go101// "avatar_url": "https://avatars.githubusercontent.com/u/3781234?v=4",
LOWidp/github.go121// "hireable": true,
LOWidp/goth.go1// Copyright 2021 The Casdoor Authors. All Rights Reserved.
LOWscim/group_handler.go1// Copyright 2026 The Casdoor Authors. All Rights Reserved.
LOWscim/server.go1// Copyright 2023 The Casdoor Authors. All Rights Reserved.
LOWscim/util.go1// Copyright 2023 The Casdoor Authors. All Rights Reserved.
LOWscim/user_handler.go1// Copyright 2023 The Casdoor Authors. All Rights Reserved.
LOWpp/provider.go1// Copyright 2022 The Casdoor Authors. All Rights Reserved.
712 more matches not shown…
Hyper-Verbose Identifiers39 hits · 39 pts
SeverityFileLineSnippet
LOWweb/craco.config.js74 function ignoreSourcemapsloaderWarnings(warning) {
LOWweb/public/ProviderHintRedirect.js48 function isProviderVisibleForSignIn(providerItem) {
LOWweb/public/AuthCallbackHandler.js47 function storeReactFallbackPayload(payload) {
LOWweb/src/Setting.js768export function isProviderVisibleForSignUp(providerItem) {
LOWweb/src/Setting.js776export function isProviderVisibleForSignIn(providerItem) {
LOWweb/src/Setting.js792export function getAllPromptedProviderItems(application) {
LOWweb/src/Setting.js796export function getAllPromptedSignupItems(application) {
LOWweb/src/Setting.js1497export function getCryptoAlgorithmOptions(cryptoAlgorithm) {
LOWweb/src/Setting.js1798export function getApplicationDisplayName(application) {
LOWweb/src/Setting.js1855export function isDefaultOrganizationSelected(account) {
LOWweb/src/Setting.js2079export function getDefaultHtmlEmailContent() {
LOWweb/src/Setting.js2122export function getDefaultInvitationHtmlEmailContent() {
LOWweb/src/ProviderEditPage.js47function isDefaultProviderDisplayName(displayName) {
LOWweb/src/ProviderEditPage.js61function getAutoProviderDisplayName(category, type, subType) {
LOWweb/src/OpenClawSessionGraphViewer.js234function OpenClawSessionGraphCanvas(props) {
LOWweb/src/OpenClawSessionGraphUtils.js20function parseOpenClawBehaviorPayload(message) {
LOWweb/src/OpenClawSessionGraphUtils.js209export function formatOpenClawSessionGraphTimestamp(timestamp) {
LOWweb/src/OpenClawSessionGraphUtils.js409export function buildOpenClawFlowElements(graph) {
LOWweb/src/auth/Util.js205export async function WechatOfficialAccountModal(application, provider, method) {
LOWweb/src/auth/Web3Auth.js133export function checkEthereumSignedTypedData(token) {
LOWweb/src/auth/GoogleLoginButton.js35export function GoogleOneTapLoginVirtualButton(prop) {
LOWweb/src/auth/Obfuscator.js18export function getRandomKeyForObfuscator(obfuscatorType) {
LOWweb/src/auth/Obfuscator.js62export function encryptByPasswordObfuscator(passwordObfuscatorType, passwordObfuscatorKey, password) {
LOWweb/src/provider/LogProviderFields.js22function getStorageProviderOptions(providers, owner) {
LOWweb/src/provider/IDVerificationProviderFields.js21export function renderIDVerificationProviderFields(provider, updateProviderField) {
LOWweb/src/provider/StorageProviderFields.js21export function renderStorageProviderFields(provider, updateProviderField) {
LOWweb/src/provider/EmailProviderFields.js26export function renderEmailProviderFields(provider, updateProviderField, renderEmailMappingInput, account) {
LOWweb/src/provider/OAuthProviderFields.js24export function renderOAuthProviderFields(provider, updateProviderField, renderUserMappingInput, certs = []) {
LOWweb/src/provider/CaptchaProviderFields.js21export function renderCaptchaProviderFields(provider, providerName) {
LOWweb/src/provider/NotificationProviderFields.js24export function renderNotificationProviderFields(provider, updateProviderField, getReceiverRow) {
LOWweb/src/provider/PaymentProviderFields.js23export function renderPaymentProviderFields(provider, updateProviderField, certs) {
LOWweb/src/provider/FaceIDProviderFields.js21export function renderFaceIdProviderFields(provider, updateProviderField) {
LOWweb/src/backend/ApplicationBackend.js27export function getApplicationsByOrganization(owner, organization, page = "", pageSize = "", field = "", value = "", sor
LOWweb/src/backend/UserWebauthnBackend.js17export function registerWebauthnCredential() {
LOWweb/src/backend/UserWebauthnBackend.js60export function deleteUserWebAuthnCredential(credentialID) {
LOWweb/src/backend/EntryBackend.js38export function getOpenClawSessionTranscriptUrl(owner, name) {
LOWweb/src/backend/EntryBackend.js42export function getOpenClawSessionTranscript(owner, name) {
LOWweb/src/backend/PermissionBackend.js27export function getPermissionsBySubmitter() {
LOWweb/src/table/TransactionTableColumns.js22export function getTransactionTableColumns(options = {}) {
Fake / Example Data22 hits · 24 pts
SeverityFileLineSnippet
LOWidp/okta.go141 "name" :"John Doe",
LOWidp/casdoor.go103 "email": "admin@example.com",
LOWutil/string_test.go101 {"Should be return lorem_ipsum", "Lorem Ipsum", "lorem_ipsum"},
LOWutil/string_test.go102 {"Should be return Lorem Ipsum", "lorem Ipsum", "lorem_ipsum"},
LOWutil/string_test.go103 {"Should be return lorem_ipsum", "lorem ipsum", "loremipsum"},
LOWutil/string_test.go145 {"Scenery three", []string{"test", "lorem ipsum"}, "test/lorem ipsum"},
LOWutil/string_test.go163 {"Scenery three", "lorem ipsum", "80a751fde577028640c419000e33eba6"},
LOWswagger/swagger-ui.js2!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.am
LOWswagger/swagger-ui-es-bundle-core.js2module.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[
LOWswagger/swagger-ui-standalone-preset.js2!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.am
LOWweb/src/WebhookEditPage.js72 "email": "admin@example.com",
LOWobject/syncer_googleworkspace_test.go33 FullName: "John Doe",
LOWobject/syncer_googleworkspace_test.go55 if originalUser.DisplayName != "John Doe" {
LOWobject/syncer_googleworkspace_test.go56 t.Errorf("Expected DisplayName to be 'John Doe', got '%s'", originalUser.DisplayName)
LOWobject/syncer_googleworkspace_test.go79 FullName: "Jane Doe",
LOWobject/syncer_googleworkspace_test.go166 Host: "admin@example.com",
LOWobject/init.go173 Email: "admin@example.com",
LOWobject/syncer_scim_test.go35 DisplayName: "John Doe",
LOWobject/syncer_scim_test.go39 Formatted: "John Doe",
LOWobject/syncer_scim_test.go54 StreetAddress: "123 Main St",
LOWobject/syncer_scim_test.go78 if originalUser.DisplayName != "John Doe" {
LOWobject/syncer_scim_test.go79 t.Errorf("Expected DisplayName to be 'John Doe', got '%s'", originalUser.DisplayName)
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippet
LOWobject/saml_sp.go180 // block.Bytes are DER encoded so the following code block should happily accept it