strapi-plugin-oidc 1.9.2 → 1.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/admin/{index-2waQ9WnG.js → index-BUuwz71P.js} +9 -9
- package/dist/admin/{index-BYXb1t00.mjs → index-CUVEK5GT.mjs} +9 -9
- package/dist/admin/{index-Qa2oPzAm.js → index-F7EShzfg.js} +5 -5
- package/dist/admin/{index-Mxu0cp9m.mjs → index-vkwBXPXn.mjs} +5 -5
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +855 -848
- package/dist/server/index.mjs +855 -848
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ module.exports = ({ env }) => ({
|
|
|
32
32
|
enabled: true,
|
|
33
33
|
config: {
|
|
34
34
|
// Required
|
|
35
|
-
|
|
35
|
+
OIDC_ISSUER: env('OIDC_ISSUER'), // https://your-provider or https://your-provider/realms/your-realm
|
|
36
36
|
OIDC_CLIENT_ID: env('OIDC_CLIENT_ID'),
|
|
37
37
|
OIDC_CLIENT_SECRET: env('OIDC_CLIENT_SECRET'),
|
|
38
38
|
OIDC_REDIRECT_URI: env('OIDC_REDIRECT_URI'), // https://your-strapi.com/strapi-plugin-oidc/oidc/callback
|
|
@@ -55,7 +55,7 @@ module.exports = ({ env }) => ({
|
|
|
55
55
|
});
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
`
|
|
58
|
+
`OIDC_ISSUER` is your provider's issuer URL (e.g. `https://auth.example.com` or `https://auth.example.com/realms/myrealm`). The plugin appends `/.well-known/openid-configuration` automatically if not present, and fetches the discovery document at startup to configure all endpoints, JWKS URI, and canonical issuer.
|
|
59
59
|
|
|
60
60
|
### Security features
|
|
61
61
|
|
|
@@ -76,10 +76,10 @@ function LogoutOverlay() {
|
|
|
76
76
|
}
|
|
77
77
|
const en = {
|
|
78
78
|
"global.plugins.strapi-plugin-oidc": "OIDC Plugin",
|
|
79
|
-
"page.title": "Configure OIDC
|
|
79
|
+
"page.title": "Configure Admin OIDC Login Settings and View Logs",
|
|
80
80
|
"roles.notes": "Select the default role(s) assigned to new users upon their first login. This setting does not affect existing users.",
|
|
81
|
-
"page.save": "Save
|
|
82
|
-
"page.save.success": "
|
|
81
|
+
"page.save": "Save changes",
|
|
82
|
+
"page.save.success": "Settings updated",
|
|
83
83
|
"page.save.error": "Update failed.",
|
|
84
84
|
"page.add": "Add",
|
|
85
85
|
"page.cancel": "Cancel",
|
|
@@ -98,7 +98,7 @@ const en = {
|
|
|
98
98
|
"pagination.next": "Go to next page",
|
|
99
99
|
"whitelist.table.no": "No.",
|
|
100
100
|
"whitelist.table.email": "Email",
|
|
101
|
-
"whitelist.table.created": "Created
|
|
101
|
+
"whitelist.table.created": "Created at",
|
|
102
102
|
"whitelist.delete.title": "Confirmation",
|
|
103
103
|
"whitelist.delete.description": "Are you sure you want to delete:",
|
|
104
104
|
"whitelist.delete.note": "This will not delete the user account in Strapi.",
|
|
@@ -118,9 +118,9 @@ const en = {
|
|
|
118
118
|
"pagination.total": "{count, plural, one {# entry} other {# entries}}",
|
|
119
119
|
"whitelist.import": "Import",
|
|
120
120
|
"button.export": "Export",
|
|
121
|
-
"button.
|
|
121
|
+
"button.deleteAll": "Delete all",
|
|
122
122
|
"whitelist.delete.all.title": "Delete All Entries",
|
|
123
|
-
"whitelist.delete.all.description": "This will permanently remove
|
|
123
|
+
"whitelist.delete.all.description": "This will permanently remove {count, plural, one {# entry} other {# entries}} from the whitelist. Unsaved changes will be lost.",
|
|
124
124
|
"whitelist.import.error": "Invalid file — expected a JSON array of objects with an email field.",
|
|
125
125
|
"whitelist.import.success": "Imported {count, plural, one {# new entry} other {# new entries}}.",
|
|
126
126
|
"whitelist.import.none": "No new entries — all emails are already in the whitelist.",
|
|
@@ -135,7 +135,7 @@ const en = {
|
|
|
135
135
|
"auditlog.table.ip": "IP",
|
|
136
136
|
"auditlog.table.details": "Details",
|
|
137
137
|
"auditlog.table.empty": "No audit log entries",
|
|
138
|
-
"auditlog.clear.title": "
|
|
138
|
+
"auditlog.clear.title": "Delete All Logs",
|
|
139
139
|
"auditlog.clear.description": "This will permanently delete all {count, plural, one {# audit log entry} other {# audit log entries}}. This action cannot be undone.",
|
|
140
140
|
"auditlog.clear.success": "Audit logs cleared",
|
|
141
141
|
"auditlog.clear.error": "Failed to clear audit logs",
|
|
@@ -170,7 +170,7 @@ const en = {
|
|
|
170
170
|
"auth.page.authenticating.noscript.heading": "JavaScript Required",
|
|
171
171
|
"auth.page.authenticating.noscript.body": "JavaScript must be enabled for authentication to complete.",
|
|
172
172
|
"auth.page.error.title": "Authentication Failed",
|
|
173
|
-
"auth.page.error.returnToLogin": "Return to
|
|
173
|
+
"auth.page.error.returnToLogin": "Return to login",
|
|
174
174
|
"user.missing_code": "Authorisation code was not received from the OIDC provider.",
|
|
175
175
|
"user.invalid_state": "State parameter mismatch. Please restart the login flow.",
|
|
176
176
|
"user.signInError": "Authentication failed. Please try again.",
|
|
@@ -211,7 +211,7 @@ const index = {
|
|
|
211
211
|
id: "settings.configuration",
|
|
212
212
|
defaultMessage: "Configuration"
|
|
213
213
|
},
|
|
214
|
-
Component: () => Promise.resolve().then(() => require("./index-
|
|
214
|
+
Component: () => Promise.resolve().then(() => require("./index-F7EShzfg.js")),
|
|
215
215
|
permissions: [{ action: PERMISSIONS.READ, subject: null }]
|
|
216
216
|
};
|
|
217
217
|
app.addSettingsLink(
|
|
@@ -73,10 +73,10 @@ function LogoutOverlay() {
|
|
|
73
73
|
}
|
|
74
74
|
const en = {
|
|
75
75
|
"global.plugins.strapi-plugin-oidc": "OIDC Plugin",
|
|
76
|
-
"page.title": "Configure OIDC
|
|
76
|
+
"page.title": "Configure Admin OIDC Login Settings and View Logs",
|
|
77
77
|
"roles.notes": "Select the default role(s) assigned to new users upon their first login. This setting does not affect existing users.",
|
|
78
|
-
"page.save": "Save
|
|
79
|
-
"page.save.success": "
|
|
78
|
+
"page.save": "Save changes",
|
|
79
|
+
"page.save.success": "Settings updated",
|
|
80
80
|
"page.save.error": "Update failed.",
|
|
81
81
|
"page.add": "Add",
|
|
82
82
|
"page.cancel": "Cancel",
|
|
@@ -95,7 +95,7 @@ const en = {
|
|
|
95
95
|
"pagination.next": "Go to next page",
|
|
96
96
|
"whitelist.table.no": "No.",
|
|
97
97
|
"whitelist.table.email": "Email",
|
|
98
|
-
"whitelist.table.created": "Created
|
|
98
|
+
"whitelist.table.created": "Created at",
|
|
99
99
|
"whitelist.delete.title": "Confirmation",
|
|
100
100
|
"whitelist.delete.description": "Are you sure you want to delete:",
|
|
101
101
|
"whitelist.delete.note": "This will not delete the user account in Strapi.",
|
|
@@ -115,9 +115,9 @@ const en = {
|
|
|
115
115
|
"pagination.total": "{count, plural, one {# entry} other {# entries}}",
|
|
116
116
|
"whitelist.import": "Import",
|
|
117
117
|
"button.export": "Export",
|
|
118
|
-
"button.
|
|
118
|
+
"button.deleteAll": "Delete all",
|
|
119
119
|
"whitelist.delete.all.title": "Delete All Entries",
|
|
120
|
-
"whitelist.delete.all.description": "This will permanently remove
|
|
120
|
+
"whitelist.delete.all.description": "This will permanently remove {count, plural, one {# entry} other {# entries}} from the whitelist. Unsaved changes will be lost.",
|
|
121
121
|
"whitelist.import.error": "Invalid file — expected a JSON array of objects with an email field.",
|
|
122
122
|
"whitelist.import.success": "Imported {count, plural, one {# new entry} other {# new entries}}.",
|
|
123
123
|
"whitelist.import.none": "No new entries — all emails are already in the whitelist.",
|
|
@@ -132,7 +132,7 @@ const en = {
|
|
|
132
132
|
"auditlog.table.ip": "IP",
|
|
133
133
|
"auditlog.table.details": "Details",
|
|
134
134
|
"auditlog.table.empty": "No audit log entries",
|
|
135
|
-
"auditlog.clear.title": "
|
|
135
|
+
"auditlog.clear.title": "Delete All Logs",
|
|
136
136
|
"auditlog.clear.description": "This will permanently delete all {count, plural, one {# audit log entry} other {# audit log entries}}. This action cannot be undone.",
|
|
137
137
|
"auditlog.clear.success": "Audit logs cleared",
|
|
138
138
|
"auditlog.clear.error": "Failed to clear audit logs",
|
|
@@ -167,7 +167,7 @@ const en = {
|
|
|
167
167
|
"auth.page.authenticating.noscript.heading": "JavaScript Required",
|
|
168
168
|
"auth.page.authenticating.noscript.body": "JavaScript must be enabled for authentication to complete.",
|
|
169
169
|
"auth.page.error.title": "Authentication Failed",
|
|
170
|
-
"auth.page.error.returnToLogin": "Return to
|
|
170
|
+
"auth.page.error.returnToLogin": "Return to login",
|
|
171
171
|
"user.missing_code": "Authorisation code was not received from the OIDC provider.",
|
|
172
172
|
"user.invalid_state": "State parameter mismatch. Please restart the login flow.",
|
|
173
173
|
"user.signInError": "Authentication failed. Please try again.",
|
|
@@ -208,7 +208,7 @@ const index = {
|
|
|
208
208
|
id: "settings.configuration",
|
|
209
209
|
defaultMessage: "Configuration"
|
|
210
210
|
},
|
|
211
|
-
Component: () => import("./index-
|
|
211
|
+
Component: () => import("./index-vkwBXPXn.mjs"),
|
|
212
212
|
permissions: [{ action: PERMISSIONS.READ, subject: null }]
|
|
213
213
|
};
|
|
214
214
|
app.addSettingsLink(
|
|
@@ -7,7 +7,7 @@ const React = require("react");
|
|
|
7
7
|
const designSystem = require("@strapi/design-system");
|
|
8
8
|
const icons = require("@strapi/icons");
|
|
9
9
|
const reactIntl = require("react-intl");
|
|
10
|
-
const index = require("./index-
|
|
10
|
+
const index = require("./index-BUuwz71P.js");
|
|
11
11
|
const styled = require("styled-components");
|
|
12
12
|
const lucideReact = require("lucide-react");
|
|
13
13
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
@@ -1001,14 +1001,14 @@ function Whitelist({
|
|
|
1001
1001
|
variant: "danger-light",
|
|
1002
1002
|
startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {}),
|
|
1003
1003
|
disabled: users.length === 0,
|
|
1004
|
-
children: formatMessage(index.getTrad("button.
|
|
1004
|
+
children: formatMessage(index.getTrad("button.deleteAll"))
|
|
1005
1005
|
}
|
|
1006
1006
|
),
|
|
1007
1007
|
title: formatMessage(index.getTrad("whitelist.delete.all.title")),
|
|
1008
1008
|
body: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", textAlign: "center", children: formatMessage(index.getTrad("whitelist.delete.all.description"), {
|
|
1009
1009
|
count: users.length
|
|
1010
1010
|
}) }) }),
|
|
1011
|
-
confirmLabel: formatMessage(index.getTrad("button.
|
|
1011
|
+
confirmLabel: formatMessage(index.getTrad("button.deleteAll")),
|
|
1012
1012
|
onConfirm: onDeleteAll
|
|
1013
1013
|
}
|
|
1014
1014
|
)
|
|
@@ -3925,14 +3925,14 @@ function AuditLog({ title } = {}) {
|
|
|
3925
3925
|
variant: "danger-light",
|
|
3926
3926
|
startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {}),
|
|
3927
3927
|
disabled: pagination.total === 0,
|
|
3928
|
-
children: formatMessage(index.getTrad("button.
|
|
3928
|
+
children: formatMessage(index.getTrad("button.deleteAll"))
|
|
3929
3929
|
}
|
|
3930
3930
|
),
|
|
3931
3931
|
title: formatMessage(index.getTrad("auditlog.clear.title")),
|
|
3932
3932
|
body: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", textAlign: "center", children: formatMessage(index.getTrad("auditlog.clear.description"), {
|
|
3933
3933
|
count: pagination.total
|
|
3934
3934
|
}) }) }),
|
|
3935
|
-
confirmLabel: formatMessage(index.getTrad("button.
|
|
3935
|
+
confirmLabel: formatMessage(index.getTrad("button.deleteAll")),
|
|
3936
3936
|
onConfirm: handleClearAll
|
|
3937
3937
|
}
|
|
3938
3938
|
)
|
|
@@ -5,7 +5,7 @@ import { useState, useRef, useId, useEffect, useCallback, useReducer, useMemo, m
|
|
|
5
5
|
import { Typography, Flex, Box, MultiSelect, MultiSelectOption, Button, Dialog, Table, Pagination, PreviousLink, NextLink, PageLink, Field, Divider, Thead, Tr, Th, Tbody, Td, IconButton, Loader, Tooltip, Alert } from "@strapi/design-system";
|
|
6
6
|
import { Cross, WarningCircle, Plus, Download, Upload, Trash, Calendar, Mail, Information } from "@strapi/icons";
|
|
7
7
|
import { useIntl } from "react-intl";
|
|
8
|
-
import { g as getTrad, E as EMAIL_REGEX, e as en, A as AUDIT_LOG_DEFAULTS, U as UI_DEFAULTS } from "./index-
|
|
8
|
+
import { g as getTrad, E as EMAIL_REGEX, e as en, A as AUDIT_LOG_DEFAULTS, U as UI_DEFAULTS } from "./index-CUVEK5GT.mjs";
|
|
9
9
|
import styled from "styled-components";
|
|
10
10
|
import { Filter, ClipboardList, Server } from "lucide-react";
|
|
11
11
|
function Role({ oidcRoles, roles, onChangeRole }) {
|
|
@@ -997,14 +997,14 @@ function Whitelist({
|
|
|
997
997
|
variant: "danger-light",
|
|
998
998
|
startIcon: /* @__PURE__ */ jsx(Trash, {}),
|
|
999
999
|
disabled: users.length === 0,
|
|
1000
|
-
children: formatMessage(getTrad("button.
|
|
1000
|
+
children: formatMessage(getTrad("button.deleteAll"))
|
|
1001
1001
|
}
|
|
1002
1002
|
),
|
|
1003
1003
|
title: formatMessage(getTrad("whitelist.delete.all.title")),
|
|
1004
1004
|
body: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral800", textAlign: "center", children: formatMessage(getTrad("whitelist.delete.all.description"), {
|
|
1005
1005
|
count: users.length
|
|
1006
1006
|
}) }) }),
|
|
1007
|
-
confirmLabel: formatMessage(getTrad("button.
|
|
1007
|
+
confirmLabel: formatMessage(getTrad("button.deleteAll")),
|
|
1008
1008
|
onConfirm: onDeleteAll
|
|
1009
1009
|
}
|
|
1010
1010
|
)
|
|
@@ -3921,14 +3921,14 @@ function AuditLog({ title } = {}) {
|
|
|
3921
3921
|
variant: "danger-light",
|
|
3922
3922
|
startIcon: /* @__PURE__ */ jsx(Trash, {}),
|
|
3923
3923
|
disabled: pagination.total === 0,
|
|
3924
|
-
children: formatMessage(getTrad("button.
|
|
3924
|
+
children: formatMessage(getTrad("button.deleteAll"))
|
|
3925
3925
|
}
|
|
3926
3926
|
),
|
|
3927
3927
|
title: formatMessage(getTrad("auditlog.clear.title")),
|
|
3928
3928
|
body: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral800", textAlign: "center", children: formatMessage(getTrad("auditlog.clear.description"), {
|
|
3929
3929
|
count: pagination.total
|
|
3930
3930
|
}) }) }),
|
|
3931
|
-
confirmLabel: formatMessage(getTrad("button.
|
|
3931
|
+
confirmLabel: formatMessage(getTrad("button.deleteAll")),
|
|
3932
3932
|
onConfirm: handleClearAll
|
|
3933
3933
|
}
|
|
3934
3934
|
)
|
package/dist/admin/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
-
const index = require("./index-
|
|
3
|
+
const index = require("./index-BUuwz71P.js");
|
|
4
4
|
require("react");
|
|
5
5
|
require("react-dom/client");
|
|
6
6
|
exports.default = index.index;
|
package/dist/admin/index.mjs
CHANGED